@@ -21,46 +21,63 @@ The procedure for cutting a new release is as follows:
21
21
22
22
Check that the HEAD of release now matches upstream/main.
23
23
24
- 2. Make sure the branch is ready for release. Ensure that :
24
+ 2. Ensure that the release notes are up to date. Run: :
25
25
26
- 1. The version number has been bumped.
27
-
28
- 2. The release notes are up to date. If they are, the `changes
29
- <https://github.com/beeware/rubicon-objc/tree/main/changes> `__ directory
30
- should be empty, except for the ``template.rst `` file.
31
-
32
- These two changes (the version bump and release notes update) should go
33
- through the normal pull request and review process. They should generally
34
- comprise the last PR merged before the release occurs.
35
-
36
- If the version number *hasn't * been updated, or ``changes `` directory
37
- *isn't * empty, you need to create a PR (using the normal development
38
- process) that contains these changes. Run::
39
-
40
- $ tox -e towncrier -- --draft
26
+ $ tox -e towncrier -- --draft
41
27
42
28
to review the release notes that will be included, and then::
43
29
44
30
$ tox -e towncrier
45
31
46
- to generate the updated release notes. Submit the PR; once it's been
47
- reviewed and merged, you can restart the release process from step 1.
32
+ to generate the updated release notes.
48
33
49
34
3. Tag the release, and push the tag upstream::
50
35
51
36
$ git tag v1.2.3
37
+ $ git push upstream HEAD:main
52
38
$ git push upstream v1.2.3
53
39
54
40
4. Pushing the tag will start a workflow to create a draft release on GitHub.
55
41
You can `follow the progress of the workflow on GitHub
56
42
<https://github.com/beeware/rubicon-objc/actions?query=workflow%3A%22Create+Release%22> `__;
57
43
once the workflow completes, there should be a new `draft release
58
- <https://github.com/beeware/rubicon-objc/releases> `__.
59
-
60
- 5. Edit the GitHub release. Add release notes (you can use the text generated
44
+ <https://github.com/beeware/rubicon-objc/releases> `__, and an entry on the
45
+ `Test PyPI server <https://test.pypi.org/project/rubicon-objc/ >`__.
46
+
47
+ Confirm that this action successfully completes. If it fails, there's a
48
+ couple of possible causes:
49
+
50
+ a. The final upload to Test PyPI failed. Test PyPI is not have the same
51
+ service monitoring as PyPI-proper, so it sometimes has problems. However,
52
+ it's also not critical to the release process; if this step fails, you can
53
+ perform Step 6 by manually downloading the "packages" artifact from the
54
+ GitHub workflow instead.
55
+ b. Something else fails in the build process. If the problem can be fixed
56
+ without a code change to the Rubicon-ObjC repository (e.g., a transient
57
+ problem with build machines not being available), you can re-run the
58
+ action that failed through the Github Actions GUI. If the fix requires a
59
+ code change, delete the old tag, make the code change, and re-tag the
60
+ release.
61
+
62
+ 5. Create a clean virtual environment, install the new release from Test PyPI, and
63
+ perform any pre-release testing that may be appropriate::
64
+
65
+ $ python3 -m venv testvenv
66
+ $ . ./testvenv/bin/activate
67
+ (testvenv) $ pip install --extra-index-url https://test.pypi.org/simple/ rubicon-objc==1.2.3
68
+ (testvenv) $ python -c "from rubicon.objc import __version__; print(__version__)"
69
+ 1.2.3
70
+ (testvenv) $ ... any other manual checks you want to perform ...
71
+
72
+ 6. Log into ReadTheDocs, visit the `Versions tab
73
+ <https://readthedocs.org/projects/rubicon-objc/versions/> `__, and activate the
74
+ new version. Ensure that the build completes; if there's a problem, you
75
+ may need to correct the build configuration, roll back and re-tag the release.
76
+
77
+ 7. Edit the GitHub release. Add release notes (you can use the text generated
61
78
by towncrier). Check the pre-release checkbox (if necessary).
62
79
63
- 6 . Double check everything, then click Publish. This will trigger a
80
+ 8 . Double check everything, then click Publish. This will trigger a
64
81
`publication workflow on GitHub
65
82
<https://github.com/beeware/rubicon-objc/actions?query=workflow%3A%22Upload+Python+Package%22> `__.
66
83
0 commit comments