22
33## Automated Releases with ` jupyter_releaser `
44
5- The recommended way to make a release is to use
6- [ ` jupyter_releaser ` ] ( https://jupyter-releaser.readthedocs.io/en/latest/get_started/making_release_from_repo.html )
7- in GitHub Actions.
8- Follow the linked instructions.
5+ We use [ ` jupyter_releaser ` ] ( https://jupyter-releaser.readthedocs.io/en/latest/ ) to
6+ create our releases in GitHub Actions.
7+ This document is a quick reference that will work for most releases.
8+ For full detailed instructions, see the
9+ [ ` jupyter_releaser ` "Making your first release" document] ( https://jupyter-releaser.readthedocs.io/en/latest/get_started/making_release_from_repo.html ) .
910
11+ :::{important}
1012** This project uses [ Semantic Versioning] ( https://semver.org ) ** .
13+ :::
14+
15+ ## Prerequisites
16+
17+ - To do the following steps, you must have "admin" privileges on the repository.
18+
19+ ## Step 1a: Prep release
20+
21+ ** This step will bump versions, update the changelog, and create a "draft" release in
22+ GitHub.**
23+
24+ - From the [ JupyterGIS actions menu] ( https://github.com/geojupyter/jupytergis/actions ) ,
25+ select "Step 1: Prep Release" action from the left pane.
26+ - On the right, click "Run workflow". This will present a menu you need to fill out.
27+ - The only thing you normally need to input here is the "new version specifier".
28+ ** The default value is ` next ` , but we recommend always specifying a numeric specifier, e.g. ` 0.3.0 ` ** .
29+
30+ :::{danger}
31+ ** Specifying a version part (e.g. ` minor ` or ` patch ` ) for "New Version Specifier" will
32+ cause Step 2 to fail.**
33+
34+ Read below for more important information about the version specifier.
35+ :::
36+
37+ ### Version specifier
38+
39+ Ensure you understand the [ Semantic Versioning] ( https://semver.org ) version part
40+ definitions ("major", "minor", "patch") before selecting a version.
1141
1242:::{important}
13- Because this project is in early development, we ** do not bump the major version number** .
14- Most changes are minor version bumps, even breaking changes.
15- See [ the SemVer FAQ] ( https://semver.org/#how-should-i-deal-with-revisions-in-the-0yz-initial-development-phase ) for more.
43+ Because this project is currently in early development (pre-1.0), we ** do not bump the
44+ major version number** .
45+
46+ This means that ** even breaking changes are minor version bumps** .
47+
48+ See [ the SemVer FAQ] ( https://semver.org/#how-should-i-deal-with-revisions-in-the-0yz-initial-development-phase ) for more details.
1649:::
1750
18- ### Specifying a version spec
51+ ## Step 1b: Review changelog
1952
20- When prompted for a "New Version Specifier", the default value is ` next ` .
21- This will bump the packages as follows:
53+ ** This step will make the release notes more readable for end-users.**
2254
23- - ` 0.1.0a0 ` -> ` 0.1.0a1 `
24- - ` 0.1.0b7 ` -> ` 0.1.0b8 `
25- - ` 0.1.0 ` -> ` 0.1.1 `
55+ - Visit the new [ GitHub "draft" release] ( https://github.com/geojupyter/jupytergis/releases ) created in Step 1a.
56+ - Edit the release text to fix any typos and make other edits for end-user
57+ accessibility.
58+ - Remove any bot-created PRs, for example pre-commit hook updates or dependabot PRs.
59+ - Remove any bots from the contributor list.
60+ - Edit text for readability by end-users where appropriate.
61+ - ** Click "Save draft" to save your changes** .
2662
27- This is often ** not** what we want.
28- To bump to another version, you can specify the desired version directly.
29- For example:
63+ :::{danger}
64+ ** Do not click "Publish a release" in the GitHub UI** .
65+ That will be done automatically in Step 2.
66+ :::
3067
31- - ` 0.1.0b8 `
32- - ` 0.4.0 `
33- - ` 1.0.0 `
34- - ` 1.2.0rc0 `
68+ ## Step 2: Publish a release
3569
36- You can also specify a version part, e.g.:
70+ - From the [ JupyterGIS actions menu] ( https://github.com/geojupyter/jupytergis/actions ) ,
71+ select "Step 2: Publish Release" action from the left pane.
72+ - On the right, click "Run workflow". This will present a menu, but you can leave it
73+ blank.
3774
38- - ` patch `
39- - Would bump ` 0.3.0 ` -> ` 0.3.1 `
40- - ` minor `
41- - Would bump ` 0.3.0 ` -> ` 0.4.0 `
42- - ` major `
43- - Would bump ` 0.3.0 ` -> ` 1.0.0 `
75+ ## Step 3: Conda Forge release
4476
45- ## Conda Forge release
77+ :::{important}
78+ Before moving on to the Conda Forge release, ensure that JupyterGIS has released on PyPI.
79+ Check [ the PyPI JupyterGIS page] ( https://pypi.org/project/jupytergis/ ) to see if the new
80+ release is present.
81+ :::
4682
4783After the PyPI release, a Conda Forge bot will automatically open a PR on
4884[ our feedstock repo] ( https://github.com/conda-forge/jupytergis-packages-feedstock ) .
@@ -53,10 +89,19 @@ title `@conda-forge-admin, please update version`.
5389If you need maintainer access to handle releases, you may request access by opening an
5490issue with the title ` @conda-forge-admin, please add user @my-username ` .
5591
92+ :::{caution}
5693If the dependencies of JupyterGIS have changed, the Conda Forge recipe must also be
5794manually updated -- the bot will not do this for you, but it will likely warn you in a
5895comment that it must be done.
96+
5997Please update ` recipe/meta.yaml ` to reflect those changes.
98+ :::
99+
100+ Once the Conda Forge PR is merged, it may take up to an hour for it to be installable.
101+ Even after the new release is visible on
102+ [ the Anaconda.org JupyterGIS page] ( https://anaconda.org/conda-forge/jupytergis/files ) ,
103+ it may still take up to another hour until it's actually installable with ` micromamba `
104+ or similar tools.
60105
61106## Release assets
62107
@@ -75,3 +120,14 @@ JupyterGIS is published to:
75120
76121Release assets are also available on GitHub. For example for
77122[ ` 0.3.0 ` ] ( https://github.com/geojupyter/jupytergis/releases/tag/v0.3.0 ) :
123+
124+ ## Troubleshooting
125+
126+ ### "Step 2: Publish release" fails to build a package with a version like ` minor `
127+
128+ In Step 1, if you provide a version specifier like ` next ` , ` patch ` , or ` minor ` , Step 2
129+ will fail.
130+ Please specify a numeric version specifier like ` 0.3.0 ` .
131+
132+ ** If you need to re-run Step 1, delete the draft release it created first** , then start
133+ over.
0 commit comments