🛠 Developer Guide¶
Setting up the workspace¶
Checkout the Project¶
git checkout git@github.com:exasol/bucketfs-python.git
Install project dependencies¶
poetry install
Setup pre-commit hook(s)¶
poetry run pre-commit install
Creating a Release¶
Prepare the Release¶
To prepare for a release, a pull request with the following parameters needs to be created:
Updated version numbers
Updated the changelog
Updated workflow templates (not automated yet)
This can be achieved by running the following command:
nox -s prepare-release -- <major>.<minor>.<patch>
Replace <major>, <minor>, and <patch> with the appropriate version numbers. Once the PR is successfully merged, the release can be triggered (see next section).
Triggering the Release¶
Warning
Before creating a tag for a release, make sure you have pulled in the latest changes
from master/main (git pull).
To trigger a release, a new tag must be pushed to GitHub. For further details, see .github/workflows/ci-cd.yml.
Create a local tag with the appropriate version number:
git tag x.y.zPush the tag to GitHub:
git push origin x.y.z
What to do if the release failed?¶
The release failed during pre-release checks¶
Delete the local tag
git tag -d x.y.zDelete the remote tag
git push --delete origin x.y.zFix the issue(s) which lead to the failing checks
Start the release process from the beginning
One of the release steps failed (Partial Release)¶
Check the Github action/workflow to see which steps failed
Finish or redo the failed release steps manually
Note
Example
Scenario: Publishing of the release on Github was successfully but during the PyPi release, the upload step got interrupted.
Solution: Manually push the package to PyPi