Hello,

   I have build systems which use the commit id from the manifest to
embed the commit artifact id in the binary.  I also, in most projects,
have an ordinal version number which is loosely coupled between the
repository and the build system/source in the sense that I can forget to
update the source when I tag a new version in the scm.

   Optimally the tagged version _is_ the source version.  I had a period
when I had a build system run "fossil status" and determined if there
were no changes and there was a <componentname>-X.Y.Z tag, then X.Y.Z
would be used as a release version number.  However, I dislike the idea
of the build system requiring the fossil binary to build (in case
someone downloads the source in an archived form), so it never got past
a quick trial.

   (In case you're wondering, when the build system didn't detect a
"release" version it used a special (reserved) version number scheme
which we use for development builds).

   The manifest solves this issue neatly for the commit id; but can it
be made to solve it for version numbers with ordinality?

   How feasible would it be for fossil to in addition to manifest and
manifest.uuid write something like manifest.tags which is simply a file
which lists all (current) tags (newline-separated)?  Build scripts could
grep <componentname>-X.Y.Z to determine the release version.  It would
also allow build systems to use scm tags to flag certain other
attributes; imagine an "experimental" tag, for instance.  (For those who
haven't used manifests: The neat thing with them is that they are a part
of generated source archives).

   It would also allow tagged version numbers to easily be put into
amalgamated sources, for those of us who like to include amalgamation
scripts with libraries.

   Settings-wise, I wouldn't want to add a new option for this, but
perhaps the "manifest" setting can grow from a simple boolean to
something along the line of a "off, on, full" setting.  The idea would
be to make the change completely non-intrusive and completely invisible
to users who have no need for it.

   Thoughts?

   Regarding feasibility; the question isn't whether it *can* be done,
the question is whether the queries are too costly to be able to keep
the "manifest.tags" updated when required.

-- 
Kind Regards,
Jan
_______________________________________________
fossil-users mailing list
fossil-users@lists.fossil-scm.org
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to