pdulvp.fr

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

1.2.1 (build )

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:

  1. 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;

  1. 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>