Thank you for your interest in contributing!
- Use GitHub Issues for bug reports and feature requests.
- Include your OS, Docker version, and Docker Compose version.
- For bugs, paste the relevant logs from
docker compose logs rust-builder.
- Open an issue first for non-trivial changes so we can align before implementation.
- Fork the repo and create a feature branch from
main. - Follow the code style notes below.
- Open a pull request with a clear description of what changed and why.
Requirements: Docker Engine 24+, Docker Compose v2, macOS or Linux (Windows via WSL2).
# Build the base image
docker compose -f docker-compose.demo.yml --profile base build rust-dev-base
# Start the full stack
docker compose -f docker-compose.demo.yml up -d
# Watch logs
docker compose -f docker-compose.demo.yml logs -f rust-builder app-a app-b
# Test hot-reload
printf '\n// test change\n' >> demo/app-a/src/main.rsSee rust-builder/RUST_BUILDER_TESTING.md for the full manual test checklist.
cd rust-builder
python -m unittest discover -s tests -vThe test suite uses only the Python standard library — no Docker required.
Rust: cargo fmt and cargo clippy --all-targets -- -D warnings must pass cleanly.
Python:
- Follow existing docstring style (module-level summary + function docstrings).
- Type hints on all public functions.
from __future__ import annotationsat the top of every file.- Run
python -m py_compile rust-builder/*.pyto catch syntax errors.
Use the conventional style: <type>: <short description>, e.g.:
fix: handle missing stamp file on cold startfeat: add support for extra_stamps in service manifestdocs: expand troubleshooting section