Please refer to Cloudsmith's standard guide on Open-Source Contributing.
By making any contributions to Cloudsmith Ltd projects you agree to be bound by the terms of the Cloudsmith Ltd Contributor License Agreement.
The basic requirements are:
- Any current version of Python.
- The ability to install PyPI packages (preferably in a virtual environment).
All dependencies are declared in pyproject.toml: production deps under [project.dependencies], with development, binary-build, and release tooling in dependency groups. Exact versions are locked in uv.lock.
For most purposes you just want uv: uv sync --locked --group dev creates a virtual environment with the project (editable) and all dev dependencies installed.
Our direnv config file codifies the development environment setup which we use internally.
Please ensure code conforms to PEP-8 and PEP-257.
To make a new release for cloudsmith-cli:
$ bumpversion <major|minor|revision>
A tag will automatically created along with the version bump commit. Push the tag with git push origin {version}
Please ensure that CHANGELOG.md is updated appropriately with each release.
See the section for raising a question in the Contributing Guide.