Skip to content

Bump Metro minimum to 0.87.1 - #58506

Closed
robhogan wants to merge 1 commit into
mainfrom
robhogan/metro-0.87.1
Closed

robhogan wants to merge 1 commit into
mainfrom
robhogan/metro-0.87.1

Conversation

@robhogan

Copy link
Copy Markdown
Collaborator

Summary:

Bump minimum Metro version to 0.87.1, within the same semver range, to ensure upgraders get the same version as fresh projects would.

Mostly fixes, including a couple of Platform inlining corrections, and more comprehensive and readable TypeScript types. It also replaces the image-size dependency to clear CVE alerts.

Metro release notes: https://github.com/react/metro/releases/tag/v0.87.1

Changelog:

[General] [Changed] - Bump Metro minimum to 0.87.1

Test Plan:

yarn install --frozen-lockfile --ignore-scripts
yarn flow-check
yarn test packages/metro-config packages/community-cli-plugin packages/dev-middleware

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Sep 13, 2026
@robhogan
robhogan marked this pull request as ready for review September 13, 2026 13:38
@facebook-github-tools facebook-github-tools Bot added the Shared with Meta Applied via automation to indicate that an Issue or Pull Request has been shared with the team. label Sep 13, 2026
## Summary:

Bump minimum Metro version to 0.87.1, within the same semver range, to ensure upgraders get the same version as fresh projects would.

Mostly fixes, including a couple of `Platform` inlining corrections, and more comprehensive and readable TypeScript types.  It also replaces the `image-size` dependency to clear CVE alerts.

Metro release notes: https://github.com/react/metro/releases/tag/v0.87.1

## Changelog:

[General] [Changed] - Bump Metro minimum to 0.87.1

## Test Plan:

```
yarn install --frozen-lockfile --ignore-scripts
yarn flow-check
yarn test packages/metro-config packages/community-cli-plugin packages/dev-middleware
```
@robhogan

Copy link
Copy Markdown
Collaborator Author

Closing as superseded by #59509

@robhogan robhogan closed this Oct 26, 2026
@robhogan
robhogan deleted the robhogan/metro-0.87.1 branch October 26, 2026 15:57
meta-codesync Bot pushed a commit that referenced this pull request Oct 27, 2026
Summary:
Bump minimum Metro version to 0.87.2, within the same semver range, to ensure upgraders get the same version as fresh projects would. This supersedes #58506 (0.87.1).

Mostly fixes, to file watching, resolution and source maps, plus faster resolution and source map composition. It removes `micromatch` to clear a CVE alert. Assets outside `projectRoot` now get `[metro-watchFolders]/N/` URLs, which also moves them in release builds.

Metro release notes:
- https://github.com/react/metro/releases/tag/v0.87.1
- https://github.com/react/metro/releases/tag/v0.87.2

## Changelog:

[General] [Changed] - Bump Metro minimum to 0.87.2

Pull Request resolved: #59509

Test Plan:
From the fbsource root:

```
xplat/third-party/yarn/yarn install --ignore-scripts --non-interactive --cwd xplat/js
xplat/third-party/yarn/yarn --force --ignore-scripts --non-interactive --cwd xplat/js/public
xplat/yarn-validation/bin/yarn-validation -p xplat/js -p xplat/js/public -p xplat/js/react-native-github -k
SMART_INSTALL_VERBOSE=1 bash xplat/js/scripts/update-oss-yarn-lockfile.sh test
buck2 build fbsource//xplat/js:workspace
arc lint -a
```

- Explicit Yarn validation passed for all three projects: `xplat/js`, `xplat/js/public` and `xplat/js/react-native-github`, including the offline mirror. The public project checks its version-controlled dependency files, not only its lockfile.
- Public Metro Babel-register files match the 0.87.2 archive byte-for-byte. The 112 removed files belong to its obsolete Hermes parser dependency chain; required Flow-parser WASM/generated files remain intact. Independent review verified React Native resolves the nested Metro runtime to 0.87.2.
- The public `flow-parser/babel-plugin` passed 3 real-Babel smoke cases: typed exports, Flow enums and component syntax. A standalone full public Babel-register config attempt could not run because this project intentionally replaces `babel/core` with a dummy package; the parser-plugin smoke used the real root Babel toolchain.
- Independent OSS install used a fresh temporary tree/cache and `--offline --frozen-lockfile --ignore-scripts`: `Lockfile is up-to-date.`
- Workspace build passed: https://www.internalfb.com/buck2/135bb490-de5b-44f0-89ee-1e3543a44182
- Lint passed with no issues; direct ESLint also passed for all five modified package manifests.

```
(cd xplat/js && js1 test --config react-native-github/jest.config.js --ci --runInBand --testPathPattern="react-native-github/packages/(metro-config|community-cli-plugin|dev-middleware)/")
```

16 suites, 164 tests and 1 snapshot passed. The selector includes `metro-config`, but that package has no matching dedicated suites; the executed suites cover `community-cli-plugin` and `dev-middleware`. A preliminary config-only attempt hit an overlapping-install ENOENT; the isolated run passed. These focused suites use the root dependency installation; public-tree coverage is the explicit project validation and parser smoke above.

Independent review confirmed all 16 release archives match their locked integrity and package metadata. Full Flow was not rerun.

Reviewed By: cortinico

Differential Revision: D127624345

Pulled By: javache

fbshipit-source-id: bc03900422f78adcd16c9074c819fcfe710aab88
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. Shared with Meta Applied via automation to indicate that an Issue or Pull Request has been shared with the team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant