ably-python uses Poetry for packaging and dependency management. Please refer to the Poetry documentation for up to date instructions on how to install Poetry.
Perform the following operations after cloning the repository contents:
git submodule init
git submodule update
# Install the crypto extra if you wish to be able to run all of the tests
poetry install -E crypto
poetry run pytest
Releases should always be made through a release pull request (PR), which needs to bump the version number and add to the change log.
The release process must include the following steps:
- Ensure that all work intended for this release has landed to
main
- Create a release branch named like
release/1.2.3
- Add a commit to bump the version number, updating
pyproject.toml
andably/__init__.py
- Add a commit to update the change log
- Push the release branch to GitHub
- Create a release PR (ensure you include an SDK Team Engineering Lead and the SDK Team Product Manager as reviewers) and gain approvals for it, then merge that to
main
- From the
main
branch, runpoetry build && poetry publish
to build and upload this new package to PyPi - Create a tag named like
v1.2.3
and push it to GitHub - e.g.git tag v1.2.3 && git push origin v1.2.3
- Create the release on GitHub including populating the release notes
We tend to use github_changelog_generator to collate the information required for a change log update.
Your mileage may vary, but it seems the most reliable method to invoke the generator is something like:
github_changelog_generator -u ably -p ably-python --since-tag v1.0.0 --output delta.md
and then manually merge the delta contents in to the main change log (where v1.0.0
in this case is the tag for the previous release).