lib extra:
BaseSpace holds the shared tasks (lint, clean, setup-dev, tools, update, version), then PythonSpace and RustSpace add language-specific lint, test, and tool setup, and PythonLibSpace and RustLibSpace add publishing on top. GitHubActionsTools, BaseServiceSpace, and SubmodulesUtils extend BaseSpace directly.
Prebuilt spaces
PythonSpace- Python lint, test, and dev setup (ruff, ty, deptry, pytest)RustSpace- Rust lint, tool setup, and update (clippy, fmt, rustup, cargo)PythonLibSpace-PythonSpacepluspublish(PyPI / TestPyPI)RustLibSpace-RustSpacepluspublish(crates.io)GitHubActionsTools- GitHub Actions linting (actionlint) and updatesBaseServiceSpace- build / deploy / destroy hooks to overrideSubmodulesUtils- sync git submodules
PythonSpace
PythonSpace provides common tasks for Python projects:
bake lint- Run prettier, toml-sort, ruff format, ruff check, ty, deptrybake test- Run pytest with coverage ontests/unit/bake test-integration- Run integration tests fromtests/integration/bake test-all- Run all testsbake clean- Clean gitignored files (with exclusions)bake clean-all- Clean all gitignored filesbake setup-dev- Setup Python development environmentbake tools- List development toolsbake update- Upgrade dependencies (includes uv lock —upgrade)- …and more (run
bake --help)
Creating custom spaces
Create custom spaces by inheriting fromBaseSpace:
BaseSpace provides these tasks (override as needed):
lint()- Run prettierclean()/clean_all()- Clean gitignored filessetup_dev()- Setup development environmenttools()- List development toolsupdate()- Upgrade dependencies- …and more
Other bakelib helpers
- Environments - multi-environment bakebooks
- Refreshable cache - cached fetched values with refresh
- Secrets - tracked secrets with
bake secretcommands