Re: suggestions for version controlling multi-layer reproducible builds?

Richard Leitner

On 12/12/2016 05:03 PM, Bryan Evenson wrote:

For my setup I have a separate package that is the distribution
version number. Whenever we release an update, the distribution
version number is updated. We then tag all our layers with the
distribution version number for proper record keeping. The Angstrom
distribution was (or maybe still is?) doing something similar and was
the inspiration for our setup.


Any time we release an update, no matter how minor, we update the
distribution version package. Otherwise, as you state, you could
have an update that you can't reproduce. We also archive the package
repository and generated image files for each release so we can flash
a board with a previous release and test from there. It can be a
pain to get the process down the first time, but after that a simple
Bash script can take care of all the hard work for you and ensure you
don't skip a step.
I'm using a similar approach, but instead of using a separate "version
package" I'm using the "BUILDNAME" and "DISTRO_VERSION" variables in my

Then depending on how "large" the release is and which changes it
includes the Major, Minor or Patchlevel of the version is increased.

Furthermore (like Bryan already mentioned) for every release a tag in
every layer containing the DISTRO_VERSION is created.

The layer setup/checkout and build then is automated by a shellscript.
This shellscript takes the version as an argument and produces the
images, source archives, update packages and everything else needed for
a (nearly) reproducible builds.

Hope that helps.

Richard L

Join { to automatically receive all group messages.