Versioning
Version and branch conventions followed in OpenG2P
Last updated
Version and branch conventions followed in OpenG2P
Last updated
Copyright © 2024 OpenG2P. This work is licensed under Creative Commons Attribution International LicenseCC-BY-4.0 unless otherwise noted.
In general, OpenG2P follows Semantic Versioning 2.0. However, there are exceptions concerning Oodo modules which follow Odoo Versioning.
Artifacts | Versioning |
---|---|
All repositories have a running develop
, main
or master
branch which contains latest development code. To release a specific version a branch like 1.2
may be created and further development on this branch is controlled and typically restricted to only bug fixes. On branch 1.2
Git tags may be created. These tags must necessarily follow 3 digit version like v1.2.4
. Note that a Git tag always has the v
prefix. For Odoo repositories, the Odoo version is prefixed on the branch name. Example 17.0-develop
, 17.0-1.2
. However, the Git tag does not contain this prefix - the same will still be v1.2.5
for example.
A version of any artifact (like a Helm chart, docker, git repository etc.) is considered "frozen", or "tagged', or "pegged" if all the components, and source code inside that artifact is frozen -- there are no moving versions like "develop". Thus, a frozen version allows tracing to exact versions of code at the lower most level. Therefore, a frozen version artifact may be exactly recreated if required.
A 3 digit version is deemed frozen if it does not have any other suffixes like -develop
or -alpha
etc. Conversely, any version which is not 3 digit or has a suffix, cannot be considered a frozen version -- the version may have parts that are moving.
EXCEPTION: In case of sub modules within a repository (Odoo modules in Odoo repositories, and FastAPI modules in other repositories), we are not maintaining the sub module version as it requires high maintenance effort to increment the version numbers in the manifest files of these modules. The version number may indicate a version on the branch but it is advised to trace the exact code based on repository tag.
Here are some examples to illustrate the same:
Artifact | Version | Interpretation |
---|---|---|
Helm Charts
Semantic Versioning 2.0. See more details here.
Dockers
Git repositories
As per guidelines given here.
Odoo modules
Non-Odoo modules
Git repository
v1.2.0
This is Git tag (not branch) and is frozen as tags are generally not moved
Git repository
1.2
A moving branch
Git repository
1.2.0
A branch created temporarily only to tag a version
Odoo module
17.0.1.2.0
On branch 17.0-1.2, but may be moving. See note above
Docker
1.2.0
Frozen package
Docker
1.2
Moving version
Docker
1.2-develop
Moving version
Helm chart
0.0.0-develop
Moving version - latest in develop
branch
Helm chart
1.2.3
Frozen package