You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/source/get_started/making_release_from_releaser.md
+31-2Lines changed: 31 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -49,9 +49,38 @@ already uses Jupyter Releaser.
49
49
50
50
</details>
51
51
52
-
- If the repo generates npm release(s), add access token for [npm](https://docs.npmjs.com/creating-and-viewing-access-tokens), saved as `NPM_TOKEN` in "Secrets".
52
+
- If the repo generates npm release(s), set up npm:
53
53
54
-
> If you want to set _provenance_ on your package, you need to ensure the publish release job as `permissions`: `id-token : write` (see the [documentation](https://docs.npmjs.com/generating-provenance-statements#publishing-packages-with-provenance-via-github-actions)).
- npm Trusted Publishers is supported with npm >= 11.5.1
57
+
- Ensure the publish release job has `permissions`: `id-token: write` (see the [documentation](https://docs.npmjs.com/generating-provenance-statements))
58
+
- Set up the Node.js version in your workflow using one of these approaches:
59
+
60
+
Using the `base-setup` action from `jupyterlab/maintainer-tools`:
- Create an access token for [npm](https://docs.npmjs.com/creating-and-viewing-access-tokens), saved as `NPM_TOKEN` in "Secrets"
81
+
- If you want to set _provenance_ on your package, you need to ensure the publish release job has `permissions`: `id-token: write`(see the [documentation](https://docs.npmjs.com/generating-provenance-statements#publishing-packages-with-provenance-via-github-actions))
Copy file name to clipboardExpand all lines: docs/source/how_to_guides/convert_repo_from_releaser.md
+39-8Lines changed: 39 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ See checklist below for details:
10
10
- Bump version configuration (if using Python), for example [tbump](https://github.com/dmerejkowsky/tbump)
11
11
-[Access token](https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token) with access to target GitHub repo to run GitHub Actions.
12
12
- Access token for the [PyPI registry](https://packaging.python.org/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/#saving-credentials-on-github)
13
-
- If needed, access token for [npm](https://docs.npmjs.com/creating-and-viewing-access-tokens).
13
+
- If publishing to npm, we recommend using [npm Trusted Publishers](https://docs.npmjs.com/trusted-publishers) (requires npm >= 11.5.1, available via Node.js >= 24). Otherwise, create an access token for [npm](https://docs.npmjs.com/creating-and-viewing-access-tokens).
14
14
15
15
## Checklist for Adoption
16
16
@@ -19,9 +19,9 @@ A. Prep the `jupyter_releaser` fork:
19
19
-[ ] Clone this repository onto your GitHub user account.
20
20
21
21
-[ ] Add a GitHub [personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token) with access to target GitHub repo to run
22
-
GitHub Actions, saved as `ADMIN_GITHUB_TOKEN` in the
The token will need "public_repo", and "repo:status" permissions.
25
25
26
26
-[ ] Set up PyPI:
27
27
@@ -54,9 +54,40 @@ A. Prep the `jupyter_releaser` fork:
54
54
55
55
</details>
56
56
57
-
-[ ]If needed, add access token for [npm](https://docs.npmjs.com/creating-and-viewing-access-tokens), saved as `NPM_TOKEN`.
57
+
-[ ]Set up npm (if publishing to npm):
58
58
59
-
> If you want to set _provenance_ on your package, you need to ensure the publish release job as `permissions`: `id-token : write` (see the [documentation](https://docs.npmjs.com/generating-provenance-statements#publishing-packages-with-provenance-via-github-actions)).
- npm Trusted Publishers is supported with npm >= 11.5.1
62
+
- Ensure the publish release job has `permissions`: `id-token: write` (see the [documentation](https://docs.npmjs.com/generating-provenance-statements))
63
+
- Set up the Node.js version in your workflow using one of these approaches:
64
+
65
+
Using the `base-setup` action from `jupyterlab/maintainer-tools`:
- Create an access token for [npm](https://docs.npmjs.com/creating-and-viewing-access-tokens), saved as `NPM_TOKEN`
88
+
- If you want to set _provenance_ on your package, you need to ensure the publish release job has `permissions`: `id-token: write`(see the [documentation](https://docs.npmjs.com/generating-provenance-statements#publishing-packages-with-provenance-via-github-actions))
89
+
90
+
</details>
60
91
61
92
B. Prep target repository:
62
93
@@ -66,7 +97,7 @@ B. Prep target repository:
66
97
- Note that [directives](https://myst-parser.readthedocs.io/en/latest/using/syntax.html#syntax-directives) can still be used
67
98
- [ ] Add HTML start and end comment markers to Changelog file - see example in [CHANGELOG.md](https://github.com/jupyter-server/jupyter_releaser/blob/main/CHANGELOG.md) (view in raw mode)
68
99
- [ ] We recommend using [hatch](https://hatch.pypa.io/latest/) for your
69
-
build system and for version handling.
100
+
build system and for version handling.
70
101
- If previously providing `version_info` like `version_info = (1, 7, 0, '.dev', '0')`, use a pattern like the one below in your version file:
71
102
72
103
```python
@@ -111,7 +142,7 @@ version_info = tuple(parts)
111
142
```
112
143
113
144
- [ ] Add a workflow that uses the [`enforce-label`](https://github.com/jupyterlab/maintainer-tools#enforce-labels) action from `jupyterlab/maintainer-tools` to ensure that all PRs have on of the triage labels used to
114
-
categorize the changelog.
145
+
categorize the changelog.
115
146
116
147
- [ ] Update or add `RELEASE.md` that describes the onboarding and release process, e.g. [jupyter_server](https://github.com/jupyter-server/jupyter_server/blob/main/RELEASE.md).
Copy file name to clipboardExpand all lines: docs/source/how_to_guides/convert_repo_from_repo.md
+41-8Lines changed: 41 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -9,7 +9,7 @@ See checklist below for details:
9
9
- Markdown changelog
10
10
- Bump version configuration (if using Python), for example [hatch](https://hatch.pypa.io/latest/)
11
11
-[Add a trusted publisher](https://docs.pypi.org/trusted-publishers/adding-a-publisher/) to your PyPI project
12
-
- If needed, access token for [npm](https://docs.npmjs.com/creating-and-viewing-access-tokens).
12
+
- If publishing to npm, we recommend using [npm Trusted Publishers](https://docs.npmjs.com/trusted-publishers) (requires npm >= 11.5.1, available via Node.js >= 24). Otherwise, create an access token for [npm](https://docs.npmjs.com/creating-and-viewing-access-tokens).
13
13
14
14
## Checklist for Adoption
15
15
@@ -25,7 +25,7 @@ See checklist below for details:
25
25
- Store the `APP_ID` and the private key in a secure location (Jupyter Vault if using a Jupyter Org)
26
26
27
27
-[ ] Create a "release" [environment](https://docs.github.com/en/actions/deployment/targeting-different-environments/using-environments-for-deployment) on your repository and add an `APP_ID` Environment Variable and `APP_PRIVATE_KEY` secret.
28
-
The environment should be enabled for ["Protected branches only"](https://docs.github.com/en/actions/deployment/targeting-different-environments/using-environments-for-deployment#deployment-branches-and-tags).
28
+
The environment should be enabled for ["Protected branches only"](https://docs.github.com/en/actions/deployment/targeting-different-environments/using-environments-for-deployment#deployment-branches-and-tags).
29
29
30
30
-[ ] Configure [Rulesets](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/about-rulesets) for the repository
31
31
@@ -38,7 +38,7 @@ See checklist below for details:
38
38
- Allow the GitHub App to bypass protections
39
39
40
40
-[ ] Copy `prep-release.yml` and `publish-release.yml` (or only `full-release.yml`) from the
41
-
[example-workflows](https://github.com/jupyter-server/jupyter_releaser/tree/main/example-workflows) folder in this repository.
41
+
[example-workflows](https://github.com/jupyter-server/jupyter_releaser/tree/main/example-workflows) folder in this repository.
42
42
43
43
-[ ] Set up PyPI:
44
44
@@ -47,8 +47,41 @@ See checklist below for details:
47
47
_environment_ should be `release` (the name of the GitHub environment).
48
48
- Ensure the publish release job as `permissions`: `id-token : write` (see the [documentation](https://docs.pypi.org/trusted-publishers/using-a-publisher/))
49
49
50
-
-[ ] If needed, add access token for [npm](https://docs.npmjs.com/creating-and-viewing-access-tokens), saved as `NPM_TOKEN`. Again this should
51
-
be created using a machine account that only has publish access.
- npm Trusted Publishers is supported with npm >= 11.5.1
55
+
- Ensure the publish release job has `permissions`: `id-token: write` (see the [documentation](https://docs.npmjs.com/generating-provenance-statements))
56
+
- Set up the Node.js version in your workflow using one of these approaches:
57
+
58
+
Using the `base-setup` action from `jupyterlab/maintainer-tools`:
- Create an access token for [npm](https://docs.npmjs.com/creating-and-viewing-access-tokens), saved as `NPM_TOKEN`
81
+
- This should be created using a machine account that only has publish access
82
+
- If you want to set _provenance_ on your package, you need to ensure the publish release job has `permissions`: `id-token: write`(see the [documentation](https://docs.npmjs.com/generating-provenance-statements#publishing-packages-with-provenance-via-github-actions))
83
+
84
+
</details>
52
85
53
86
- [ ] Ensure that only trusted users with 2FA have admin access to the repository, since they will be able to trigger releases.
54
87
@@ -71,7 +104,7 @@ See checklist below for details:
71
104
```
72
105
73
106
- [ ] We recommend using [hatch](https://hatch.pypa.io/latest/) for your
74
-
build system and for version handling.
107
+
build system and for version handling.
75
108
- If previously providing `version_info` like `version_info = (1, 7, 0, '.dev', '0')`,
76
109
use a pattern like the one below in your version file:
77
110
@@ -119,7 +152,7 @@ version_info = tuple(parts)
119
152
```
120
153
121
154
- [ ] Add a workflow that uses the [`enforce-label`](https://github.com/jupyterlab/maintainer-tools#enforce-labels) action
122
-
from `jupyterlab/maintainer-tools` to ensure that all PRs have on of the triage labels used to categorize the changelog.
155
+
from `jupyterlab/maintainer-tools` to ensure that all PRs have on of the triage labels used to categorize the changelog.
123
156
124
157
```yaml
125
158
name: Enforce PR label
@@ -149,7 +182,7 @@ jobs:
149
182
- [ ] Try out the `Prep Release` and `Publish Release` process against a fork of the target repo first so you don't accidentally push tags and GitHub releases to the source repository. Set the `TWINE_REPOSITORY_URL` environment variable to `https://test.pypi.org/legacy/` in the "Finalize Release" action part of the workflow
150
183
151
184
- [ ] Try the `Publish Release` process using a prerelease version on the main
Copy file name to clipboardExpand all lines: docs/source/reference/theory.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,7 @@ This project should help maintainers reduce toil and save time in the release pr
17
17
18
18
We strive to use the most secure release practices possible, reflected in the `Checklist for Adoption`
19
19
and the example workflows.
20
-
This includes using PyPI Trusted Publishing, using GitHub Environments, encouraging the use of Rulesets and GitHub Apps with limited bypass capability, and provenance data for npm.
20
+
This includes using PyPI Trusted Publishing, npm Trusted Publishers (with npm >= 11.5.1), using GitHub Environments, encouraging the use of Rulesets and GitHub Apps with limited bypass capability, and provenance data for npm.
21
21
In addition, there is an automatic check for whether the user who triggered the action is an admin.
0 commit comments