[build2] How to tag when having multiple packages in one git repo?

Klaim - Joël Lamotte mjklaim at gmail.com
Thu Jul 19 11:59:44 UTC 2018


What is the recommended way to name tags in case of multi-package repository?
(I'm not blocked by this, it's just a question I had while trying to
setup some experiments)

Assuming a (git) repository with several packages, I see several
possible configurations:

A. The packages each have different version numbers.
B. The packages should be considered in the same version number, so
it's repository-wide.
C. The packages each have different version numbers, but the
repository also have it's own version number (which is basically how
boost works currently).

I've been searching in the doc about these cases but I don't think
it's mentioned?

For A, I'm not sure what tag naming would help with build2 automatic detection.
As I can't name tags "vX.Y.Z" without quickly getting into trouble,
I was considering doing something like "packagename-vX.Y.Z".

I see 2 situations where case A would seem necessary:
 - you don't want to manage more than one repository, but your project
logically is composed of different libraries progressing in sync but
not breaking interfaces at the same time.
 - you have a repository of packages which are a common set of
dependencies, sources or binaries, each one of the dependency being at
a specific version.

Otherwise it's better to have different repositories for each package of course.

For B, I think it's kind of the same situation in the hello
repository, with mhello and hello packages.
The git tag then acts like a common version information, there is 1
tag per version and all manifests have the same version.
I'm not sure if it's good enough.
I suspect if you make the "bdep release" commands mentioned in the
introduction doc, this case might imply having a version number at the
repository level?
Maybe in the packages.manifest?

For C, it seems to just be the more generic case of B.

What do you think?

A. Joël Lamotte



More information about the users mailing list