1.8 KiB
Sandcage
Rust CLI project for managing Docker-based development environments.
Project structure
crates/sandcage/— Main CLI binary (Cargo workspace member)crates/sandcage-test/— Integration/functional tests (not exported)images/— Base Dockerfile, fragments, and per-service entrypoint scriptstemplates/— Project templates forsandcage initscripts/— Python scripts for tooling, deployment, and automationdocs/— Documentation
Python / uv
This is not a Python project. The pyproject.toml and uv setup exist to provide a
managed Python environment for tooling: deploy scripts, data processing, automation recipes,
CI helpers, and any ad-hoc scripting that skills or plugins need.
Run Python scripts via uv:
uv run scripts/some_script.py
uv run python -c "..."
Add dependencies as needed:
uv add <package>
uv add --dev <package>
Just commands
Project tasks are run via just. Run just to see all available recipes.
When asked to "export", use:
just export-dry # preview locally
just export # push to public repo
Configuration: scripts/export.toml (excluded paths, asset overlay directory).
Public-facing assets (README, etc.): scripts/export_assets/.
Testing
There is no CI pipeline. Do not plan or implement CI-based builds, test matrices, or CI config files unless explicitly asked.
After finishing a feature implementation, run just test-functional (requires Docker +
built images) at least once before reporting the work as done. If images need rebuilding
first, use just test-functional-full. This catches regressions that unit tests miss —
like container launch, TTY attach, and mount behavior.
Conventions
See CONVENTION.md for commit message format (gitmoji).