summaryrefslogtreecommitdiff
path: root/build2/version-management-module
blob: caed9453c9ade66be542941709957487d20cd94b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
- Module to help with managing project versions [idea]

The place where we have all the information (this project version, all its
dependencies and their versions) is the manifest. So what if we have a module
which extracts this information from the manifest (using libbutl), and presents
it to the buildfile in a nicely parsed and converted way. That is, split
MAJOR/MINOR/PATCH, pre-release, converted to numeric form, etc.

We can then use this to set all the buildfile-level values (version, revision,
abi_*, etc) as well as generate the version file and even generate the version
header which will define this library version as well as check versions of
dependencies. This generation will probably be done via a custom/inline rule.

* Will require the use of semantic versioning.

* What about using build2@X.Y.Z? Theoretically, the version module could
  even issue this. Though it is optional.