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: .github/maintainers_guide.md
+62-99Lines changed: 62 additions & 99 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,8 +11,8 @@ this project. If you use this package within your own software as is but don't p
11
11
We recommend using [pyenv](https://github.com/pyenv/pyenv) for Python runtime management. If you use macOS, follow the following steps:
12
12
13
13
```sh
14
-
$ brew update
15
-
$ brew install pyenv
14
+
brew update
15
+
brew install pyenv
16
16
```
17
17
18
18
Install necessary Python runtimes for development/testing. You can rely on GitHub Actions workflows for testing with various major versions. <https://github.com/slackapi/bolt-python/tree/main/.github/workflows>
@@ -35,8 +35,8 @@ $ pyenv rehash
35
35
Then, you can create a new Virtual Environment this way:
36
36
37
37
```sh
38
-
$ python -m venv env_3.8.5
39
-
$ source env_3.8.5/bin/activate
38
+
python -m venv env_3.8.5
39
+
source env_3.8.5/bin/activate
40
40
```
41
41
42
42
## Tasks
@@ -50,19 +50,19 @@ If you make some changes to this SDK, please write corresponding unit tests as m
50
50
If this is your first time to run tests, although it may take a bit long time, running the following script is the easiest.
51
51
52
52
```sh
53
-
$ ./scripts/install_all_and_run_tests.sh
53
+
./scripts/install_all_and_run_tests.sh
54
54
```
55
55
56
56
Once you installed all the required dependencies, you can use the following one.
See [Versioning](#versioning-and-tags) for correct version format.
185
-
186
-
4. Set the "Target" input to the feature branch with the development changes.
187
-
5. Name the release title after the version tag. It should match the updated
188
-
value from `slack_bolt/version.py`!
189
-
6. Make any adjustments to generated release notes to make sure they are
190
-
accessible and approachable and that an end-user with little context about
191
-
this project could still understand.
192
-
7. Select "Set as a pre-release"
193
-
8. Publish the release by clicking the "Publish release" button!
194
-
9. After a few minutes, the corresponding version will be available on
195
-
<https://pypi.org/project/slack-bolt>.
196
-
10. (Slack Internal) Communicate the release internally
149
+
1. Create the commit for the release
150
+
1. In `slack_bolt/version.py` bump the version number in adherence to [Semantic Versioning](http://semver.org/) and [Developmental Release](https://peps.python.org/pep-0440/#developmental-releases).
151
+
- Example: if the current version is `1.2.3`, a proper development bump would be `1.2.4.dev0`
152
+
- `.dev` will indicate to pip that this is a [Development Release](https://peps.python.org/pep-0440/#developmental-releases)
153
+
- Note that the `dev` version can be bumped in development releases: `1.2.4.dev0` ->`1.2.4.dev1`
154
+
2. Build the docs with `./scripts/generate_api_docs.sh`.
155
+
3. Commit with a message including the new version number. For example `1.2.4.dev0`& push the commit to a branch where the development release will live (create it if it does not exist)
156
+
1. `git checkout -b future-release`
157
+
2. `git commit -m 'version 1.2.4.dev0'`
158
+
3. `git push -u origin future-release`
159
+
2. Create a new GitHub Release
160
+
1. Navigate to the [Releases page](https://github.com/slackapi/bolt-python/releases).
161
+
2. Click the "Draft a new release" button.
162
+
3. Set the "Target" to the feature branch with the development changes.
163
+
4. Click "Tag: Select tag"
164
+
5. Input a new tag name manually. The tag name must match the version in`slack_bolt/version.py` prefixed with "v" (e.g., if version is `1.2.4.dev0`, enter `v1.2.4.dev0`)
165
+
6. Click the "Create a new tag" button. This won't create your tag immediately.
166
+
7. Click the "Generate release notes" button.
167
+
8. The release name should match the tag name!
168
+
9. Edit the resulting notes to ensure they have decent messaging that is understandable by non-contributors, but each commit should still have its own line.
169
+
10. Set this release as a pre-release.
170
+
11. Publish the release by clicking the "Publish release" button!
171
+
3. Navigate to the [release workflow run](https://github.com/slackapi/bolt-python/actions/workflows/pypi-release.yml). You will need to approve the deployment!
172
+
4. After a few minutes, the corresponding version will be available on <https://pypi.org/project/slack-bolt>.
173
+
5. (Slack Internal) Communicate the release internally
197
174
198
175
#### Production Deployment
199
176
200
-
Deploying a new version of this library to Pypi is triggered by publishing a Github Release.
177
+
Deploying a new version of this library to PyPI is triggered by publishing a GitHub Release.
201
178
Before creating a new release, ensure that everything on the `main` branch since
202
-
the last tag is in a releasable state! At a minimum,
203
-
[run the tests](#run-all-the-unit-tests).
179
+
the last tag is in a releasable state! At a minimum, [run the tests](#run-all-the-unit-tests).
- Build the docs with `./scripts/generate_api_docs.sh`.
209
-
- Commit with a message including the new version number. For example `1.2.3`
210
-
& Push the commit to a branch and create a PR to sanity check.
211
-
- `git checkout -b 1.2.3-release`
212
-
- `git commit -m 'chore(release): tag version 1.2.3'`
213
-
- `git push {your-fork} 1.2.3-release`
214
-
- Add relevant labels to the PR and add the PR to a GitHub Milestone.
215
-
- Merge in release PR after getting an approval from at least one maintainer.
216
-
2. Create a new GitHub Release from the
217
-
[Releases page](https://github.com/slackapi/bolt-python/releases) by
218
-
clicking the "Draft a new release" button.
219
-
3. Input the version manually into the "Choose a tag" input. You must use the
220
-
same version found in`slack_bolt/version.py`
221
-
222
-
- After you input the version, click the "Create a new tag: x.x.x on publish"
223
-
button. This won't create your tag immediately.
224
-
- Click the "Auto-generate release notes" button. This will pull in changes
225
-
that will be included in your release.
226
-
- Edit the resulting notes to ensure they have decent messaging that are
227
-
understandable by non-contributors, but each commit should still have it's
228
-
own line.
229
-
- Ensure that this version adheres to
230
-
[semantic versioning](http://semver.org/). See
231
-
[Versioning](#versioning-and-tags) for correct version format.
232
-
233
-
4. Set the "Target" input to the "main" branch.
234
-
5. Name the release title after the version tag. It should match the updated
235
-
value from `slack_bolt/version.py`!
236
-
6. Make any adjustments to generated release notes to make sure they are
237
-
accessible and approachable and that an end-user with little context about
238
-
this project could still understand.
239
-
7. Publish the release by clicking the "Publish release" button!
240
-
8. After a few minutes, the corresponding version will be available on
241
-
<https://pypi.org/project/slack-bolt/>.
242
-
9. Close the current GitHub Milestone and create one for the next minor version.
243
-
10. (Slack Internal) Communicate the release internally
182
+
1. In `slack_bolt/version.py` bump the version number in adherence to [Semantic Versioning](http://semver.org/) and the [Versioning](#versioning-and-tags) section.
183
+
2. Build the docs with `./scripts/generate_api_docs.sh`.
184
+
3. Commit with a message including the new version number. For example `1.2.3` & push the commit to a branch and create a PR to sanity check.
185
+
1. `git checkout -b 1.2.3-release`
186
+
2. `git commit -m 'chore(release): tag version 1.2.3'`
187
+
3. `git push -u origin 1.2.3-release`
188
+
4. Add relevant labels to the PR and add the PR to a GitHub Milestone.
189
+
5. Merge in release PR after getting an approval from at least one maintainer.
190
+
2. Create a new GitHub Release
191
+
1. Navigate to the [Releases page](https://github.com/slackapi/bolt-python/releases).
192
+
2. Click the "Draft a new release" button.
193
+
3. Set the "Target" to the `main` branch.
194
+
4. Click "Tag: Select tag"
195
+
5. Input a new tag name manually. The tag name must match the version in `slack_bolt/version.py` prefixed with "v" (e.g., if version is `1.2.3`, enter `v1.2.3`)
196
+
6. Click the "Create a new tag" button. This won't create your tag immediately.
197
+
7. Click the "Generate release notes" button.
198
+
8. The release name should match the tag name!
199
+
9. Edit the resulting notes to ensure they have decent messaging that is understandable by non-contributors, but each commit should still have its own line.
200
+
10. Include a link to the current GitHub Milestone.
201
+
11. Ensure the "latest release" checkbox is checked to mark this as the latest stable release.
202
+
12. Publish the release by clicking the "Publish release" button!
203
+
3. Navigate to the [release workflow run](https://github.com/slackapi/bolt-python/actions/workflows/pypi-release.yml). You will need to approve the deployment!
204
+
4. After a few minutes, the corresponding version will be available on <https://pypi.org/project/slack-bolt/>.
205
+
5. Close the current GitHub Milestone and create one for the next patch version.
206
+
6. (Slack Internal) Communicate the release internally
244
207
- Include a link to the GitHub release
245
-
11. (Slack Internal) Tweet by @SlackAPI
208
+
7. (Slack Internal) Tweet by @SlackAPI
246
209
- Not necessary for patch updates, might be needed for minor updates,
247
210
definitely needed for major updates. Include a link to the GitHub release
248
211
249
212
## Workflow
250
213
251
214
### Versioning and Tags
252
215
253
-
This project uses semantic versioning, expressed through the numbering scheme of
216
+
This project uses [Semantic Versioning](http://semver.org/), expressed through the numbering scheme of
0 commit comments