You can use build
to simply build the source and binary distribution:
python -m pip install build
python -m build
You need to make sure you have the git submodules
updated:
git submodule update --init
If you want to manually compile the proto files you need to install the build
dependencies manually (sadly it seems like there is no way to install build
dependencies from the pyproject.toml
file with a simple command):
python -m pip install grpcio-tools mypy-protobuf setuptools setuptools_scm[toml] wheel
Then you can compile the proto files by running:
python setup.py compile_proto
If you have any issues with these dependencies, please check the
pyproject.toml
file and try installing the exact supported versions instead.
These are the steps to create a new release:
-
Get the latest head you want to create a release from.
-
Update the
RELEASE_NOTES.md
file if it is not complete, up to date, and clean from template comments (<!-- ... ->
) and empty sections. Submit a pull request if an update is needed, wait until it is merged, and update the latest head you want to create a release from to get the new merged pull request. -
Create a new signed tag using the release notes and a semver compatible version number with a
v
prefix, for example:git tag -s -F RELEASE_NOTES.md v0.0.1
-
Push the new tag.
-
A GitHub action will test the tag and if all goes well it will create a GitHub Release, create a new announcement about the release, and upload a new package to PyPI automatically.
-
Once this is done, reset the
RELEASE_NOTES.md
with the template:cp .github/RELEASE_NOTES.template.md RELEASE_NOTES.md
Commit the new release notes and create a PR (this step should be automated eventually too).
-
Celebrate!