PKP follows a standard development cycle consisting of releases and branches.
Each branch (e.g. 2.2.x, 2.3.x, 2.4.x) represents the life cycle of a set of releases, first introducing major new functionality (e.g. OJS 2.3.0), then progressively refining it in successive releases with smaller new features, bug fixes, and additional translations (e.g. 2.3.1, 2.3.2, 2.3.3, and so on).
Initial releases in a branch may be termed "development" to reflect that it is suitable for early adopters but that more conservative users may wish to stick with the older "stable" branch. When the "development" branch is deemed mature enough, it will be flagged "stable".
The following charts describe the development cycles for releases and branches.