Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/38634
To reduce the noise of the `check-for-reproducer` bot, this restricts the event
that trigger the bot to only the issue creation.
Changelog:
[Internal] [Changed] - Let check-for-reproducer run only on newly created issues
Reviewed By: cipolleschi
Differential Revision: D47792374
fbshipit-source-id: 738a9342899e234022029e94f43b0dccebc21819
Summary:
The bot message is split in a wrong way:
https://github.com/facebook/react-native/issues/38603#issuecomment-1648749441
I'm updating it to use `<br/><br/>` instead which renders correctly inside tables.
Changelog:
[Internal] [Changed] - Properly split the "Too Old Version of React Native" message
Reviewed By: NickGerleman
Differential Revision: D47764363
fbshipit-source-id: 7a80f03b4228a3f0c69d718b8eb60ecd4ac60a2b
Summary:
This PR fixes a bug where GitHub Actions bot didn't add a comment when "Needs: Repro" label was present in an issue.
When a maintainer adds the label manually the bot comments with "Missing Reproductible Example" as normally.
It seems like the problem occurred because of a difference in a sandbox repository and the proper facebook/react-native repo environment.
My sandbox that I used to test https://github.com/facebook/react-native/pull/38338 had an "bot" account with Personal Access Token setup to reply to issues. Turns out that bots using PAT have more permissions and can trigger one action from the other.
**The solution is to send the comment directly from the `checkForReproducer` action.** This won't collide with other actions but sadly will duplicate the sending logic into two actions.
This PR also makes the bot respect when a maintainer removes and adds a label by hand and won't alter the maintainer decision.
Related to ☂️https://github.com/facebook/react-native/issues/35591
## Changelog:
[INTERNAL] [FIXED] - Message
Pull Request resolved: https://github.com/facebook/react-native/pull/38531
Test Plan: ![image](https://github.com/facebook/react-native/assets/39658211/b956416f-9834-4c61-981f-fe6c17a5eec5)
Reviewed By: cipolleschi
Differential Revision: D47666922
Pulled By: cortinico
fbshipit-source-id: 4a6a471cb11c6ed9b48263d18bf8e283577a14bb
Summary:
*Auto-close* an issue when the version of React Native specified is **TOO OLD**.
Applies `Type: Too Old Version` label and closes such issues using `actOnLabel` workflow.
## Changelog:
[GENERAL] [ADDED] - Auto close issue if version is too old.
Pull Request resolved: https://github.com/facebook/react-native/pull/38041
Test Plan: - Should *auto-close* an issue with `Type: Too Old Version` label
Reviewed By: NickGerleman
Differential Revision: D47331471
Pulled By: cortinico
fbshipit-source-id: 516468299d6923ce72e073a3b7b8b8715d15d6e0
Summary:
It is generally recommended to use "===" instead of "==" when comparing two strings
Pull Request resolved: https://github.com/facebook/react-native/pull/37673
Test Plan:
## Changelog:
[Internal] [Changed] - use TripleEqual instead of doubleEqual when comparing two string
Reviewed By: cipolleschi
Differential Revision: D46434681
Pulled By: cortinico
fbshipit-source-id: 70522a28799699854d2a4ab814e34ce796082025
Summary:
This (`greet.yml`) action requires some _changes_ to "repo" settings which are _out of maintainers' controls_.
So, instead of wasting compute; let's just delete this action :(
🤗🌏
## Changelog:
[GENERAL] [REMOVED] - [Actions] Remove `greet.yml` action
Pull Request resolved: https://github.com/facebook/react-native/pull/37587
Test Plan: - Not needed.
Reviewed By: cortinico
Differential Revision: D46275607
Pulled By: cipolleschi
fbshipit-source-id: 80880568cbae1158006445e078e638e4e375cb73
Summary:
Currently we do _not_ greet; **"First Time Contributors"**.
It is important to greet every first time contributor keep the OSS community thriving. 😊
This PR; Adds a greet action `greet.yml` 🎉, which comments under First Time Contributors PRs, greeting them as well suggesting some basic steps/guidelines.
## Changelog:
[GENERAL] [ADDED] - [Actions] Add greet action 🎉
Pull Request resolved: https://github.com/facebook/react-native/pull/37499
Test Plan: - Should greet 1st time contributors
Reviewed By: cortinico
Differential Revision: D46142126
Pulled By: cipolleschi
fbshipit-source-id: 5a619a485409fda6fe895feffb736e878fb206ee
Summary:
I'm making sure we don't stale issues where the repro has been provided.
I'm also moving the bot to run every 10 minutes at 5AM so it will do a pass once overnight, rathern than running 4x during the day.
## Changelog:
[INTERNAL] - Do not stale issues with "Issue: Author Provided Repro"
Pull Request resolved: https://github.com/facebook/react-native/pull/37469
Test Plan: n/a
Reviewed By: cipolleschi
Differential Revision: D45953855
Pulled By: cortinico
fbshipit-source-id: 299aef0844ce1bc872e3156419adeff675ae2a68
Summary:
This PR does two things:
1. Improves the labeling workflow in cases where the user is on a supported version but a higher patch number is available. Now, the label name will be friendlier ('Newer Patch Available') and we will report the version they should consider upgrading to in the message body. Once this change is merged, I can also rename all existing versions of this label for consistency.
2. Moves the addDescriptiveLabels.js script to the workflow-scripts folder for consistency with the other workflow scripts.
## Changelog:
[INTERNAL] [CHANGED] - Enhancing issue triage workflow for patch versioning
Pull Request resolved: https://github.com/facebook/react-native/pull/37324
Test Plan: See some examples of the workflow run in my fork: https://github.com/SlyCaptainFlint/react-native/issues
Reviewed By: cipolleschi
Differential Revision: D45680812
Pulled By: NickGerleman
fbshipit-source-id: 7ab07fcf52fe372d2e449bb43d6618b1c98e9245
Summary:
I'm adding a reference to our official template in the Needs: Repro label response
## Changelog:
[INTERNAL] - Update actOnLabel to include the official reproducer
Pull Request resolved: https://github.com/facebook/react-native/pull/37023
Test Plan: n/a
Reviewed By: mdvacca
Differential Revision: D45183426
Pulled By: cortinico
fbshipit-source-id: cd97981eda49ff7123f6beb05b6eb64b4899ded0
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/36811
Editing frequently the `.github/workflow` folder makes harder to use the
`/rebase` command as it fails if there are edits to such folder in the middle
of a rebase.
I'm moving the .js files outside of that folder.
Changelog:
[Internal] [Changed] - Do not store scripts inside .github/workflows
Reviewed By: sshic
Differential Revision: D44705878
fbshipit-source-id: a8007d6c126dbda2a1ee9d8cb0397df5df43fd63
Summary:
Adding a new github workflow script, which will run as part of the existing triage job that is triggered when an issue is labeled with the "Needs: Triage" label (this typically happens automatically when the issue is created).
This script will add an extensive list of possible labels corresponding to APIs, components, and topics (see the code for the full list).
The motivation for this change is to replace the last bit of meaningful functionality performed by react-native-bot, which will allow us to decommission that bot in favor of using github workflows for all issue and PR automation.
## Changelog:
[INTERNAL] [CHANGED] - Updated API, topic, component labeling on issues to run from a GH workflow rather than an external bot action
Pull Request resolved: https://github.com/facebook/react-native/pull/36712
Test Plan:
For examples of issues being labeled by this new script, see the open issues here: https://github.com/SlyCaptainFlint/react-native/issues
I did not test every possible label, but I tested at least one from each category (API, component, topic), and a combination of one or two of each.
Reviewed By: cortinico, cipolleschi
Differential Revision: D44593658
Pulled By: SlyCaptainFlint
fbshipit-source-id: 93758d05a70d02bed76ab0b6149271e757e0a12f
Summary:
Recently, we changed the logic to verify the body of a PR so that it is more compatible internally and externally, in both ways. But we forgot to update the template, so right
now, all the created PR are incompatible with the internal PR checker.
The required change is to have `:` after the Changelog title.
For consistency, I added the `:` after ALL the titles.
## Changelog:
[Internal] - Changed the PR template to align it to the new rules
Pull Request resolved: https://github.com/facebook/react-native/pull/36705
Test Plan: No danger errors nor internal linter errors
Reviewed By: christophpurrer
Differential Revision: D44503519
Pulled By: cipolleschi
fbshipit-source-id: 43963c3cf774d19d6de8e86b18b684e76dd0fe87
Summary:
Tweaking stale bot to have labels that bypass the stale bot.
## Changelog
[INTERNAL] - Add labels to bypass stale bot
Pull Request resolved: https://github.com/facebook/react-native/pull/36365
Test Plan: n/a
Reviewed By: cipolleschi
Differential Revision: D43771191
Pulled By: cortinico
fbshipit-source-id: 55962a9fe4480e962f94cb0456501e09d88f00da
Summary:
I'm gating this workflow to run only upstream as I'm receiving notifications that it fails on my fork. We don't want to run this workflow on forks at all hence we can add a `if:` there.
## Changelog
[INTERNAL] - Do not attempt to comment on PRs when on forks
Pull Request resolved: https://github.com/facebook/react-native/pull/36316
Test Plan: If Github Actions UI is green, we're good to go
Reviewed By: cipolleschi
Differential Revision: D43657315
Pulled By: cortinico
fbshipit-source-id: 8fb260d142a43375bd9a3b10eac235550a6aecb0
Summary:
Adding automatic RN version checking github workflow, which will verify the version of RN listed on all new issues filed in the repository.
Additionally, this change refactors the existing labeler workflow to make it re-usable by the version check workflow. The change also creates a logical place to add future automatic detection checks, like auto-verification of repro, template, etc.
This is technically not new functionality, as the react-native-bot does this _sometimes_, but this should be a lot more reliable.
The logic for valid release checking follows what is listed in the documentation - valid versions are current and N-2 minors, with the highest available patches.
## Changelog
[INTERNAL] [FIXED] - Made the automated RN version checking workflow more reliable
Pull Request resolved: https://github.com/facebook/react-native/pull/36075
Test Plan:
I have verified a variety of different versions on issues here: https://github.com/SlyCaptainFlint/react-native/issues
I have also re-verified all the tags that were previously handled by the labeler workflow, since I have refactored it. Please take a look at both the open and closed issues in the linked repo for examples.
Reviewed By: cortinico
Differential Revision: D43089150
Pulled By: SlyCaptainFlint
fbshipit-source-id: 7da67f5cb2a4875f22e1f9e46d7ca07d43f3e135
Summary:
Our stale bot is at capacity and reaches quota, resulting in marking as stale 2/3 issues a day.
I'm increasing the frequency of the bot to 4 times a day.
## Changelog
Changelog:
[Internal] [Changed] - Stale issues more frequently (4 times a day)
Pull Request resolved: https://github.com/facebook/react-native/pull/36130
Test Plan: nothing to test
Reviewed By: cipolleschi
Differential Revision: D43207979
Pulled By: cortinico
fbshipit-source-id: 1de45315e724ddf9afdb9426eddc639875ba0b24
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/36093
The Test Docker Android job is flaky as sometimes fetching artifacts from remote
returns different hashes.
I'm moving the job to CircleCI (so it's faster) + I'm using the `buck_fetch.sh`
script we already have which has a retry logic.
Changelog:
[Internal] [Changed] - Move test-docker-android from GH Actions to CircleCI
Reviewed By: javache
Differential Revision: D43121477
fbshipit-source-id: 1df114fd3ad9445a4a5dc7834bf811c3476322cd
Summary:
Fix wording to make it clear that the issue / PR is marked stale because of inaction.
Changelog:
[Internal] - Fix wording that was meant to go in on D42531703 (474c0edafe)
Reviewed By: cortinico
Differential Revision: D42547980
fbshipit-source-id: 01e624ae66348d2528fa1f5bbbc2aacb24ddd865
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/35849
Users will provide issues or examples that use unsupported versions of React Native. Provide label to track and ask them to update example / issue to currently mainted version.
Changelog:
[Internal] - Support 'unsupported version' tag comment
Reviewed By: cortinico
Differential Revision: D42531703
fbshipit-source-id: 5577943a329e17147269b9e5a5da2b2c16a6ae3e
Summary:
This change adds a new action and workflow that will run whenever a commit is pushed that closes a PR via its message. When this happens, the corresponding PR will be labeled with "Merged" and a comment will be added with the name of the committer and the sha of the commit that resolved the PR.
This is not new functionality - it merely replaces a portion of the react-native-bot's functionality with a GitHub action.
## Changelog
[Internal] [Changed] - Moved close PR actions to a GitHub action
Pull Request resolved: https://github.com/facebook/react-native/pull/35500
Test Plan:
Tested the golden path here ("Merged" label and comment added): https://github.com/SlyCaptainFlint/react-native/pull/27
Tested the case where a PR already labeled with Merged was processed and no new comment was left on it (simulates the case where react-native-bot, which is still going to be running, got to the PR and processed it before the new GitHub action did): https://github.com/SlyCaptainFlint/react-native/pull/26
Reviewed By: cipolleschi
Differential Revision: D41567047
Pulled By: SlyCaptainFlint
fbshipit-source-id: 23745a17950b75c1a8f25f0b840c2172332c4cfa
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/35474
This cleans up our `on-issue-labeled` workflow and makes sure we use only github-scripts. So we don't need to checkout the code & run an external action.
Changelog:
[Internal] [Changed] - Move on-issue-labeled to use actions/github-script@v6
Reviewed By: cipolleschi
Differential Revision: D41522650
fbshipit-source-id: c93d10eddf5be2ca9f779389e8059633291c0138
Summary:
During the outage it become clear that we are not doing enough to communicate what the release support policy/window is. This is one of the tweaks I'm doing to help with that
## Changelog
<!-- Help reviewers and the release process by writing your own changelog entry. For an example, see:
https://reactnative.dev/contributing/changelogs-in-pull-requests
-->
[Internal] [Changed] - small tweaks to issue templates + clear mention of support window
Pull Request resolved: https://github.com/facebook/react-native/pull/35304
Test Plan: N/A
Reviewed By: christophpurrer
Differential Revision: D41183435
Pulled By: cipolleschi
fbshipit-source-id: 32519c52616fb1903507fad291200eb959d451b4
Summary:
Currently the autorebase feature doesn't work because it fails the `if` validation due to how we distribute permissions.
For now I'm making this action less restricted. We can tweak it if we notice abuse.
Config now is the same as https://github.com/cirrus-actions/rebase
## Changelog
[Internal] - Make autorebase less restrictive
Pull Request resolved: https://github.com/facebook/react-native/pull/34848
Test Plan: Nothing to test
Reviewed By: cipolleschi
Differential Revision: D40022304
Pulled By: cortinico
fbshipit-source-id: 74270b47c61267484c073706fa900f22b3569a94
Summary:
Some time ago, we moved the Expo domain over to `expo.dev` ([see this PR for example](c5e091a015)). This does the same thing here :)
## Changelog
<!-- Help reviewers and the release process by writing your own changelog entry. For an example, see:
https://reactnative.dev/contributing/changelogs-in-pull-requests
-->
Internal Changed - Update Expo domain to expo.dev
Pull Request resolved: https://github.com/facebook/react-native/pull/34799
Test Plan: Just a minor change, unrelated to React Native code.
Reviewed By: lunaleaps
Differential Revision: D39867749
Pulled By: lunaleaps
fbshipit-source-id: f6ad6350d991ffe1ef8310415e28ae49ed776afc
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/34713
Changelog: [Internal] - Fix up missing bots usage after we moved everything to packages/react-native-bots in 767f8e0249
Reviewed By: NickGerleman
Differential Revision: D39583230
fbshipit-source-id: 6cc6b7923e67139dc3c81dfe0c39005dde905248
Summary:
allow-large-files
When working on https://github.com/facebook/react-native/pull/34614, danger is failing because it doesn't share `node_modules` with the root directory where `typescript` is installed as we added it as a parser in our eslint config.
By setting `bots` as a yarn workspace, dependencies are all installed under the root `node_modules` folder and in local testing (detailed in test section) we no longer have the `typescript module not found` error. However, danger will continue to fail on https://github.com/facebook/react-native/pull/34614 as the `danger_pr` Github action runs from what's defined on `main`.
Once these changes land, I can rebase https://github.com/facebook/react-native/pull/34614 on it and danger's eslint should pass.
## Changelog
<!-- Help reviewers and the release process by writing your own changelog entry. For an example, see:
https://reactnative.dev/contributing/changelogs-in-pull-requests
-->
[Internal][Fixed] - Add `bots` directory as a yarn workspace and update `danger_pr` Github action
Pull Request resolved: https://github.com/facebook/react-native/pull/34652
Test Plan:
To verify this fix I had to run:
```
react-native $ yarn && cd bots
react-native/bots$ yarn run danger pr https://github.com/facebook/react-native/pull/34614
```
which resulted in
```
❯ yarn run danger pr https://github.com/facebook/react-native/pull/34614
yarn run v1.22.19
$ lunaleaps/react-native/node_modules/.bin/danger pr https://github.com/facebook/react-native/pull/34614
Starting Danger PR on facebook/react-native#34614
Danger: ✓ found only warnings, not failing the build
## Warnings
🔒 package.json - <i>Changes were made to package.json. This will require a manual import by a Facebook employee.</i>
✨ Done in 12.78s.
```
Verified this also on another PR:
```
yarn run danger pr https://github.com/facebook/react-native/pull/34650
```
Reviewed By: NickGerleman
Differential Revision: D39435286
Pulled By: lunaleaps
fbshipit-source-id: 8c82f49facf162f4fc0918e3abd95eb7e4ad1e37
Summary:
After https://github.com/facebook/react-native/issues/34370, Danger started failing because the `DANGER_GITHUB_API_TOKEN` was not properly set.
This PR fixes it.
## Changelog
[General] [Changed] - Set back the `DANGER_GITHUB_API_TOKEN`.
Pull Request resolved: https://github.com/facebook/react-native/pull/34375
Test Plan: Danger GitHub action is executed correctly.
Reviewed By: cortinico
Differential Revision: D38571718
Pulled By: cipolleschi
fbshipit-source-id: 51168098b4f910f6fefd2872f917e12daad1ec4c
Summary:
This is a nit. Did some cleanups on our Danger setup.
The most substantial work is:
- Moved over danger to run on `pull_request_target`. This allow us to re-use the Github Action access token without having to provide one.
- Fixed an issue with the `Pick Request` label which was not applied correctly.
- Removed the danger_id as we were not passing it correctly.
## Changelog
[Internal] - Let danger run on `pull_request_target`
Pull Request resolved: https://github.com/facebook/react-native/pull/34370
Test Plan: Tested locally with `yarn danger pr https://github.com/facebook/react-native/pull/34197`
Reviewed By: cipolleschi
Differential Revision: D38533144
Pulled By: cortinico
fbshipit-source-id: 178ce411eb956870563c4d51719ed4dae1f1536d
Summary:
This is a nit, but at least will help us reduce requests to rebase for PRs which maybe have a broken CI due to a stale base commit.
I've limited the scope to members and owners. A `/rebase` will trigger a rebase authored by Github Action bot.
We can play a bit around with it, and remove it if it doesn't really work well for us.
## Changelog
[Internal] - Setup Automatic Rebase given a /rebase comment
Pull Request resolved: https://github.com/facebook/react-native/pull/34369
Test Plan: Nothing to test here.
Reviewed By: cipolleschi
Differential Revision: D38509480
Pulled By: cortinico
fbshipit-source-id: 1df3927638b162d4a787c81372a835d583159498
Summary:
This PR runs eslint in PR using Danger.
## Changelog
[General] [Changed] - Run ESLint in CI
Pull Request resolved: https://github.com/facebook/react-native/pull/34305
Test Plan:
1. Add a JS lint error in the package/react-native-codegen package.
2. Observe the CI task post a message with the errors
3. Fix the errors
4. Observe the CI task report completion with no errors
Reviewed By: cortinico
Differential Revision: D38315268
Pulled By: cipolleschi
fbshipit-source-id: 9984402ee427dd62d47dd716f73c030e6d0f7b5e
Summary:
I just opened another PR and noticed the changelog page in the wiki redirected to the react native documentation.
## Changelog
<!-- Help reviewers and the release process by writing your own changelog entry. For an example, see:
https://github.com/facebook/react-native/wiki/Changelog
-->
[Internal] [Changed] - Update link to changelog documentation in PULL_REQUEST_TEMPLATE
Pull Request resolved: https://github.com/facebook/react-native/pull/34206
Reviewed By: NickGerleman
Differential Revision: D37920424
Pulled By: cortinico
fbshipit-source-id: f4e47172a13fe5b42c29e320d34816b490a14b6c
Summary:
Automatically create a GitHub Release draft when a new React Native release is created.
The GitHub Release will be created by the same Circle CI job that publishes the package to npm.
This job will also upload the built Hermes binaries to the GitHub release.
Changelog: [Internal]
Reviewed By: cipolleschi
Differential Revision: D36646696
fbshipit-source-id: 0a863dc4e3215fc95f7852f8dc43858cdd852aaa
Summary:
It seems that using `:` inside the `name` field of our Issue Template broke the parsing of them. I'm fixing it here.
## Changelog
[Internal] - Fix broken `ISSUE_TEMPLATE` due to extra `:`
Pull Request resolved: https://github.com/facebook/react-native/pull/33892
Test Plan:
Tested on:
https://github.com/cortinico/react-native/issues/new/choose
Reviewed By: f-meloni, cipolleschi
Differential Revision: D36596469
Pulled By: cortinico
fbshipit-source-id: 8009a88efc800622bad493a170b054972bb2147c
Summary:
Run Danger on all the PRs, not just on the forks, use fail or warning where is needed and make CircleCI fail if danger fails
## Changelog
<!-- Help reviewers and the release process by writing your own changelog entry. For an example, see:
https://github.com/facebook/react-native/wiki/Changelog
-->
[Internal] - Run Danger on all the PRs and use fail or warning where is needed.
Pull Request resolved: https://github.com/facebook/react-native/pull/33872
Test Plan: Run the change on CirlceCI
Reviewed By: cortinico
Differential Revision: D36516847
Pulled By: f-meloni
fbshipit-source-id: 2c956295a56cc8aa47df4c64f8ca0a211796c73c
Summary:
As the title says, let's make this field mandatory so we don't have to ask for
a repro over and over again.
Changelog:
[Internal] [Changed] - Make the reproducer mandatory in the issue template
Reviewed By: cipolleschi
Differential Revision: D36552021
fbshipit-source-id: ac6aa0c3b1583afe38b3fcf78c385e5bdfb5f6e2