Versions and rebuilds#
The client version, rebuild counter, module catalog version, and docs site version are independent.
Read a tag#
Tag |
Meaning |
|---|---|
Client |
Client code version 1.2.3, built with its Taskfile catalog pin |
Client |
Fourth catalog rebuild of client version 1.2.3 |
Modules |
Catalog revision 7 |
Docs |
Version of the shared documentation site |
Important
+4 does not mean modules v4.
Client v1.2.3+4 can contain modules v7.
Its GitHub Release records the included catalog in the Module catalog link.
What changes in a rebuild?#
flowchart LR
accTitle: Same client code, new module catalog
accDescr: A modules v7 release rebuilds the selected client v1.2.3+4 as v1.2.3+5 at the same client commit.
client["Client v1.2.3+4"] --> build["Rebuild at the same client commit"]
modules["Modules v7"] --> build
build --> result["Client v1.2.3+5 with modules v7"]
An automatic rebuild keeps the selected client's commit and passes the new catalog as a build input. It gets its own tag, binaries, and GitHub Release.
Why can the Taskfile still point to an older catalog?
A new client code release reads modules_version from its source Taskfile.yml.
A modules event supplies the released catalog tag instead.
For example, the source may still say modules_version: 'v1' while a rebuild uses v7.
The workflow leaves that source unchanged and records v7 in the GitHub Release.
Read the release record when you need to know what was bundled.
Choose a version#
Client code versions use the SemVer components.
Change from |
Next client tag |
|---|---|
Rebuild the same code with another catalog |
|
Compatible bug fix |
|
Compatible feature |
|
Incompatible client change |
|
A new code version starts without a rebuild suffix.
Its first catalog rebuild adds +1.
The workflow checks tag syntax; it does not decide whether a change is a fix, feature, or breaking change.
Check the accepted tag formats
Type |
Format |
Accepted |
Rejected |
|---|---|---|---|
Modules |
|
|
|
Client code |
|
|
|
Client rebuild |
Code tag followed by |
|
|
Docs site |
|
|
|
Code and docs version components can be zero. Leading zeros are rejected, and rebuild counters start at 1.
How does sorting treat +N?
SemVer calls the suffix after + build metadata and ignores it when comparing precedence.
LimaNix uses Git version sorting when selecting client releases.
That ordering includes the rebuild number: v1.2.3+10 comes after v1.2.3+2.
Which clients receive a new catalog?#
A modules release rebuilds up to three highest published client base versions.
The base is the full version before +, including PATCH.
Versions v1.2.4 and v1.2.3 count separately.
Published client tags |
Selected source |
|---|---|
|
|
|
|
|
|
|
Outside the rebuild window |
With fewer than three base versions, all available versions are selected. Older releases and their documentation remain available after they leave this window.
See how selection works
Find matching client tags with a published GitHub Release.
Sort them by Git version order, highest first.
Group tags by the base version before
+and keep the first tag in each group.Return up to three tags and their commit SHAs.
A tag alone does not qualify without a published release. The shared selector uses a tag glob and does not exclude GitHub prereleases. Full client tag validation happens later; an unsupported tag can take a selection slot and then fail validation.