For Debian packaging additionally:
debhelper (compat level 13)dpkg-buildpackage| Command | Artefacts |
|---|---|
make |
lib/libmkhpack.so.2.0.0, lib/libmkhpack.a, lib/mkhpack.h, lib/mkhpack.pc |
make dist |
mkhpack-2.0.0-src.tar.gz (source tarball) |
make bdist |
mkhpack-2.0.0.tar.gz (binary tarball) |
dpkg-buildpackage -us -uc -b |
libmkhpack1_*.deb, libmkhpack-dev_*.deb |
make install # installs to /usr/local
make install PREFIX=/usr # installs to /usr
make install DESTDIR=/tmp/staging # staged install for packaging
See CONFIGURATION.md for a full description of install paths.
release.yml)Trigger: Push to main branch, excluding documentation-only changes
(*.md, LICENSE, AGENTS.md).
Runner: ubuntu-latest
Steps:
build-essential, debhelper, ruby)VERSION from Makefilemake check)make dist bdist)dpkg-buildpackage -us -uc -b)vX.Y.Z)Create a GitHub Release with auto-generated notes, attaching:
.deb packagesConcurrency: The release group ensures only one release runs at a time;
in-progress releases are not cancelled.
update-pages.yml)Trigger: Push to main affecting README.md, LICENSE, or
code_of_conduct.md; also available via manual workflow_dispatch.
Runner: ubuntu-latest
Steps:
gh-pages branchREADME.md, LICENSE, and code_of_conduct.md from mainbundle exec rake compile)gh-pages branch| Variable / Secret | Type | Description | Used In |
|---|---|---|---|
secrets.GITHUB_TOKEN |
secret | Automatic GitHub token for creating releases and tags | release.yml (Create tag, Create GitHub Release steps) |
No custom secrets or repository variables are required.
The debian/ directory provides packaging metadata for building .deb packages:
libmkhpack1 — runtime package containing libmkhpack.so.*libmkhpack-dev — development package containing headers, static library,
development symlink, and pkg-config fileKey files:
| File | Purpose |
|---|---|
debian/control |
Package metadata and dependencies |
debian/rules |
Build rules (delegates to make lib, make install, make check) |
debian/changelog |
Debian changelog |
debian/copyright |
Machine-readable copyright in DEP-5 format |
debian/libmkhpack1.install |
File list for the runtime package |
debian/libmkhpack-dev.install |
File list for the development package |
debian/source/format |
3.0 (native) |
mkhpack.spec provides an RPM spec file with mkhpack and mkhpack-devel
sub-packages. Build requires: gcc, make, ruby.
make dist): includes all source files needed to build
from scratchmake bdist): includes pre-built shared and static
libraries, headers, and the pkg-config fileVERSION in Makefile if releasing a new versiondebian/changelog with the new version entrymake check locally to verify all tests passdevelopment branch into mainmain — the release workflow handles the restTo rollback a release:
gh release delete vX.Y.Zgit push origin :refs/tags/vX.Y.Zmain if necessarymain — if the VERSION still exists as a tag, the workflow will skip