New releases must be tagged in github. The tag name must follow these rules:
cocos2d-x-Major.Minor[.Status]
or
cocos2d-x-Major.Minor.Revision[.Status]
Example of valid names:
See "Naming Conventions" below
Each Major version will have 2 branches, master
and develop
.
For cocos2d-x v3, the branches names will be v3-master
and v3-develop
, for v4 the branches names will be v4-master
and v4-develop
, and so on.
master
is the stable branch.develop
is the unstable branch. All new features, bug fixes, etc, are applied first to develop
.Once a new version is released (either Major, Minor or Revision), then develop
branch must be merged into master
branch. To be more specific, master
only contains stable releases. Alpha, Beta, and RC versions MUST NOT be merged into master
.
Only stable releases must be announced on:
All kind of releases (alpha,beta,rc, final) must be announced on:
A download package must be available for each released version. The package shall include the source code of cocos2d-x, and the needed scripts to download and install the 3rd party binaries.
BEFORE releasing a new version (either stable or unstable), the following documents must be updated:
BEFORE releasing a new Minor or Major stable release, the following tasks MUST be done:
BEFORE releasing a new Minor or Major stable release, the following tasks MUST be done:
The product is unstable. It could have memory leaks, or crashes, or the API is unstable. The product contains little QA. Although the product is not ready for production, the product should be testable. Alpha versions might have Core functionality that has just been refactored, meaning that Core functionality might be unstable, but should work Ok.
As an example, for cocos2d-x, an Alpha version means:
Alpha versions are NOT feature freeze. New features might be added in future alpha and beta versions.
The product is more stable than Alpha. The product might crash, but not frequently. No major changes were made in core components. Smaller features could be refactored in Beta versions, but the core functionality is stable. The product has more QA. The only difference between Alpha and Beta, is that Beta is more stable than Alpha. And that in Beta versions no new major features will be added.
As an example, for cocos2d-x it means:
Beta versions are NOT feature freeze. Small new features might be added in future Beta versions. New BIG features that might affect the Core functionality must only be added in Alpha versions, and not in Beta versions.
Release candidate means that, unless major bugs are found, the product is ready for release. The difference between _Release Candidate__ and Final is that RC has less testing than the final version.
Many cocos2d-x users might want to try and use the RC releases for production.
RC versions ARE feature freeze. No new features, no matter how small they are, MUST be added in RC versions, because as the name implies, it is a Release Candidate.
It is the new stable version.
major.minor [revision | status]
The major number is increased when there are significant jumps in functionality such as changing the framework which could cause incompatibility with interfacing systems
The minor number is incremented when only minor features or significant fixes have been added.
The revision number is incremented when minor bugs are fixed.
The status could be: alphaN, betaN or rcN.
'N' is a number, and the first MUST always be 0.
v2.0-alpha0:
v2.1.3:
v2.2-beta0:
v2.2: