Skip to content

Latest commit

 

History

History
62 lines (42 loc) · 1.94 KB

File metadata and controls

62 lines (42 loc) · 1.94 KB

Contributing to RustBuilder

Thank you for your interest in contributing!

Reporting issues

  • 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.

Proposing changes

  1. Open an issue first for non-trivial changes so we can align before implementation.
  2. Fork the repo and create a feature branch from main.
  3. Follow the code style notes below.
  4. Open a pull request with a clear description of what changed and why.

Running the demo locally

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.rs

See rust-builder/RUST_BUILDER_TESTING.md for the full manual test checklist.

Running Python tests

cd rust-builder
python -m unittest discover -s tests -v

The test suite uses only the Python standard library — no Docker required.

Code style

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 annotations at the top of every file.
  • Run python -m py_compile rust-builder/*.py to catch syntax errors.

Commit messages

Use the conventional style: <type>: <short description>, e.g.:

  • fix: handle missing stamp file on cold start
  • feat: add support for extra_stamps in service manifest
  • docs: expand troubleshooting section