Lauren Tan
c9143b98d0
[compiler] Refactor release script
...
Updates the release script to publish tags as well as take a `--ci`
option
Test plan:
```
$ yarn npm:publish --debug --frfr
yarn run v1.22.22
$ node scripts/release/publish --debug --frfr
ℹ Preparing to publish (for real) [debug=true]
ℹ Building packages
✔ Successfully built babel-plugin-react-compiler
✔ Successfully built eslint-plugin-react-compiler
✔ Successfully built react-compiler-healthcheck
NPM 2-factor auth code: ******
✔ Wrote package.json for babel-plugin-react-compiler@0.0.0-experimental-10cf18a-20240806
========== babel-plugin-react-compiler ==========
⠧ Publishing babel-plugin-react-compiler@0.0.0-experimental-10cf18a-20240806 to npm
+ babel-plugin-react-compiler@0.0.0-experimental-10cf18a-20240806
✔ Successfully published babel-plugin-react-compiler to npm
ℹ dry-run: npm dist-tag add babel-plugin-react-compiler@0.0.0-experimental-10cf18a-20240806 experimental --otp=******
✔ Successfully pushed dist-tag experimental for babel-plugin-react-compiler to npm
✔ Wrote package.json for eslint-plugin-react-compiler@0.0.0-experimental-532f76b-20240806
========== eslint-plugin-react-compiler ==========
⠹ Publishing eslint-plugin-react-compiler@0.0.0-experimental-532f76b-20240806 to npm
+ eslint-plugin-react-compiler@0.0.0-experimental-532f76b-20240806
✔ Successfully published eslint-plugin-react-compiler to npm
ℹ dry-run: npm dist-tag add eslint-plugin-react-compiler@0.0.0-experimental-532f76b-20240806 experimental --otp=******
✔ Successfully pushed dist-tag experimental for eslint-plugin-react-compiler to npm
✔ Wrote package.json for react-compiler-healthcheck@0.0.0-experimental-48a8743-20240806
========== react-compiler-healthcheck ==========
⠙ Publishing react-compiler-healthcheck@0.0.0-experimental-48a8743-20240806 to npm
+ react-compiler-healthcheck@0.0.0-experimental-48a8743-20240806
✔ Successfully published react-compiler-healthcheck to npm
ℹ dry-run: npm dist-tag add react-compiler-healthcheck@0.0.0-experimental-48a8743-20240806 experimental --otp=******
✔ Successfully pushed dist-tag experimental for react-compiler-healthcheck to npm
✅ All done
✨ Done in 50.64s.
```
ghstack-source-id: 405cc001c2
Pull Request resolved: https://github.com/facebook/react/pull/30614
2024-08-06 14:48:33 -04:00
Ahmed Abdelbaset
f7ee804c22
[compiler] Add git info to package.json files in compiler packages ( #30475 )
...
This PR adds the repository field to `compiler/packages/*/package.json`
| eslint-plugin-react-compiler | eslint-plugin-react-hooks |
| --- | --- |
|

|

|
2024-07-26 12:56:39 -04:00
Jan Kassens
70484844bf
[BE] switch to hermes parser for prettier ( #30421 )
...
This will allow us to parse new flow syntax since the `flow` parser is
no longer updated.
I had to exclude some files and have them fall back to `flow` parser
since they contain invalid graphql syntax that makes the plugin crash.
2024-07-22 19:16:13 -04:00
Lauren Tan
49c37048de
[prettier] Combine compiler and runtime configs
...
Merges the existing config to the root one so we can have a single
configuration file. I've tried to keep the compiler config as much as
possible in this PR so that no formatting changes occur.
ghstack-source-id: 8bbfc9f269
Pull Request resolved: https://github.com/facebook/react/pull/30021
2024-06-21 12:05:29 -04:00
Lauren Tan
c015abd9dc
[compiler] Remove unused scripts
...
ghstack-source-id: ae0c1bf365
Pull Request resolved: https://github.com/facebook/react/pull/29842
2024-06-10 20:35:40 -04:00
Lauren Tan
61aa159086
[compiler] Fix up prettier
...
Our prettier setup is all messed up after the merge, so this PR should
fix things
ghstack-source-id: f825460ea6
Pull Request resolved: https://github.com/facebook/react/pull/29213
2024-05-29 11:46:27 +09:00
Lauren Tan
0a0a5c02f1
[compiler:playground] Wait for build before running playground
...
Explicitly waits for the build to finish since the playground requires
them to run
ghstack-source-id: 0bd7d5272d
Pull Request resolved: https://github.com/facebook/react/pull/29180
2024-05-21 15:44:04 -04:00
Risto Keravuori
ff60b11b1c
Add packageManager fields for Corepack compat ( #29114 )
2024-05-18 10:21:41 -04:00
Lauren Tan
b195a947de
[compiler:publish] Prompt for OTP
...
Makes running the script a little more ergonomic by prompting for OTP
upfront.
ghstack-source-id: e9967bfde1
Pull Request resolved: https://github.com/facebook/react/pull/29149
2024-05-17 15:07:04 -07:00
Lauren Tan
e7673e496c
[compiler:publish] Rename publish script
...
ghstack-source-id: 1cccc91b5d
Pull Request resolved: https://github.com/facebook/react/pull/29148
2024-05-17 15:07:04 -07:00
Lauren Tan
6948639df6
[publish] Add script to publish packages
...
Adds a script to publish babel-plugin-react-compiler,
eslint-plugin-react-compiler, and react-compiler-healthcheck to npm.
Instructions are in a comment in scripts/publish.js, please read
carefully before using this script!
Test plan:
```
$ yarn npm:publish
yarn run v1.22.10
$ node scripts/publish
ℹ Preparing to publish (dry run) [debug=false]
ℹ Building packages
✔ Successfully built babel-plugin-react-compiler
✔ Successfully built eslint-plugin-react-compiler
✔ Successfully built react-compiler-healthcheck
ℹ Dry run: Report tarball contents
========== babel-plugin-react-compiler ==========
⠴ Running npm pack --dry-run
npm WARN config init.author.name Use `--init-author-name` instead.
npm WARN config init.author.email Use `--init-author-email` instead.
⠦ Running npm pack --dry-run
npm notice
npm notice 📦 babel-plugin-react-compiler@0.0.1
npm notice === Tarball Contents ===
npm notice 11B dist/__tests__/DisjointSet-test.d.ts
npm notice 11B dist/__tests__/envConfig-test.d.ts
npm notice 11B dist/__tests__/Logger-test.d.ts
npm notice 11B dist/__tests__/parseConfigPragma-test.d.ts
npm notice 11B dist/__tests__/Result-test.d.ts
npm notice 145B dist/__tests__/test-utils/validateNoUseBeforeDefine.d.ts
npm notice 144B dist/Babel/BabelPlugin.d.ts
npm notice 350B dist/Babel/RunReactCompilerBabelPlugin.d.ts
npm notice 2.4kB dist/CompilerError.d.ts
npm notice 455B dist/Entrypoint/Gating.d.ts
npm notice 376B dist/Entrypoint/Imports.d.ts
npm notice 166B dist/Entrypoint/index.d.ts
npm notice 1.8kB dist/Entrypoint/Options.d.ts
npm notice 1.3kB dist/Entrypoint/Pipeline.d.ts
npm notice 819B dist/Entrypoint/Program.d.ts
npm notice 295B dist/Entrypoint/Reanimated.d.ts
npm notice 753B dist/Entrypoint/Suppression.d.ts
npm notice 113B dist/HIR/AssertConsistentIdentifiers.d.ts
npm notice 115B dist/HIR/AssertTerminalSuccessorsExist.d.ts
npm notice 529B dist/HIR/AssertValidBlockNesting.d.ts
npm notice 110B dist/HIR/AssertValidMutableRanges.d.ts
npm notice 585B dist/HIR/BuildHIR.d.ts
npm notice 116B dist/HIR/BuildReactiveScopeTerminalsHIR.d.ts
npm notice 125B dist/HIR/ComputeUnconditionalBlocks.d.ts
npm notice 602B dist/HIR/Dominator.d.ts
npm notice 12.7kB dist/HIR/Environment.d.ts
npm notice 184B dist/HIR/FindContextIdentifiers.d.ts
npm notice 401B dist/HIR/Globals.d.ts
npm notice 22.2kB dist/HIR/HIR.d.ts
npm notice 2.8kB dist/HIR/HIRBuilder.d.ts
npm notice 1.1kB dist/HIR/index.d.ts
npm notice 108B dist/HIR/MergeConsecutiveBlocks.d.ts
npm notice 115B dist/HIR/MergeOverlappingReactiveScopesHIR.d.ts
npm notice 2.2kB dist/HIR/ObjectShape.d.ts
npm notice 1.4kB dist/HIR/PrintHIR.d.ts
npm notice 106B dist/HIR/PruneUnusedLabelsHIR.d.ts
npm notice 1.1kB dist/HIR/Types.d.ts
npm notice 1.9kB dist/HIR/visitors.d.ts
npm notice 776B dist/index.d.ts
npm notice 5.4MB dist/index.js
npm notice 429B dist/Inference/AnalyseFunctions.d.ts
npm notice 324B dist/Inference/DropManualMemoization.d.ts
npm notice 436B dist/Inference/index.d.ts
npm notice 224B dist/Inference/InferAlias.d.ts
npm notice 204B dist/Inference/InferAliasForPhis.d.ts
npm notice 206B dist/Inference/InferAliasForStores.d.ts
npm notice 115B dist/Inference/InferMutableContextVariables.d.ts
npm notice 151B dist/Inference/InferMutableLifetimes.d.ts
npm notice 109B dist/Inference/InferMutableRanges.d.ts
npm notice 212B dist/Inference/InferMutableRangesForAlias.d.ts
npm notice 106B dist/Inference/InferReactivePlaces.d.ts
npm notice 368B dist/Inference/InferReferenceEffects.d.ts
npm notice 201B dist/Inference/InferTryCatchAliases.d.ts
npm notice 130B dist/Inference/InlineImmediatelyInvokedFunctionExpressions.d.ts
npm notice 106B dist/Optimization/ConstantPropagation.d.ts
npm notice 258B dist/Optimization/DeadCodeElimination.d.ts
npm notice 177B dist/Optimization/index.d.ts
npm notice 103B dist/Optimization/PruneMaybeThrows.d.ts
npm notice 108B dist/ReactiveScopes/AlignMethodCallScopes.d.ts
npm notice 110B dist/ReactiveScopes/AlignObjectMethodScopes.d.ts
npm notice 133B dist/ReactiveScopes/AlignReactiveScopesToBlockScopes.d.ts
npm notice 126B dist/ReactiveScopes/AlignReactiveScopesToBlockScopesHIR.d.ts
npm notice 132B dist/ReactiveScopes/AssertScopeInstructionsWithinScope.d.ts
npm notice 125B dist/ReactiveScopes/AssertWellFormedBreakTargets.d.ts
npm notice 363B dist/ReactiveScopes/BuildReactiveBlocks.d.ts
npm notice 142B dist/ReactiveScopes/BuildReactiveFunction.d.ts
npm notice 759B dist/ReactiveScopes/CodegenReactiveFunction.d.ts
npm notice 154B dist/ReactiveScopes/CollectReactiveIdentifiers.d.ts
npm notice 128B dist/ReactiveScopes/CollectReferencedGlobals.d.ts
npm notice 698B dist/ReactiveScopes/DeriveMinimalDependencies.d.ts
npm notice 138B dist/ReactiveScopes/ExtractScopeDeclarationsFromDestructuring.d.ts
npm notice 121B dist/ReactiveScopes/FlattenReactiveLoops.d.ts
npm notice 124B dist/ReactiveScopes/FlattenScopesWithHooksOrUse.d.ts
npm notice 2.1kB dist/ReactiveScopes/index.d.ts
npm notice 370B dist/ReactiveScopes/InferReactiveScopeVariables.d.ts
npm notice 217B dist/ReactiveScopes/MemoizeFbtOperandsInSameScope.d.ts
npm notice 127B dist/ReactiveScopes/MergeOverlappingReactiveScopes.d.ts
npm notice 138B dist/ReactiveScopes/MergeReactiveScopesThatInvalidateTogether.d.ts
npm notice 1.0kB dist/ReactiveScopes/PrintReactiveFunction.d.ts
npm notice 123B dist/ReactiveScopes/PromoteUsedTemporaries.d.ts
npm notice 118B dist/ReactiveScopes/PropagateEarlyReturns.d.ts
npm notice 127B dist/ReactiveScopes/PropagateScopeDependencies.d.ts
npm notice 123B dist/ReactiveScopes/PruneAllReactiveScopes.d.ts
npm notice 126B dist/ReactiveScopes/PruneAlwaysInvalidatingScopes.d.ts
npm notice 117B dist/ReactiveScopes/PruneHoistedContexts.d.ts
npm notice 227B dist/ReactiveScopes/PruneNonEscapingScopes.d.ts
npm notice 125B dist/ReactiveScopes/PruneNonReactiveDependencies.d.ts
npm notice 122B dist/ReactiveScopes/PruneTemporaryLValues.d.ts
npm notice 118B dist/ReactiveScopes/PruneUnusedLabels.d.ts
npm notice 118B dist/ReactiveScopes/PruneUnusedScopes.d.ts
npm notice 123B dist/ReactiveScopes/RenameVariables.d.ts
npm notice 114B dist/ReactiveScopes/StabilizeBlockIds.d.ts
npm notice 3.1kB dist/ReactiveScopes/visitors.d.ts
npm notice 170B dist/SSA/EliminateRedundantPhi.d.ts
npm notice 101B dist/SSA/EnterSSA.d.ts
npm notice 154B dist/SSA/index.d.ts
npm notice 99B dist/SSA/LeaveSSA.d.ts
npm notice 63.5kB dist/tsconfig.tsbuildinfo
npm notice 43B dist/TypeInference/index.d.ts
npm notice 103B dist/TypeInference/InferTypes.d.ts
npm notice 352B dist/Utils/ComponentDeclaration.d.ts
npm notice 256B dist/Utils/DisjointSet.d.ts
npm notice 322B dist/Utils/HookDeclaration.d.ts
npm notice 613B dist/Utils/logger.d.ts
npm notice 2.3kB dist/Utils/Result.d.ts
npm notice 119B dist/Utils/RuntimeDiagnosticConstants.d.ts
npm notice 1.1kB dist/Utils/Stack.d.ts
npm notice 149B dist/Utils/todo.d.ts
npm notice 782B dist/Utils/utils.d.ts
npm notice 603B dist/Validation/index.d.ts
npm notice 117B dist/Validation/ValidateContextVariableLValues.d.ts
npm notice 109B dist/Validation/ValidateHooksUsage.d.ts
npm notice 214B dist/Validation/ValidateMemoizedEffectDependencies.d.ts
npm notice 113B dist/Validation/ValidateNoCapitalizedCalls.d.ts
npm notice 114B dist/Validation/ValidateNoRefAccesInRender.d.ts
npm notice 113B dist/Validation/ValidateNoSetStateInRender.d.ts
npm notice 131B dist/Validation/ValidatePreservedManualMemoization.d.ts
npm notice 102B dist/Validation/ValidateUseMemo.d.ts
npm notice 2.3kB package.json
npm notice === Tarball Details ===
npm notice name: babel-plugin-react-compiler
npm notice version: 0.0.1
npm notice filename: babel-plugin-react-compiler-0.0.1.tgz
npm notice package size: 1.1 MB
npm notice unpacked size: 5.5 MB
npm notice shasum: 9a0fb71bdc904d6ab92432a506b0e037f10dd7ce
npm notice integrity: sha512-hXtObyIEP4MbO[...]jstRbpztyLf4g==
npm notice total files: 119
npm notice
========== eslint-plugin-react-compiler ==========
⠴ Running npm pack --dry-run
npm WARN config init.author.name Use `--init-author-name` instead.
npm WARN config init.author.email Use `--init-author-email` instead.
⠋ Running npm pack --dry-run
npm notice
npm notice 📦 eslint-plugin-react-compiler@0.0.0
npm notice === Tarball Contents ===
npm notice 827B README.md
npm notice 2.1MB dist/index.js
npm notice 968B package.json
npm notice === Tarball Details ===
npm notice name: eslint-plugin-react-compiler
npm notice version: 0.0.0
npm notice filename: eslint-plugin-react-compiler-0.0.0.tgz
npm notice package size: 300.5 kB
npm notice unpacked size: 2.1 MB
npm notice shasum: f24dab544b03d36d9bb676a16256f114bd5e0ed6
npm notice integrity: sha512-8PcKZXZ+RVBDP[...]D7jFmkvHJoBeA==
npm notice total files: 3
npm notice
========== react-compiler-healthcheck ==========
⠼ Running npm pack --dry-run
npm WARN config init.author.name Use `--init-author-name` instead.
npm WARN config init.author.email Use `--init-author-email` instead.
⠏ Running npm pack --dry-run
npm notice
npm notice 📦 react-compiler-healthcheck@0.0.0
npm notice === Tarball Contents ===
npm notice 2.1MB dist/index.js
npm notice 677B package.json
npm notice 1.8kB rollup.config.js
npm notice 1.1kB src/checks/libraryCompat.ts
npm notice 3.2kB src/checks/reactCompiler.ts
npm notice 759B src/checks/strictMode.ts
npm notice 67B src/config.ts
npm notice 1.5kB src/index.ts
npm notice 602B tsconfig.json
npm notice === Tarball Details ===
npm notice name: react-compiler-healthcheck
npm notice version: 0.0.0
npm notice filename: react-compiler-healthcheck-0.0.0.tgz
npm notice package size: 290.4 kB
npm notice unpacked size: 2.1 MB
npm notice shasum: 55c0eb57aebc7305270a29e78ebf6c056044bae0
npm notice integrity: sha512-nPVhGyh8i9PoO[...]v52c3U0tKGpzA==
npm notice total files: 9
npm notice
✔ Please confirm contents of packages before publishing. You can run this command again with --for-real to publish to npm
✨ Done in 61.19s.
```
```
$ yarn npm:publish --debug --for-real
yarn run v1.22.10
$ node scripts/publish --debug --for-real
ℹ Preparing to publish (for real) [debug=true]
ℹ Building packages
✔ Successfully built babel-plugin-react-compiler
✔ Successfully built eslint-plugin-react-compiler
✔ Successfully built react-compiler-healthcheck
✔ Bumped babel-plugin-react-compiler to 0.0.0-experimental-2769f7a-20240513
✔ Bumped eslint-plugin-react-compiler to 0.0.0-experimental-e04a001-20240513
✔ Bumped react-compiler-healthcheck to 0.0.0-experimental-410375f-20240513
========== babel-plugin-react-compiler ==========
⠋ Publishing babel-plugin-react-compiler to npm
Command that would have run: npm publish --dry-run
/Users/lauren/code/react-forget/compiler/scripts/publish.js:188
throw new Error(
^
Error: This error is intentional, please double check scripts/publish.js and remove this error prior to publishing
at main (/Users/lauren/code/react-forget/compiler/scripts/publish.js:188:13)
Node.js v20.11.0
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
```
On the day of launch, remove the hardcoded error, then run `yarn
npm:publish --debug --for-real` first as a sanity check. Confirm the
contents are correct.
Then when you are certain, run `yarn npm:publish --for-real`, and push
the commited version bumps to GitHub so the hashes that the packages
originate from are public.
ghstack-source-id: 403bc22d4b340056fd112fcfc38580f28ed6c986
Pull Request resolved: https://github.com/facebook/react-forget/pull/2966
2024-05-14 11:02:29 -04:00
Jan Kassens
e63d3d1491
Upgrade to React 19 beta ( #2938 )
...
- Updated all directly defined dependencies to the latest React 19 Beta
- `package.json`: used `resolutions` to force React 19 for `react-is` transitive dependency
- `package.json`: postinstall script to patch fbt for the React 19 element Symbol
- Match on the message in Snap to exclude a React 19 warning that `act` should be imported from `react` instead (from inside `@testing-library/react`)
- Some updated snapshots, I think due to now recovering behavior of `useMemoCache`, please review.
In a next step, we can do the following. I excluded it since it from here as it made the PR unreviewable on GitHub.
- Snapshots now use `react/compiler-runtime` as in prod, so the different default in Snap is no longer needed.
2024-05-06 19:48:39 -04:00
Joe Savona
82137ec184
Rename react-compiler-runtime
...
ghstack-source-id: c6c825f5efdb4f9c413050b22b7713966871338c
Pull Request resolved: https://github.com/facebook/react-forget/pull/2931
2024-05-02 17:14:26 -07:00
Joe Savona
48e0c70292
Rename babel plugin
...
ghstack-source-id: bb66913e2d3c814696311371ed655f3da03d1199
Pull Request resolved: https://github.com/facebook/react-forget/pull/2926
2024-05-02 14:12:33 -07:00
Lauren Tan
ee24e3fc16
Dogfood uMC polyfill in playground
2024-04-03 18:12:29 -04:00
Lauren Tan
e61f983264
Fix yarn dev
2024-04-02 12:18:12 -04:00
Lauren Tan
5485ed0855
Standardize on banner2 plugin
2024-04-02 12:13:41 -04:00
Lauren Tan
f01f74d9e1
Also build react-forget-runtime with rollup
...
This adds rollup to the runtime and adds a new plugin to add the license banner
+ inject the `"use no memo"` directive. We need to inject it there as rollup
currently strips out unknown directives during bundling.
2024-04-02 12:13:40 -04:00
Lauren Tan
b4eeae6f5d
Share rollup packages across workspace
2024-04-02 12:13:39 -04:00
Lauren Tan
4e6aa42773
Upgrade to typescript 5.4.3
...
This PR makes all packages share the same typescript version and updates us to
latest versions of typescript, ts-node, typescript-eslint/eslint-plugin and
typescript-eslint/parser.
I also noticed that the tsconfig we were extending (node18-strictest) was
deprecated, so I switched us over to one that's more up to date.
Also had to make a couple of small changes to the playground so that continues
to build correctly.
2024-04-02 10:32:23 -04:00
Sathya Gunasekaran
8879a2dd49
Remove sprout from package.json
2024-02-28 15:22:13 -08:00
Lauren Tan
742a6f09bf
[ez] Get rid of caniuse warning
2024-01-30 14:54:04 -05:00
Lauren Tan
0cc473fc9a
[ez] Move copyright script to top level
2023-11-02 12:43:33 -04:00
Lauren Tan
8860faa65c
[feedback] Add script to copy forget-feedback to new repo
2023-10-31 17:14:19 -04:00
Lauren Tan
e4acd448f6
[feedback] Add script to bundle for oss
2023-10-31 12:42:39 -04:00
Lauren Tan
4fc392e628
[qol] Add sprout to top level scripts
2023-10-16 16:05:08 +01:00
lauren
a0dc166991
[rfc] Remove top level forget directory
...
Sorry about the thrash in advance! This removes the top level `forget` directory
which adds unnecessary nesting to our repo
Hopefully everything still works
2023-08-22 15:04:54 -04:00