Skip to content

Commit

Permalink
Merge pull request #44 from rl-institut/release-v0.1.1
Browse files Browse the repository at this point in the history
Release v0.1.1
  • Loading branch information
Ludee authored Aug 10, 2023
2 parents 89195e1 + 8980e38 commit 954a1c4
Show file tree
Hide file tree
Showing 7 changed files with 138 additions and 68 deletions.
29 changes: 29 additions & 0 deletions .github/ISSUE_TEMPLATE/issue_template_release.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
name: Release Issue
about: For new ideas, developments and features
title: Release - Minor Version - 0.1.0
labels: "enhancement"
assignees: 'Ludee'

---

## Description of the release

Describe the release in as much detail as possible.

## Details of the release

**Name:** Find an appropriate and memorable name for the release that will help it be remembered.
**Git tag:** v0.1.0 "super-repo Minor Release v0.1.0"
**Release Manager:** Choose a responsible person.
**Date:** Arrange a convenient date

## Workflow checklist
- I am aware of the workflow in RELEASE_PROCEDURE.md
- Draft GitHub Release
- Release Branch
- Update the version files (CHANGELOG.md, CITATION.cff, setup.py)
- Release Pull Request
- Git Tag
- GitHub Release
- Set up new development
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Describe the findings of the discussion in the issue or meeting.
### Added
- Add a new class [(#)](https://github.com/rl-institut/super-repo/pull/)

### Updated
### Changed
- Update a definition [(#)](https://github.com/rl-institut/super-repo/pull/)

### Removed
Expand Down
18 changes: 8 additions & 10 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,22 @@
# Changelog

All notable changes to this project will be documented in this file.
All notable changes to this project will be documented in this file. <br>
For each version, important additions, changes and removals are listed here.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

Template:
```
## [0.0.0] - Release - Name of Release - 20YY-MM-DD

## [0.1.1] Patch Release - Emmy Hennings Day Patch - 2023-08-10

### Added
- [(#)]()
- Add issue template for release `issue_template_release.md` [(#43)](https://github.com/rl-institut/super-repo/pull/43)

### Changed
- [(#)]()
### Removed
- [(#)]()
```
- Update the release procedure [(#43)](https://github.com/rl-institut/super-repo/pull/43)


## [Unreleased]
## [0.1.0] Minor Release - Emmy Hennings Day - 2023-08-10

### Added
- [LICENSE.txt](https://github.com/rl-institut/super-repo/blob/main/LICENSE.txt)
Expand Down
4 changes: 2 additions & 2 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ authors:
title: "Super Repo"
type: software
license: MIT
version: 0.0.0
version: 0.1.1
doi:
date-released: 2022-03-03
date-released: 2023-08-10
url: "https://github.com/rl-institut/super-repo/"
150 changes: 96 additions & 54 deletions RELEASE_PROCEDURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,59 +17,72 @@ The data follows the [Calendar Versioning (CalVer)](https://calver.org/).<br>
It always has the format `YYYY-MM-DD`, e.g. `2022-05-16`.


## GitHub and PyPI Release
## GitHub Release

### 1. 🐙 Create a `GitHub Issue`
* Named `Release Patch v0.11.7`
* Use `📝ISSUE_TEMPLATE_RELEASE` (❗ToDo❗)
* Discuss a good and suitable name of the release
* Define a day for the release
Following the Semantic Versioning, different workflows for Major, Minor, or Patch
releases are possible. <br>
For Major and Minor releases, follow the complete workflow.<br>
For a Patch release (Hotfix), start at [section 4](https://github.com/rl-institut/super-repo/blob/production/RELEASE_PROCEDURE.md#4--create-a-draft-github-release).

▶️ This issue documents the status of the release!

### 2. 🐙 Create a `GitHub Project`
### 1. 🐙 Create a `GitHub Project`
* Create [New classic project](https://github.com/rl-institut/super-repo/projects?type=classic)
* Use the project template *Automated kanban with reviews*
* Named `Release v0.11.7`
* Named `super-repo-v0.1.0`
* Add a meaningful description
* Track project progress

▶️ It gives an overview of open and finished issues and pull requests!
▶️ It gives an overview of open and finished issues and Pull Requests!

### 3. 🐙 Create a `Draft GitHub Release`
* [Draft a new release](https://github.com/rl-institut/super-repo/releases/new)
* Enter the release version number `v0.11.7` as title
* Summarize key changes in the description
* `## [v0.11.7] Patch - Name - Date`
* `### Added`
* `### Changed`
* `### Removed`
* Add a link to compare versions
* `**Compare versions:** [v0.11.6 - v0.11.7](https://github.com/rl-institut/super-repo/compare/v0.11.6...v0.11.7)`
* Add a link to the `📝CHANGELOG.md`
* `Also see [**CHANGELOG.md**](https://github.com/rl-institut/super-repo/blob/production/CHANGELOG.md)`
* Save draft
### 2. 🐙 Create a `GitHub Issue`
* Use `📝issue_template_release`
* Name `Release - Minor Version - 0.1.0`
* Complete the necessary details

### 4. 🐙 Finish all planned Developments
▶️ This issue documents the status of the release!

### 3. 🐙 Finish all planned Developments
* Some days before the release, inform all developers
* Merge the open pull requests
* Merge the open Pull Requests
* On release day, start the release early to ensure sufficient time for reviews
* Merge everything on the `develop` branch

▶️ Completion of the preparation of the planned release!

### 4. 🐙 Create a `Draft GitHub Release`
* Start here for a **Patch Release** (Hotfix)
* [Draft a new release](https://github.com/rl-institut/super-repo/releases/new)
* Enter the release version number `0.1.0` as title
* Summarize key changes from changelog in the description
```
## [0.1.0] Minor Release - Name - Date
### Added
### Changed
### Removed
```
* Add a link to the `📝CHANGELOG.md`
* `**Complete changelog:** [CHANGELOG.md](https://github.com/rl-institut/super-repo/blob/production/CHANGELOG.md)`
* Add a link to compare versions
* `**Compare versions:** [0.1.0 - 0.2.0](https://github.com/rl-institut/super-repo/compare/v0.1.0...v0.2.0)`
* **Save draft**

### 5. 💠 Create a `release` branch
* Checkout `develop` and branch with `git checkout -b release-v0.11.7`
* Push branch with `git push --set-upstream origin release-v0.11.7`
* Checkout `develop` and branch with `git checkout -b release-v0.1.0`
* Push branch with `git push --set-upstream origin release-v0.1.0`
* Add bump2version (❗ToDo❗)

### 6. 📝 Update the version files
* `📝CHANGELOG.md`
* All Pull Request are included
* Add a new section with correct version number
* Give the suitable name to the release
* Check that all Pull Request are included
* Rename `Unreleased` section with release title from issue
* Follow `[0.0.0] Minor Release - Name of Release - 20YY-MM-DD`
* `📝CITATION.cff`
* Update the version number
* Update `version`
* Update `date-released`
* `📝setup.py`
* Update `version`
* Update `download_url` (.../v0.11.7.tar.gz)
* Update `download_url` (.../v0.1.0.tar.gz)

▶️ Increase version numbers!

### 7. 🐙 Create a `Release Pull Request`
* Use `📝PR_TEMPLATE_RELEASE` (❗ToDo❗)
Expand All @@ -78,19 +91,64 @@ It always has the format `YYYY-MM-DD`, e.g. `2022-05-16`.
* Run all test
* Execute the software locally
* Wait for reviews and tests
* Merge PR but do not delete `release` branch
* Merge Pull Request and delete `release` branch

▶️ Merge code on `production` branch!

### 8. 💠 Set the `Git Tag`
* Checkout `production` branch and pull
* Check existing tags `git tag -n`
* Create new tag: `git tag -a v0.11.7 -m "super-repo Patch Release v0.11.7 with PyPI"`
* Create new tag: `git tag -a v0.1.0 -m "super-repo Minor Release v0.1.0"`
* This commit will be the final version for the release, breath three times and check again
* Push tag: `git push --tags`

* If you messed up, remove tags and start again
* Delete local tag: `git tag -d v0.11.7`
* Delete remote tag: `git push --delete origin v0.11.7`
* Delete local tag: `git tag -d v0.1.0`
* Delete remote tag: `git push --delete origin v0.1.0`

▶️ Git Tag for GitHub Release!

### 9. 🐙 Publish `GitHub Release`
* Navigate to releases and open the draft release
* Choose the correct `Git Tag`
* Choose the `production` branch
* Select `Set as the latest release`
* Select `Create a discussion for this release` in category `Announcements`
* **Publish release**

▶️ Release on GitHub! 🚀

### 10. 🐙 Set up new development
* Create a Pull Request from `production` to `develop`
* Create a new **Unreleased** section in the `📝CHANGELOG.md`
```
## [Unreleased]
### Added
- [(#)]()
### Changed
- [(#)]()
### Removed
- [(#)]()
```

▶️ Continue the developments 🛠


### 9. 💻 Create and publish package on PyPI
## PyPi Release

### 0. 💻 Check release on Test-PyPI
* Check if the release it correctly displayed on [Test-PyPI](https://test.pypi.org/project/open-mastr/#history)
* With each push to the release branch or the branch `test-release` the package is released on [Test-PyPI](https://test.pypi.org/project/open-mastr/#history) by GitHub workflow (test-pypi-publish.yml).
* Note: Pre-releases on Test-PyPI are only shown under `Release history` in the navigation bar.
* Note: The branch status can only be released to a version on Test-PyPI once. Thus, for every branch status that you want to see on Test-PyPI increment the build version with `bump2version build` and push afterwards.
* Once testing on Test-PyPI is done, change the release version to the final desired version with `bump2version release`
* Note: The release on Test-PyPI might fail, but it will be the correct release version for the PyPI server.
* Push commits to the `release-*` branch

### 1. 💻 Create and publish package on PyPI
* Navigate to git folder `cd D:\git\github\GROUP\REPO\`
* Create package using `python setup.py sdist`
* Check that file has been created in folder `dist`
Expand All @@ -102,21 +160,5 @@ It always has the format `YYYY-MM-DD`, e.g. `2022-05-16`.

▶️ Publish the Package

### 10. 🐙 Publish `GitHub Release`
* Summarize key changes in the description
* Choose the correct git `tag`
* Choose the `production` branch
* Publish release

▶️ Release on GitHub!

### 11. 🐙 Set up new development
* Create a Pull request from `production` to `develop`
* Delete the `release` branch
* Create a new **unreleased section** in the `📝CHANGELOG.md`

▶️ Continue the developments 🛠


## Sources:
* https://raw.githubusercontent.com/folio-org/stripes/master/doc/release-procedure.md
1 change: 1 addition & 0 deletions docs/development/release/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
# Release Procedure

The release consists of three tasks:

1. Create a [GitHub Release](https://github.com/rl-institut/super-repo/releases)
2. Merge new features to the `production` branch
3. Create a new version of the package at PyPI
Expand Down
2 changes: 1 addition & 1 deletion mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ theme:
markdown_extensions:
- admonition
- toc:
permalink: 💙
permalink: "#"
- pymdownx.superfences
- pymdownx.highlight:
use_pygments: true
Expand Down

0 comments on commit 954a1c4

Please sign in to comment.