Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v3.1.0.0 #198

Closed
wants to merge 8 commits into from
Closed
Show file tree
Hide file tree
Changes from all 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
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

All notable changes to this project will be documented in this file.

## 3.1.0.0

* Update the release guide https://github.com/precice/python-bindings/pull/192

## 3.0.0.0

* Add Cython as build time dependency https://github.com/precice/python-bindings/pull/177
Expand Down
32 changes: 22 additions & 10 deletions docs/ReleaseGuide.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,21 +13,29 @@ The release of the `python-bindings` repository is made directly from a release
* `CHANGELOG.md` on `python-bindings-v2.1.1.1`.
* There is no need to bump the version anywhere else, since we use the [python-versioneer](https://github.com/python-versioneer/python-versioneer/) for maintaining the version everywhere else.

4. [Draft a New Release](https://github.com/precice/python-bindings/releases/new) in the `Releases` section of the repository page in a web browser. The release tag needs to be the exact version number (i.e.`v2.1.1.1` or `v2.1.1.1rc1`, compare to [existing tags](https://github.com/precice/python-bindings/tags)). Use `@target:master`. Release title is also the version number (i.e. `v2.1.1.1` or `v2.1.1.1rc1`, compare to [existing releases](https://github.com/precice/python-bindings/tags)).
4. [Draft a New Release](https://github.com/precice/python-bindings/releases/new) in the `Releases` section of the repository page in a web browser.

* *Note:* We use the [python-versioneer](https://github.com/python-versioneer/python-versioneer/) for maintaining the version. Therefore the tag directly defines the version in all relevant places.
* *Note:* If it is a pre-release then the option *This is a pre-release* needs to be selected at the bottom of the page. Use `@target:python-bindings-v2.1.1.1` for a pre-release, since we will never merge a pre-release into master.
* Use the `Auto-generate release notes` feature. See, for example, https://github.com/precice/python-bindings/releases/tag/v2.3.0.1
* The release tag needs to be the exact version number (i.e.`v2.1.1.1` or `v2.1.1.1rc1`, compare to [existing tags](https://github.com/precice/python-bindings/tags)).
* If this is a stable release, use `@target:master`. If this is a pre-release, use `@target:python-bindings-v2.1.1.1`. If you are making a pre-release, **directly skip to the [pre-release](#pre-release) section below**.
* Release title is also the version number (i.e. `v2.1.1.1` or `v2.1.1.1rc1`, compare to [existing releases](https://github.com/precice/python-bindings/tags)).

a) If a pre-release is made: Directly hit the "Publish release" button in your Release Draft. Now you can check the artifacts (e.g. release on [PyPI](https://pypi.org/project/pyprecice/#history)) of the release. *Note:* As soon as a new tag is created github actions will take care of deploying the new version on PyPI using [this workflow](https://github.com/precice/python-bindings/actions?query=workflow%3A%22Upload+Python+Package%22).
5. As soon as one approving review is made, merge the release PR (from `python-bindings-v2.1.1.1`) into `master`.

b) If this is a "real" release: As soon as one approving review is made, merge the release PR (from `python-bindings-v2.1.1.1`) into `master`.
6. Merge `master` into `develop` for synchronization of `develop`.

5. Merge `master` into `develop` for synchronization of `develop`.
7. If everything is in order up to this point then the new version can be released by hitting the "Publish release" button in your release Draft. This will create the corresponding tag and trigger [publishing the release to PyPI](https://github.com/precice/python-bindings/actions?query=workflow%3A%22Upload+Python+Package%22).

6. If everything is in order up to this point then the new version can be released by hitting the "Publish release" button in your Release Draft. This will create the corresponding tag and trigger [publishing the release to PyPI](https://github.com/precice/python-bindings/actions?query=workflow%3A%22Upload+Python+Package%22).
8. Now there exists be a tag corresponding to the release on `master`. Re-run the [docker release workflow `build-docker.yml` via dispatch]([https://github.com/precice/fenics-adapter/actions/workflows/build-docker.yml](https://github.com/precice/python-bindings/actions/workflows/build-docker.yml)) such that the correct version is picked up by `versioneer`. Check the version in the container via `docker pull precice/pythonbindings`, then `docker run -ti precice/pythonbindings`, and inside the container `$ python3 -c "import precice; print(precice.__version__)"`. ⚠️ There is an open issue that needs fixing https://github.com/precice/python-bindings/issues/195 ⚠️

7. Add an empty commit on master via `git checkout master`, then `git commit --allow-empty -m "post-tag bump"`. Check that everything is in order via `git log`. Important: The `tag` and `origin/master` should not point to the same commit. For example:
9. Add an empty commit (details https://github.com/precice/python-bindings/issues/109) on master by running the steps:

```bash
git checkout master
git commit --allow-empty -m "post-tag bump"
git push
```

Check that everything is in order via `git log`. Important: The `tag` and `origin/master` should not point to the same commit. For example:

```bash
commit 44b715dde4e3194fa69e61045089ca4ec6925fe3 (HEAD -> master, origin/master)
Expand All @@ -48,4 +56,8 @@ The release of the `python-bindings` repository is made directly from a release

For more details refer to https://github.com/precice/python-bindings/issues/109 and https://github.com/python-versioneer/python-versioneer/issues/217.

8. Update Spack package (refer to `python-bindings/spack/README.md`).
10. *Temporarily not maintained* Update Spack package (refer to `python-bindings/spack/README.md`).

## Pre-release

After creating the branch and drafting a release, directly hit the "Publish release" button in your Release Draft. Please note that the release branch is not merged into the master branch during a pre-release. Merging is done only for the stable release. You can check the pre-release artifacts (e.g. release on [PyPI](https://pypi.org/project/pyprecice/#history)) of the release. No further action is required for a pre-release.
20 changes: 0 additions & 20 deletions tools/releasing/packaging/docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -16,27 +16,7 @@ RUN apt-get -qq update && apt-get -qq install \
pkg-config && \
rm -rf /var/lib/apt/lists/*

## Needed, if base image does not create a user? See also https://github.com/precice/precice/pull/1090
## At the moment: precice/precice:latest does not create a user, but benjaminrodenberg/precice:develop creates a user
## ------>
# Create user precice
# ARG uid=1000
# ARG gid=1000
# RUN groupadd -g ${gid} precice \
# && useradd -u ${uid} -g ${gid} -m -s /bin/bash precice \
# && sudo usermod -a -G sudo precice

# Setup passwordless sudo
RUN echo "ALL ALL = (ALL) NOPASSWD: ALL" >> /etc/sudoers

# Switch to the user precice
USER precice
WORKDIR /home/precice
ENV USER=precice

# Use bash instead of default sh
SHELL ["/bin/bash", "-c"]
## <-----

# Upgrade pip to newest version (pip version from 18.04 apt-get is outdated)
RUN python3 -m pip install --user --upgrade pip
Expand Down
Loading