-
Notifications
You must be signed in to change notification settings - Fork 151
Model Versioning Guidelines: Code
In general, dGen has followed the following convention for model (i.e., code) versioning:
- master is a frozen snapshot of the most recent stable model release
- dev is the active mainline or trunk for ongoing development
- Users create additional development branches off of dev for various development tasks
Merges from the additional development branches back to dev will be managed by NREL as the a single "maintainer" of the repo, through pull requests. Once dev is stable, it may be merged to master.
At that point, the master branch should also be tagged, resulting in a "tagged release". Tagged model versions should be thought of as "production" versions of the code, and are only released when development is at a (temporarily) stable point. To the best of your knowledge, these versions should be "bug free" -- meaning, they won't crash or have major miscalculations in them. In practice, they will always have bugs, but at the least, the model must be able to run successfully across all technologies to merge to master and release at tagged version.
The numbering convention for tagged model release is:
- first digit indicates a "major" model version. this usually corresponds to a major rearchitecture -- (e.g., merging in the the oops development branch)
- the second digit corresponds to a change in the underlying database structure
- the third digit corresponds to a change to the code without any change to the database structure To clarify the second and third bullets, if you were starting at version 2.0.0 and the code changed, but the database content or structure did not, you would increment from 2.0.0 to 2.0.1. Alternatively, if the code did not change, but the database content or structure changed even in the slightest way, you would increment from 2.0.0 to 2.1.0.