Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions doc/changes/changes_0.6.0.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
# 0.6.0 - 2024-05-21
# 0.6.0 - 2024-05-22

## Feature

* #45 Added a helper function to assemble DB connection parameters.

## Documentation

* #50: Described release process in Developer Guide

## Bugfixes

* #44 Fixed the return value of the operational_saas_database_id fixture.

## Refactoring

* #19: Removed slack notifications for events other than `schedule`
* #19: Removed slack notifications for events other than `schedule`
62 changes: 62 additions & 0 deletions doc/developer_guide/developer_guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,3 +66,65 @@ Executing the integration tests requires the following environment variables to
| `SAAS_ACCOUNT_ID` | ID of the Exasol SAAS account to be used by the tests |
| `SAAS_PAT` | Personal access token to access the SAAS API |

## Creating a Release

### Release Preparation

For preparing a release, the SAPIPY relies on Exasol's [python-toolbox](https://github.com/exasol/python-toolbox).

The invocation depends on your setup:
* When working in a poetry shell, you need to add one double-dash `--` argument to separate arguments to the nox-session `prepare-release`.
* When calling `poetry` directly for one-time usage, then you need to add _two_ double-dashes `-- --` to terminate arguments to poetry and nox before arguments to the nox-session.

```shell
poetry run nox -s prepare-release -- -- <version>
```

Nox session `prepare-release` will
* Create a branch, e.g. `prepare-release/1.2.3` starting from `main`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think, in this case, we should be in the main branch locally.

* Update the version in files `pyproject.toml` and `version.py`
* Update changes documentation
* Rename file `doc/unreleased.md` to `doc/changes_<version>.md` and add the current date as date of the release
* Create a new file `doc/unreleased.md`
* Update the file `doc/changelog.md`
* Commit and push the changes
* Create a pull request on GitHub

Please note that creating a pull request on GitHub requires
* Executable `gh` to be installed and in your `$PATH` variable
* You must be authenticated towards GitHub via gh, use `gh auth` for that
* In case you are using a GitHub token, the token must have permission `org:read`

#### Manually Create a Pull Request

If you prefer to create the pull request manually or cannot provide one of the prerequisites, you can add command line option `--no-pr`:

```shell
poetry run nox -s prepare-release -- -- <version> --no-pr
```

#### Use Branch Other Than `main`

In case you currently are already working on a branch other than `main`, please ensure to have all changes commited and add command line option `--no-branch`:

```shell
poetry run nox -s prepare-release -- -- <version> --no-pr --no-branch
```

### Create and Publish the Release

When all workflows triggered by merging the pull request to `main` have succeeded, you can create a new release by
* Switching to branch `main`
* Creating a git tag and
* Pushing it to `origin`

```shell
TAG="${1}"
git tag "${TAG}"
git push origin "${TAG}"
```

This will trigger additional GitHub workflows
* Running some checks
* Creating a GitHub release on https://github.com/exasol/saas-api-python/releases and
* Publishing the release on [pypi](https://pypi.org/project/exasol-saas-api)