Lets start with framework version numbers. Versions
Up until now, PureMVC has taken an extremely simplistic approach to version numbering; one minor rev for every change. That's because there have only been 8 changes to the project from the 1.0 version, over a year ago. Because the public was never given access to the source code until it was very stable and the with no further feature aspirations, this versioning approach made sense. In fact the compiled SWC file for Flex didn't even have a version number on it. The shame!
So, now, with all the ports, demos and utilities being open to the public we have to have a codified scheme for versioning. After a bit bashing on this getting everything in the repositories where, here is the news on versioning going forward:Ports
- Each Port will begin at 0.1 when it begins and rev upward by one minor number (.1) each time there is new functionality: (0.1 to 0.2)
- If there are only bug fixes, these will be micro (.01) increments: (0.8 to 0.8.1)
- If the fixes on the micro number is not yet stable, the number will be odd (0.4.5, 0.9.3)
- When the fixes on the micro number become stable, the number will be even (0.8.2, 1.0.2)
- When the functionality set for a Port is stable and is ready for general use, its major number will be incremented: (0.9 to 1.0).
NOTE: New functionality sets for the framework will be determined for all Ports and carried out across the board.
The name of the game is to push all Ports toward a stable state with an appropriate scope. Extension of the framework happens by utilities, not expanding the framework codebase itself. Demos and Utilities
The same rules apply but we don't expect so many changes to happen there. Usually the Demo or Utility should work to begin with, and most changes will be updates to make it work with the latest version of the framework when it changes. Therefore Demo and Utility versions will start at 1.0.Branches and Tags
Due to its hive-like nature branches will rarely happen in the Manifold project. Since it is not a monolithic codebase with an ever growing feature set, it just shouldn't be necessary.
Each revision for release will be tagged. Developers at large are warned to beware of what is on the trunk check out working code from the most recent tag. This can be found on the Downloads page of every project.
- Tags for Ports are just the number: (tags/1.0.1)
- Tags for Demos and Utilities are in the format: (MyDemo_1_2)
PROJECT OWNERS NOTE: I will be doing the tagging, so whenever you have a revision needing to be tagged, please let me know.
There is a lot of updating to do when a tag is made, not just to the repository but the archive, source view, api docs, live demos, wiki, etc. I am working to automate much of this but for now will handle everything by hand to ensure uniformity.