Graviton CDK is a modular infrastructure as code (IaC) development kit that enables composing secure, reliable and manageable infrastructure stacks using reusable components akin to building Lego.
ℹ️ Versioning: Pinning a specific version of Graviton is recommended for downstream use. The project is under active development, so capturing and validating any breaking changes or unexpected updates before upgrading is the consumer's responsibility.
Usage: make <command>
Initialize dev environment
install Install Poetry dependencies
install-precommit Install pre-commit hooks
install-poly Install polylith plugins
install-lego Install lego acme cli
Local development
stacks Check for changes in stacks
test Run tests
fmt Ruff formatter and linter (autofix)
lint Ruff formatter and linter (check mode)
pyright Run Pyright type checker
Scaffolding
component Create a new component
base Create a new base
Dependency choirs
outdated Check for outdated Poetry dependencies
update Update Poetry and pre-commit dependencies
Help
help (Default) Print listing of key targets with their descriptions
- Structure based on Polylith & python-polylith.
# Create a new component
poetry poly create component --name <component_name>
# Create a new base
poetry poly create base --name <base_name>
Releases are automatically created by commitizen in the build workflow when a
commit is pushed to the main branch. To communicate the intent of your changes
to the release process, please use the following prefixes:
feat:New feature - will trigger a minor version bumpfix:Bug fix - will trigger a patch version bumptest:Adding or updating testsrefactor:Code refactorstyle:Code style updatechore:Maintenance task (e.g. bumping dependencies)docs:Documentation updateci: CI/CD related changes
When commitizen sees BREAKING CHANGE in the commit message, it will trigger a
major version bump – cz commit is your friend here and will automatically
include the breaking changes in the changelog and release message.
Right now we've set major_version_zero = true in pyproject.toml which means
that we're still in v0.x.x and breaking changes will not trigger a major version
as all versions are considered unstable.
