repomatic.release.manpages module

Packing of the man pages a release attaches.

The release workflow renders one roff .1 file per command of the [tool.repomatic] manpages.script tree, then attaches them to the release as a single tarball. pack_manpages() builds that tarball.

The archive is byte-deterministic: members are sorted and carry no timestamp or owner, so packing an unchanged tree twice gives the same file, and the same digest for its attestation.

repomatic.release.manpages.MANPAGES_ARCHIVE_SUFFIX: Final[str] = '.tar.gz'

Extension of the man-page tarball, after its asset name.

repomatic.release.manpages.pack_manpages(man_dir, archive)[source]

Bundle the pages of man_dir into the gzipped tarball archive.

Each member keeps its path below man_dir, prefixed with the name of the directory itself, as tar --create man/ would store it. A reader unpacking the archive gets the same man/ tree the release job rendered.

Parameters:
  • man_dir (Path) – Directory holding the rendered pages.

  • archive (Path) – The tarball to write. An existing file is replaced.

Return type:

list[str]

Returns:

The member names, in archive order.

Raises:

ValueError – When man_dir holds no file.