Skip to content

Commit cdeeb73

Browse files
authored
Make react-native-bot print the pick criterias on every new pick (#730)
1 parent 85a79fc commit cdeeb73

File tree

2 files changed

+83
-0
lines changed

2 files changed

+83
-0
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
Thank you for opening a new pick-request for React Native.
2+
Those are the criterias we follow when accepting/rejecting a pick request ([source](https://github.com/reactwg/react-native-releases/blob/main/docs/support.md)).
3+
4+
If your pick does not satisfy the criteria below, please close it as it will not be considered.
5+
6+
<details>
7+
<summary>✅ Which pick requests we accept</summary>
8+
9+
1. ✅ Fixes for regressions to core APIs. Examples:
10+
* A core component is behaving differently between version 0.X and 0.X-1
11+
* The TurboModule.getEnforcing function is throwing an assertion error which is not expected.
12+
2. ✅ Fixes to bugs in the core React Native’s experience. Examples:
13+
* Breakpoints in React Native DevTools not working correctly in the debugger
14+
* Fast Refresh not working as expected
15+
* Metro bundler not starting properly or ignoring the configuration file
16+
* Buttons that are not clickable
17+
3. ✅ Fixes to APIs used by 3P libraries and Out-of-tree platforms. Examples:
18+
* An API that is used by `react-native-macos` is not behaving as expected or regressing
19+
4. ✅ Bump of patch version of dependencies. Example:
20+
* Bump Gradle from 8.11.0 to 8.11.1
21+
5. ✅ Fixes for Low/High Security Vulnerability. Example:
22+
* Bump Gradle from 8.11.0 to 8.12.0 if there is a security vulnerability in 8.11 and there is no version 8.11.x which would contain the same fix.
23+
6. ✅ Fixes and reverts of accidental breaking changes. Example:
24+
* Reverting or fix-forwarding a migration to Kotlin of a file (say `ReactRootView.java` ) if that is causing a breaking change for the whole React Native ecosystem.
25+
7. ✅ Performance improvements picks. Examples:
26+
* Fixing unnecessary rendering on FlatList.
27+
8. ✅ Any pick if the release is still in RC0 (after RC1 the previous listed criteria applies)
28+
</details>
29+
30+
<details>
31+
<summary>❌ Which pick requests we don’t accept</summary>
32+
33+
9. ❌ Any pick that will introduce a breaking change after RC1. Example:
34+
* A bugfix that contains a refactoring, resulting in changes to the public API of a class
35+
10. ❌ Any pick that introduces a new feature after RC1. Example:
36+
* A commit that introduces a new API or a specific feature for a component.
37+
11. ❌ Bump of major/minor version of dependencies. Example:
38+
* Bump Gradle from 8.11.0 to 8.12.0
39+
* Bump Gradle from 8.11.0 to 9.0.0
40+
12. ❌Bump of a dependency to a non stable/alpha/beta version. Example:
41+
* Bump Gradle from 8.11.0 to 8.11.1-beta.1
42+
13. ❌Any pick that introduces changes to the testing infrastructure of React Native after RC1. Examples:
43+
* Changes to the GitHub Actions workflows to optimize it, even if they’re on main.
44+
* Changes to the logic used to publish packages to NPM or Maven Central
45+
14. ❌ Pick composed by various commits that has several merge conflicts
46+
* If your pick is too complicated to apply on the release branch, we’re going to reject it.
47+
15. ❌ Any other non-critical improvement that landed on main.
48+
* In general those will ship in the following version unless they fit in one of the criteria above
49+
16. ❌ Any other pick which is considered “small enough” to make it into a release.
50+
* If your pick is a one liner but is a ‘nice to have’, we won’t be picking it, as it has the risk of destabilizing the release and further delaying the release.
51+
</details>
52+
53+
<details>
54+
<summary>ℹ️ What makes for a good pick</summary>
55+
56+
In order for your pick to be considered, please do the following:
57+
58+
* ℹ️ Have a pick that contains only one commit from `main`, or only one PR against the release branch.
59+
* ℹ️ Have a clear explanation of why your pick should be considered, ideally referencing one of the criteria above.
60+
* ℹ️ Target only one minor version of React Native (e.g. [0.76]). If you want your pick to be applied to more versions, please open different picks.
61+
</details>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Respond on New Pick Request
2+
on:
3+
issues:
4+
types: [labeled]
5+
jobs:
6+
publish-message:
7+
runs-on: ubuntu-latest
8+
steps:
9+
- name: Publish Message
10+
uses: actions/github-script@v6
11+
if: github.event.label.name == 'Type Pick Request'
12+
env:
13+
GITHUB_TOKEN: ${{ secrets.REACT_NATIVE_BOT_REACT_WG_REACT_NATIVE_RELEASES_TOKEN }}
14+
MESSAGE: $(cat ./pick-request-hello-message.md)
15+
with:
16+
script: |
17+
github.issues.createComment({
18+
issue_number: github.context.issue.number,
19+
owner: github.context.repo.owner,
20+
repo: github.context.repo.repo,
21+
body: "${MESSAGE}"
22+
})

0 commit comments

Comments
 (0)