Contributing#
When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change.
Please note we have a code of conduct, please follow it in all your interactions with the project.
Pull Request Process#
- Use Conventional Commits — commit messages are the source of truth for version bumps and the changelog.
- Update the README and/or the docs with details of changes to the interface, including new environment variables, install extras, and API changes.
- Add or update tests. Unit tests should prefer
moto's@mock_awsfor AWS and mocked GCS clients; reserve thee2emarker for tests that must hit real buckets. - Keep provider parity in mind — if you add a method to the S3
Bucket, consider whether the GCSBucketshould get an equivalent, and vice versa. Document any intentional divergence. - The versioning scheme is SemVer. Version bumps are produced by
commitizenbased on commit history, so scope each change correctly (feat:/fix:/refactor:/build:/ci:/chore:/perf:). - You may merge the Pull Request once you have the sign-off of a reviewer, or if you do not have merge rights, request a reviewer to merge for you.
Development setup#
This project uses uv. To sync a full dev environment:
Run the tests:
Run only the mock-based tests (no real cloud credentials needed):
Run only end-to-end tests (requires AWS and GCS credentials):
Run pre-commit hooks:
Documentation#
Docs are built with MkDocs Material + mkdocstrings.
Install the docs dependency group:
Serve the docs locally with live reload:
Build the static site:
Code of Conduct#
See the Code of Conduct.