A release target, and the build stamp moved behind a `~` has been fixed.
See more details at : https://github.com/pdulvp/pmane-sa/issues/1
- cmake --build build --target release builds the deb named by the version
alone -- pmane-sa_1.2.1_amd64.deb -- which is the target
prel.config.json already calls as its releaseBuildCommand
- an ordinary build's stamp now goes into the version behind a ~ rather than
into Debian's release field: 1.2.1~2610... sorts before 1.2.1, so the
release installs over a working build instead of being held back by it
- the stamp-free build is asked for by the target (-DRELEASE=ON) and is not a
tree option, so there is no switch left on by accident and no two different
1.2.1 coming out of the same tree
- fullVersion() gives the version alone when there is no stamp, instead of
A release target, and the stamp moved behind a ~
<sub>2026-10-22-2205-a-release-target-and-the-stamp-moved-behind-a-tilde.md — 2026-10-22 22:05</sub>
Taken from card-sol, which already does both: /mnt/Data/Works/card-sol
CMakeLists.txt, cmake/GenerateVersion.cmake, cmake/CPackOptions.cmake.
Two things:
- a release target that builds the deb named by the version alone --
pmane-sa_1.2.1_amd64.deb, no build stamp. It is the target
prel.config.json already calls as releaseBuildCommand;
- the stamp of an ordinary build moved out of Debian's release field and
into the version behind a ~, so that 1.2.1~2610... sorts before
1.2.1 and the release installs over a working build.
Steps
- [x] .gitignore -- docs/plans/* and !docs/plans/README.md, and the
README stating the convention
- [x] cmake/GenerateVersion.cmake -- -DRELEASE=ON writes an empty stamp
instead of a timestamp
- [x] src/Version.h -- fullVersion() gives the version alone when the
stamp is empty, not 1.2.1 (build )
- [x] CMakeLists.txt -- the release target: stamp-free version, then
pmane-sa, then deb, each under PROGMAN_KEEP_VERSION=1 so the
build does not write the stamp back
- [x] cmake/CPackOptions.cmake -- stamp into CPACK_PACKAGE_VERSION
behind a ~ rather than CPACK_DEBIAN_PACKAGE_RELEASE; the comments
in CMakeLists.txt that describe the old scheme follow
- [x] both targets built, both names checked
<sub>Filed by prel from the completed plans at commit time.</sub>