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

Mike Looijmans

´╗┐On 12-12-16 16:20, Robert P. J. Day wrote:

(if there's already a doc section for this somewhere, a pointer to
it would be just ducky.)

if one is building an image for a releasable, commercial product,
and that image involves pulling in numerous layers, then dumping all
sorts of proprietary apps on top of it, what are the possibilities for
how to version number the released images such that, if a client has
an issue, they can identify precisely the state of components that
went into the system they're working with?
I always make a top-level git repository for the project. It contains all the "meta" layers as submodules (sometimes nested).

That way, the version of the top layer is the version of the whole product and can be reproduced any time.

in addition to all of the layers involved in the build, one has to
take into account that, when critical bugs are identified, an updated
RPM might be sent out and applied, whereupon that system's version
number is no longer perfectly accurate. in the end, the state of
someone's running system will be determined by a possibly huge
combination of selected packages, preferred package versions, build
config options, additional user space apps, hot fixes that have been
applied and so on.
The only way to version such a system is to actually dump the whole package version table (e.g. "opkg list-installed"). You could compare the table to the initially installed one and only send the difference, as an optimization.

what sort of meaningful "version number" can be applied to something
like that? i'm sure at least a few other people have to be doing
something like that, so i'm open to suggestions.
Version "numbers" are for marketing purposes only and have no useful meaning in version management. The git hash is the "technical" version number. Create a table somewhere to map the commercial version number to a git hash. The simplest implementation is to "tag" the version numbers in the top-level repository.

Kind regards,

Mike Looijmans
System Expert

TOPIC Products
Materiaalweg 4, NL-5681 RJ Best
Postbus 440, NL-5680 AK Best
Telefoon: +31 (0) 499 33 69 79
E-mail: mike.looijmans@...

Please consider the environment before printing this e-mail

Join to automatically receive all group messages.