File: RELEASING.md

package info (click to toggle)
python-globus-sdk 4.3.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,172 kB
  • sloc: python: 35,227; sh: 44; makefile: 35
file content (62 lines) | stat: -rw-r--r-- 1,798 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# RELEASING

## Prereqs

- Make sure you have a gpg key setup for use with git.
  [git-scm.com guide for detail](https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work)

## Procedure

- Make sure your repo is on `main` and up to date;
    `git checkout main; git pull`

- Read `changelog.d/` and decide if the release is MINOR or PATCH

- (optional) Set the version in the `SDK_VERSION` env var, for use in the
  following steps. `SDK_VERSION=...`

- Decide on the new version number and create a branch;
   `git checkout -b release-$SDK_VERSION`

- Update the version in `pyproject.toml`

- Update metadata and changelog, then verify changes in `changelog.rst`

```
make prepare-release
$EDITOR changelog.rst
```

- Add changed files;
    `git add changelog.d/ changelog.rst pyproject.toml`

- Commit; `git commit -m 'Bump version and changelog for release'`

- Push the release branch; `git push -u origin release-$SDK_VERSION`

- Open a PR for review;
    `gh pr create --base main --title "Release v$SDK_VERSION"`

- After any changes and approval, merge the PR, checkout `main`, and pull;
    `git checkout main; git pull`

- Tag the release; `make tag-release`
    _This will run a workflow to publish to test-pypi._

- Create a GitHub release with a copy of the changelog.
    _This will run a workflow to publish to pypi._

Generate the release body by running
```
./scripts/changelog2md.py
```
or create the release via the GitHub CLI
```
./scripts/changelog2md.py | \
  gh release create $SDK_VERSION --title "v$SDK_VERSION" --notes-file -
```

- Send an email announcement to the Globus Discuss list with highlighted
  changes and a link to the GitHub release page.
  (If the Globus CLI is releasing within a short interval,
  combine both announcements into a single email notice.)