Releasing guide¶
Once in a while, we release this package. Here is how.
Pre-requesites¶
You need to be in a working environment, with the dev dependencies installed. You can check it's the case by typing:
pip install -e ".[dev]"
You'll need to get an account on PyPI, where the packages will be uploaded.
The steps¶
Here is the quick version. If you need more details, some parts are explained in more details in the next sections.
# Be sure you are on the good branch
git checkout main
# Ensure the tests run correctly
make test
# Check static typing
make mypy
# Bump the version, according to semantic versionning
hatch version minor # or `hatch version major`, or `hatch version fix`
# Update the changelog
sed -e "s/## .Unreleased./&\n\n## $(hatch version)\n\nDate: $(date +%F)/" \
-i CHANGELOG.md
# Commit the change
git add argos/__init__.py CHANGELOG.md
git commit -m "🏷 — Bump version ($(hatch version))"
# Create a tag on the git repository and push it
git tag "$(hatch version)" && git push
# Build the project
hatch build --clean
# Upload the project to PyPI
hatch publish
Aditionnaly, ensure it works well in a new environment.
Bumping the version number¶
We follow semantic versionning conventions, and the version is specified in the argos.__init__.py
file.
hatch
provide commands to help with this:
hatch version minor
hatch version major
Publishing¶
hatch
will ask you for some credentials. Don't provide them the full credentials to you account, but instead you can create a (scoped) token.
When asked for credentials, enter:
__token__
as the loginthe token as the value.
Verifying it worked¶
Once published, you can test it works properly, by using pip, ideally in a new venv. Here's how:
python -m venv /tmp/argos
source /tmp/argos/bin/activate
pip install argos-monitoring
argos version # should output the proper version
Using the test server¶
When running hatch publish
the main PyPI instance will be used, which is not ideal for testing that it's doing what you want.
If you're still experimenting, you can use the Test PyPI server.
# Publishing on test PyPI
hatch publish -r test
# Installing from test PyPI
pip install --index-url https://test.pypi.org/simple/ argos-monitoring