PackagingΒΆ

StegX ships as three artefacts, all produced from a single source tree.

PyPI wheel + sdistΒΆ

python -m build
python -m twine check dist/*

The wheel layout is the standard src/ convention: src/stegx/ is the single public top-level package, the console script is wired by [project.scripts] stegx = "stegx.cli:main".

Debian source packageΒΆ

Build from the debian/ tree (tested on Debian trixie and Parrot 6):

sudo apt install debhelper-compat=13 dh-python python3-all \
                 pybuild-plugin-pyproject
debuild -us -uc -b
lintian --pedantic ../stegx_2.0.0-1_all.deb

debian/rules drives everything through dh $@ --with python3 --buildsystem=pybuild.

Docker imageΒΆ

Multi-stage, uid 10001, tini as PID 1, HEALTHCHECK on stegx --version:

docker build \
    --build-arg STEGX_VERSION=2.0.0 \
    --build-arg GIT_SHA=$(git rev-parse HEAD) \
    --build-arg BUILD_DATE=$(date -u +%Y-%m-%dT%H:%M:%SZ) \
    -t stegx:2.0.0 -t stegx:latest .

docker run --rm stegx:2.0.0 --version