Polyvers¶
version: | 0.1.1a1+3.g10c2764 |
---|---|
updated: | 21/11/2018 16:16:36 |
Documentation: | https://polyvers.readthedocs.io |
repository: | https://github.com/JRCSTU/polyvers |
pypi-repo: | https://pypi.org/project/polyvers/, https://pypi.org/project/polyversion/ |
keywords: | version-management, configuration-management, versioning, git, monorepos, tool, library |
copyright: | 2018 JRC.C4(STU), European Commission (JRC) |
license: | EUPL 1.2 |
A Python 3.6+ command-line tool to manage PEP-440 version-ids of dependent sub-projects hosted in a Git monorepos, independently.
The key features are:
- setuptools integration,
- x2 repo schemes (monorepo, mono-project),
- configurable version scheme,
- leaf release scheme,
- intuitive version-bump algebra (TODO),
- configurable engravings.
The leaf version scheme feature departs from the logic of Similar Tools. Specifically, when bumping the version of sub-project(s), this tool adds +2 tags and +1 commits:
one Version tag in-trunk like
foo-proj-v0.1.0
,and another Release tag on a new out-of-trunk commit (leaf) like
foo-proj-r0.1.0
(the new version-ids are engraved only in this release-commit):![]()
Leaf-commits & version/release-tags for the two sub-project’s, as shown in this repo’s git history.
Note
The reason for this feature is to allow exchange code across branches (for the different sub-projects) without engravings getting in your way as merge-conflicts.
Additional capabilities and utilities:
- It is still possible to use plain version tags (vtags) like
v0.1.0
, assuming you have a single project (called hereinafter a mono-project) - A separate Python 2.7+ polyversion project, which contains API to extract
sub-project’s version from past tags (provided as a separate subproject
so client programs do not get
polyvers
commands transitive dependencies). The library functions as a setuptools plugin.
Table of Contents¶
- 1. Usage: polyvers cmdline-tool
- 2. Usage: polyversion library
- 3. Changes
- 3.1. TODOs
- 3.2. 2018-08-07: polyversion-v0.2.2a1, polyvers-v0.1.1a1
- 3.3. 2018-07-08: polyversion-v0.2.2a0
- 3.4. 2018-07-06: polyvers-v0.1.1a0
- 3.5. 2018-07-05: polyversion-v0.2.1a0
- 3.6. 2018-07-04: polyversion-v0.2.0a2
- 3.7. 2018-06-29: polyversion-v0.1.1a3
- 3.8. 2018-06-27: polyversion-v0.1.1a0
- 3.9. 2018-06-06: polyvers-v0.1.0a1, polyversion-v0.1.0a7
- 3.10. 2018-06-05: polyvers-v0.1.0a0, polyversion-v0.1.0a6: co2mpas-ready
- 3.11. 2018-06-05: polyversion-v0.1.0a5
- 3.12. 2018-06-05: polyversion-v0.1.0a4
- 3.13. 2018-06-03: polyversion-v0.1.0a3: setuptools
- 3.14. 2018-05-24: 0.0.2a10: polyvers
- 3.15. 2018-05-23: 0.0.2a9.post0: polyvers
- 3.16. 2018-05-19: 0.0.2a8: polyvers
- 3.17. 2018-05-18: 0.0.2a6:
bump
! - 3.18. 2018-05-18: 0.0.2a5
- 3.19. 2018-05-17: 0.0.2a1: monorepo!
- 3.20. 2018-01-29: 0.0.1a0: mono-project
- 4. Contributing
- 5. Reference