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
This directory contains [**Changesets**](https://github.com/changesets/changesets) which are markdown files that describe package changes for the next release.
4
+
5
+
For guidance on when and how to add changesets, checkout the [Maintainer's Guide](../.github/maintainers_guide.md#changesets).
Copy file name to clipboardExpand all lines: .github/maintainers_guide.md
+95-37Lines changed: 95 additions & 37 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -18,31 +18,88 @@ Information on setting up and configuring mocked events can be found in [`.githu
18
18
19
19
### Testing
20
20
21
-
When testing locally, ensure at least linting and unit tests pass by running `npm test`.
22
-
Additionally, sending a PR is highly recommended with every change as there are several GitHub
23
-
Actions jobs that execute what are effectively integration tests for this GitHub Action.
24
-
25
-
#### Checks on PRs
26
-
27
-
Actions that run the integration tests on PRs from a fork will require approval before running.
28
-
These checks use stored secrets so the changes should be reviewed before approving the workflow to
29
-
avoid accidently leaking tokens!
30
-
31
-
### Releasing
32
-
33
-
* Check the status of this project's GitHub Milestone to be released for issues that should be shipped with the release.
34
-
- If all issues have been closed, continue with the release.
35
-
- If issues are still open, discuss with the team about whether the open issues should be moved to a future release or if the release should be held off until the issues are resolved.
36
-
- Take a look at all issues under the Milestone to make sure that the type of issues included aligns with the Milestone name based on [semantic versioning](https://semver.org/). If the issues do not align with the naming of the Milestone (ex: if the issues are all bug fixes, but the Milestone is labeled as a minor release), then you can tweak the Milestone name to reflect the correct versioning.
37
-
* Update the version in `package.json`.
38
-
* Update all references to versions in the README and in the workflow files under `example-workflows/` to refer to the latest release.
39
-
* Run all tests using `npm test` to make sure the tests pass.
40
-
* Commit the changes on your `main` branch.
41
-
* Create a git tag for the new version. Should be in the format `v1.4.0`. `git tag v1.4.0`.
42
-
* Push changes up to GitHub `git push origin main --tags`.
43
-
* Create a GitHub Release based on the tag you just pushed up - this will trigger the publishing
44
-
GitHub workflow.
45
-
* Once released, make sure to close the relevant GitHub Milestone for the version you released.
21
+
Expected behaviors are confirmed with both unit tests and integration tests. Our unit tests run fast without secrets, while integration tests use webhooks and tokens for sending data to Slack across various techniques.
22
+
23
+
#### Unit tests
24
+
25
+
Run the following scripts to confirm tests pass before opening a PR:
26
+
27
+
```sh
28
+
$ npm test# Unit tests
29
+
$ npm run lint # Lint and format
30
+
$ npm run check # Typecheck
31
+
```
32
+
33
+
The `test.yml` workflow runs these scripts for pull requests and changes to the `main` branch.
34
+
35
+
#### Integration tests
36
+
37
+
The `integration.yml` workflow uses this action in interactions with Slack using secrets saved to the `staging` environment.
38
+
39
+
A PR from a forked branch will fail this workflow until a maintainer reviews the code and [dispatches](https://github.com/slackapi/slack-github-action/actions/workflows/integration.yml) a test run that points to the most recent commit using the following format:
40
+
41
+
```
42
+
pull/<NUMBER>/head
43
+
```
44
+
45
+
### Documentation
46
+
47
+
This repo contains two types of docs files:
48
+
49
+
- markdown files
50
+
- sidebar.json
51
+
52
+
The private repo containing the docs.slack.dev site pulls these in at build time.
53
+
54
+
Maintainers need to use the `run workflow` button associated with the `deploy` workflow in that private repo to update the docs with changes from here.
55
+
56
+
#### Markdown Files
57
+
58
+
The markdown files here are secretly mdx files in disguise.
59
+
60
+
If you'd like to add images to pages, add the image files to the same folder the md file is in.
61
+
62
+
We appreciate markdown edits from anyone!!!
63
+
64
+
#### Sidebar
65
+
66
+
`_sidebar.json` sets the slack github action docs sidebar
67
+
68
+
sidebar values take the form of "slack-github-action/path-within-docs/"
for info on syntax see https://docusaurus.io/docs/sidebar
75
+
76
+
this file is copied into slackapi.github.io/slack-github-action/sidebar.js it is then called in slackapi.github.io/sidebars.js
77
+
78
+
### Changesets
79
+
80
+
This project uses [Changesets](https://github.com/changesets/changesets) to track changes and automate releases.
81
+
82
+
Each changeset describes a change to the package and its [semver](https://semver.org/) impact, and a new changeset should be added when updating the package with some change that affects consumers:
83
+
84
+
```sh
85
+
npm run changeset
86
+
```
87
+
88
+
Updates to documentation, tests, or CI might not require new entries.
89
+
90
+
When a PR containing changesets is merged to `main`, a different PR is opened or updated using [changesets/action](https://github.com/changesets/action) which consumes the pending changesets, bumps the package version, and updates the `CHANGELOG` in preparation to release.
91
+
92
+
### Releases
93
+
94
+
New versions are published when the release PR created from changesets is merged and the publish workflow is approved. Follow these steps to build confidence:
95
+
96
+
1.**Check GitHub Milestones**: Before merging the release PR please check the relevant [Milestones](https://github.com/slackapi/slack-github-action/milestones). If issues or pull requests are still open either decide to postpone the release or save those changes for a future update.
97
+
98
+
2.**Review the release PR**: Verify that the version bump matches expectations, `CHANGELOG` entries are clear, and CI checks pass.
99
+
100
+
3.**Merge and approve**: Merge the release PR, then approve the publish workflow to release the action. Update the [release](https://github.com/slackapi/slack-github-action/releases) to share to the [marketplace](https://github.com/marketplace/actions/the-slack-github-action).
101
+
102
+
4.**Update Milestones**: Close the relevant [Milestones](https://github.com/slackapi/slack-github-action/milestones) and rename these to match the released version. Open a new Milestone for the next version.
46
103
47
104
## Workflow
48
105
@@ -60,6 +117,8 @@ As a maintainer, the development you do will be almost entirely off of your fork
60
117
61
118
`main` is where active development occurs.
62
119
120
+
`release/vX.Y.Z` has the packaged distribution of a particular version based from the changes on `main`. This is created using a workflow when new releases are published.
121
+
63
122
When developing, branches should be created off of your fork and not directly off of this repository. If working on a long-running feature and in collaboration with others, a corresponding branch of the same name is permitted. This makes collaboration on a single branch possible, as contributors working on the same feature cannot push commits to others' open Pull Requests.
64
123
65
124
After a major version increment, there also may be maintenance branches created specifically for supporting older major versions.
@@ -68,18 +127,17 @@ After a major version increment, there also may be maintenance branches created
68
127
69
128
Labels are used to run issues through an organized workflow. Here are the basic definitions:
70
129
71
-
*`bug`: A confirmed bug report. A bug is considered confirmed when reproduction steps have been
72
-
documented and the issue has been reproduced.
73
-
*`enhancement`: A feature request for something this package might not already do.
74
-
*`docs`: An issue that is purely about documentation work.
75
-
*`tests`: An issue that is purely about testing work.
76
-
*`needs feedback`: An issue that may have claimed to be a bug but was not reproducible, or was otherwise missing some information.
77
-
*`discussion`: An issue that is purely meant to hold a discussion. Typically the maintainers are looking for feedback in this issues.
78
-
*`question`: An issue that is like a support request because the user's usage was not correct.
79
-
*`semver:major|minor|patch`: Metadata about how resolving this issue would affect the version number.
80
-
*`security`: An issue that has special consideration for security reasons.
81
-
*`good first contribution`: An issue that has a well-defined relatively-small scope, with clear expectations. It helps when the testing approach is also known.
82
-
*`duplicate`: An issue that is functionally the same as another issue. Apply this only if you've linked the other issue by number.
130
+
-`bug`: A confirmed bug report. A bug is considered confirmed when reproduction steps have been documented and the issue has been reproduced.
131
+
-`enhancement`: A feature request for something this package might not already do.
132
+
-`docs`: An issue that is purely about documentation work.
133
+
-`tests`: An issue that is purely about testing work.
134
+
-`needs feedback`: An issue that may have claimed to be a bug but was not reproducible, or was otherwise missing some information.
135
+
-`discussion`: An issue that is purely meant to hold a discussion. Typically the maintainers are looking for feedback in this issues.
136
+
-`question`: An issue that is like a support request because the user's usage was not correct.
137
+
-`semver:major|minor|patch`: Metadata about how resolving this issue would affect the version number.
138
+
-`security`: An issue that has special consideration for security reasons.
139
+
-`good first contribution`: An issue that has a well-defined relatively-small scope, with clear expectations. It helps when the testing approach is also known.
140
+
-`duplicate`: An issue that is functionally the same as another issue. Apply this only if you've linked the other issue by number.
83
141
84
142
**Triage** is the process of taking new issues that aren't yet "seen" and marking them with a basic
85
143
level of information with labels. An issue should have **one** of the following labels applied:
Copy file name to clipboardExpand all lines: .github/pull_request_template.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
Describe the goal of this PR. Mention any related Issue numbers.
4
4
5
-
### Requirements (place an `x` in each `[ ]`)
5
+
### Requirements <!-- Place an `x` in each `[ ]`-->
6
6
7
-
*[ ] I've read and understood the [Contributing Guidelines](https://github.com/slackapi/slack-github-action/blob/main/.github/contributing.md) and have done my best effort to follow them.
8
-
*[ ] I've read and agree to the [Code of Conduct](https://slackhq.github.io/code-of-conduct).
7
+
-[ ] I've read and understood the [Contributing Guidelines](https://github.com/slackapi/slack-github-action/blob/main/.github/contributing.md) and have done my best effort to follow them.
8
+
-[ ] I've read and agree to the [Code of Conduct](https://slackhq.github.io/code-of-conduct).
0 commit comments