Building and Testing¶
Everything runs through Docker; no host toolchain needed.
Building from source¶
This builds the partylinepagerd image from the Dockerfile:
a multi-stage build that compiles the Rust workspace and
installs the yopass CLI, Docker CLI, and compose plugin into a
minimal Debian runtime image.
The full image (all transports in one container):
Running tests¶
compose/docker-compose.build-tools.yml carries a build-tools
service. It builds from the same Dockerfile's build stage and
keeps the cargo registry in ./.cache and build output in
./target, so repeat runs are fast and nothing root-owned
lands in the checkout.
T="-f compose/docker-compose.build-tools.yml"
# Whole workspace
docker compose $T run --rm build-tools
# One crate
docker compose $T run --rm build-tools cargo test -p partylinepager-core
Ad-hoc cargo commands¶
The build-tools service is a general-purpose Rust
environment. Any cargo command works:
T="-f compose/docker-compose.build-tools.yml"
# Check if a specific package can be updated
docker compose $T run --rm -T build-tools \
cargo update -p imbl-sized-chunks --dry-run
# Show future-incompatibility report (compiler deprecation warnings)
docker compose $T run --rm -T build-tools \
cargo report future-incompatibilities --id 1
# Inspect dependency tree for a crate
docker compose $T run --rm -T build-tools \
cargo tree -p imbl-sized-chunks
# Check what depends on a specific crate
docker compose $T run --rm -T build-tools \
cargo tree -i imbl-sized-chunks
Note
Always use -T (no TTY) and prefer run --rm so
the container is cleaned up. When calling from a script,
also redirect stdin: `