πŸ›  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.

  1. Create a local tag with the appropriate version number:

    git tag x.y.z
    
  2. Push the tag to GitHub:

    git push origin x.y.z
    

What to do if the release failed?#

The release failed during pre-release checks#

  1. Delete the local tag

    git tag -d x.y.z
    
  2. Delete the remote tag

    git push --delete origin x.y.z
    
  3. Fix the issue(s) which lead to the failing checks

  4. Start the release process from the beginning

One of the release steps failed (Partial Release)#

  1. Check the Github action/workflow to see which steps failed

  2. 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