<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ouroboros/VERSION, branch be</title>
<subtitle>Ouroboros main repository</subtitle>
<id>https://ouroboros.rocks/cgit/ouroboros/atom?h=be</id>
<link rel='self' href='https://ouroboros.rocks/cgit/ouroboros/atom?h=be'/>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/'/>
<updated>2026-02-18T07:02:26+00:00</updated>
<entry>
<title>build: Automatically parse version from tag</title>
<updated>2026-02-18T07:02:26+00:00</updated>
<author>
<name>Dimitri Staessens</name>
<email>dimitri@ouroboros.rocks</email>
</author>
<published>2026-02-15T17:54:42+00:00</published>
<link rel='alternate' type='text/html' href='https://ouroboros.rocks/cgit/ouroboros/commit/?id=b6b0b754d99dc2298930cb5db42950bf7c08cc08'/>
<id>urn:sha1:b6b0b754d99dc2298930cb5db42950bf7c08cc08</id>
<content type='text'>
The build will now parse tags so the git tag is now the single source
of truth for a version. We do not need to manually maintain the
version header.

The VERSION file uses git's export-subst feature. When git archive
creates a snapshot (e.g. cgit), git substitutes the $Format:...$
placeholder with the output of git describe, embedding the version
string directly in the archive. This requires the export-subst
attribute to be set for the VERSION file in the repository's
.gitattributes.

The version is resolved in the following order:
 - git describe (inside a git repository with tags)
 - the VERSION file (archives/snapshots)
 - 0.0.0 (fallback)

The build system will warn when it can't set a correct version, such
as in a git repo without tags, or an archive without VERSION.

Signed-off-by: Dimitri Staessens &lt;dimitri@ouroboros.rocks&gt;
Signed-off-by: Sander Vrijders &lt;sander@ouroboros.rocks&gt;
</content>
</entry>
</feed>
