In a typical scenario, yes, 4.0 would be the correct and obvious version number to go to, but I’ll explain why I personally chose 3.20 in this specific instance.
The reasons are:
- Cocos2d-x 3.x has broken the API before (I’m almost certain of this, but I could be wrong).
- If developers want to have their apps running on iPhone or Macs when OpenGL support is removed, then there will be no choice in the matter, as they would have to move to the new version with Metal support, API breakage or not. Whether the new version is 3.18, 3.20 or 4.0 won’t matter, and if it is 4.0, then the 3.xx branch becomes obsolete, and will serve no purpose (unless the developer doesn’t want to support Apple products).
- Originally planned changes to 4.0 would break the API anyway, and if 4.0 is chosen for Metal support, then the next API breaking release must be 5.0, so we don’t get into the same situation as mentioned in point 1 (where minor version updates break the API).
For those reasons alone, it seems pointless to move to do a major version number change in this specific instance.
If the decision is to go with 4.0, then great, as long as this versioning system is adhered to, so that any future API breaking changes must be a major version increment.