🛠 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