diff --git a/.circleci/config.yml b/.circleci/config.yml index a0197b4134cd..fc1fffdaa904 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,7 +2,7 @@ version: 2.1 aliases: - &docker - - image: cimg/openjdk:18.0-node + - image: cimg/node:18.20.1-browsers - &environment TZ: /usr/share/zoneinfo/America/Los_Angeles @@ -84,7 +84,6 @@ jobs: - run: node ./scripts/prettier/index - run: node ./scripts/tasks/eslint - run: ./scripts/circleci/check_license.sh - - run: ./scripts/circleci/check_modules.sh - run: ./scripts/circleci/test_print_warnings.sh yarn_flow: @@ -97,6 +96,16 @@ jobs: - setup_node_modules - run: node ./scripts/tasks/flow-ci + + yarn_flags: + docker: *docker + environment: *environment + + steps: + - checkout + - setup_node_modules + - run: yarn flags + scrape_warning_messages: docker: *docker environment: *environment @@ -202,6 +211,8 @@ jobs: - setup_node_modules - run: command: node ./scripts/tasks/danger + - store_artifacts: + path: sizebot-message.md build_devtools_and_process_artifacts: docker: *docker @@ -217,6 +228,13 @@ jobs: command: ./scripts/circleci/pack_and_store_devtools_artifacts.sh - store_artifacts: path: ./build/devtools.tgz + # Simplifies getting the extension for local testing + - store_artifacts: + path: ./build/devtools/chrome-extension.zip + destination: react-devtools-chrome-extension.zip + - store_artifacts: + path: ./build/devtools/firefox-extension.zip + destination: react-devtools-firefox-extension.zip run_devtools_e2e_tests: docker: *docker @@ -236,6 +254,52 @@ jobs: RELEASE_CHANNEL: experimental command: ./scripts/circleci/run_devtools_e2e_tests.js + run_fixtures_flight_tests: + docker: *docker + environment: *environment + steps: + - checkout + - attach_workspace: + at: . + # Fixture copies some built packages from the workroot after install. + # That means dependencies of the built packages are not installed. + # We need to install dependencies of the workroot to fulfill all dependency constraints + - setup_node_modules + - restore_cache: + name: Restore yarn cache of fixture + keys: + - v2-yarn_cache_fixtures_flight-{{ arch }}-{{ checksum "yarn.lock" }} + - run: + name: Install fixture dependencies + working_directory: fixtures/flight + command: | + yarn install --frozen-lockfile --cache-folder ~/.cache/yarn + if [ $? -ne 0 ]; then + yarn install --frozen-lockfile --cache-folder ~/.cache/yarn + fi + - save_cache: + name: Save yarn cache of fixture + key: v2-yarn_cache_fixtures_flight-{{ arch }}-{{ checksum "yarn.lock" }} + paths: + - ~/.cache/yarn + - run: + working_directory: fixtures/flight + name: Playwright install deps + command: | + npx playwright install + sudo npx playwright install-deps + - run: + name: Run tests + working_directory: fixtures/flight + command: yarn test + environment: + # Otherwise the webserver is a blackbox + DEBUG: pw:webserver + - store_artifacts: + path: fixtures/flight/playwright-report + - store_artifacts: + path: fixtures/flight/test-results + run_devtools_tests_for_versions: docker: *docker environment: *environment @@ -400,6 +464,11 @@ workflows: build_and_test: unless: << pipeline.parameters.prerelease_commit_sha >> jobs: + - yarn_flags: + filters: + branches: + ignore: + - builds/facebook-www - yarn_flow: filters: branches: @@ -516,6 +585,9 @@ workflows: - run_devtools_e2e_tests: requires: - build_devtools_and_process_artifacts + - run_fixtures_flight_tests: + requires: + - yarn_build devtools_regression_tests: unless: << pipeline.parameters.prerelease_commit_sha >> @@ -574,7 +646,7 @@ workflows: # because this used to be called the "next" channel and some # downstream consumers might still expect that tag. We can remove this # after some time has elapsed and the change has been communicated. - dist_tag: "canary,next" + dist_tag: "canary,next,rc" - publish_prerelease: name: Publish to Experimental channel requires: @@ -603,7 +675,7 @@ workflows: name: Publish to Canary channel commit_sha: << pipeline.git.revision >> release_channel: stable - dist_tag: "canary,next" + dist_tag: "canary,next,rc" - publish_prerelease: name: Publish to Experimental channel requires: diff --git a/.eslintignore b/.eslintignore index 7d79ef692311..c30542a3f7e2 100644 --- a/.eslintignore +++ b/.eslintignore @@ -13,11 +13,15 @@ scripts/bench/benchmarks/**/*.js # React repository clone scripts/bench/remote-repo/ +# Compiler uses its own lint setup +compiler/ + packages/react-devtools-core/dist packages/react-devtools-extensions/chrome/build packages/react-devtools-extensions/firefox/build packages/react-devtools-extensions/shared/build packages/react-devtools-extensions/src/ErrorTesterCompiled.js +packages/react-devtools-fusebox/dist packages/react-devtools-inline/dist packages/react-devtools-shared/src/hooks/__tests__/__source__/__compiled__/ packages/react-devtools-shared/src/hooks/__tests__/__source__/__untransformed__/ diff --git a/.eslintrc.js b/.eslintrc.js index eaad9393c568..0197c75b7688 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -381,6 +381,13 @@ module.exports = { 'jest/valid-expect-in-promise': ERROR, }, }, + { + // disable no focused tests for test setup helper files even if they are inside __tests__ directory + files: ['**/setupTests.js'], + rules: { + 'jest/no-focused-tests': OFF, + }, + }, { files: [ '**/__tests__/**/*.js', @@ -420,6 +427,7 @@ module.exports = { files: ['packages/react-native-renderer/**/*.js'], globals: { nativeFabricUIManager: 'readonly', + RN$enableMicrotasksInReact: 'readonly', }, }, { @@ -448,6 +456,13 @@ module.exports = { __IS_CHROME__: 'readonly', __IS_FIREFOX__: 'readonly', __IS_EDGE__: 'readonly', + __IS_INTERNAL_VERSION__: 'readonly', + }, + }, + { + files: ['packages/react-devtools-shared/**/*.js'], + globals: { + __IS_INTERNAL_VERSION__: 'readonly', }, }, ], @@ -484,7 +499,12 @@ module.exports = { DOMHighResTimeStamp: 'readonly', EventListener: 'readonly', Iterable: 'readonly', + AsyncIterable: 'readonly', + $AsyncIterable: 'readonly', + $AsyncIterator: 'readonly', Iterator: 'readonly', + AsyncIterator: 'readonly', + IteratorResult: 'readonly', JSONValue: 'readonly', JSResourceReference: 'readonly', MouseEventHandler: 'readonly', @@ -505,6 +525,7 @@ module.exports = { React$Portal: 'readonly', React$Ref: 'readonly', ReadableStreamController: 'readonly', + ReadableStreamReader: 'readonly', RequestInfo: 'readonly', RequestOptions: 'readonly', StoreAsGlobal: 'readonly', @@ -524,7 +545,6 @@ module.exports = { __EXTENSION__: 'readonly', __PROFILE__: 'readonly', __TEST__: 'readonly', - __UMD__: 'readonly', __VARIANT__: 'readonly', __unmockReact: 'readonly', gate: 'readonly', diff --git a/.github/ISSUE_TEMPLATE/19.md b/.github/ISSUE_TEMPLATE/19.md new file mode 100644 index 000000000000..6fa2dd8d8d8f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/19.md @@ -0,0 +1,18 @@ +--- +name: "⚛React 19 beta issue" +about: Report a issue with React 19 beta. +title: '[React 19]' +labels: 'React 19' + +--- + + +## Summary + + diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000000..b436c26c50c2 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,107 @@ +version: 2 +updates: + - package-ecosystem: "npm" + directory: "/fixtures/art" + schedule: + interval: "weekly" + open-pull-requests-limit: 0 + - package-ecosystem: "npm" + directory: "/fixtures/attribute-behavior" + schedule: + interval: "weekly" + open-pull-requests-limit: 0 + - package-ecosystem: "npm" + directory: "/fixtures/concurrent" + schedule: + interval: "weekly" + open-pull-requests-limit: 0 + - package-ecosystem: "npm" + directory: "/fixtures/devtools" + schedule: + interval: "weekly" + open-pull-requests-limit: 0 + - package-ecosystem: "npm" + directory: "/fixtures/dom" + schedule: + interval: "weekly" + open-pull-requests-limit: 0 + - package-ecosystem: "npm" + directory: "/fixtures/eslint" + schedule: + interval: "weekly" + open-pull-requests-limit: 0 + - package-ecosystem: "npm" + directory: "/fixtures/expiration" + schedule: + interval: "weekly" + open-pull-requests-limit: 0 + - package-ecosystem: "npm" + directory: "/fixtures/fiber-debugger" + schedule: + interval: "weekly" + open-pull-requests-limit: 0 + - package-ecosystem: "npm" + directory: "/fixtures/fiber-triangle" + schedule: + interval: "weekly" + open-pull-requests-limit: 0 + - package-ecosystem: "npm" + directory: "/fixtures/fizz" + schedule: + interval: "weekly" + open-pull-requests-limit: 0 + - package-ecosystem: "npm" + directory: "/fixtures/fizz-ssr-browser" + schedule: + interval: "weekly" + open-pull-requests-limit: 0 + - package-ecosystem: "npm" + directory: "/fixtures/flight" + schedule: + interval: "weekly" + open-pull-requests-limit: 0 + - package-ecosystem: "npm" + directory: "/fixtures/flight-browser" + schedule: + interval: "weekly" + open-pull-requests-limit: 0 + - package-ecosystem: "npm" + directory: "/fixtures/flight-esm" + schedule: + interval: "weekly" + open-pull-requests-limit: 0 + - package-ecosystem: "npm" + directory: "/fixtures/legacy-jsx-runtimes" + schedule: + interval: "weekly" + open-pull-requests-limit: 0 + - package-ecosystem: "npm" + directory: "/fixtures/nesting" + schedule: + interval: "weekly" + open-pull-requests-limit: 0 + - package-ecosystem: "npm" + directory: "/fixtures/packaging" + schedule: + interval: "weekly" + open-pull-requests-limit: 0 + - package-ecosystem: "npm" + directory: "/fixtures/scheduler" + schedule: + interval: "weekly" + open-pull-requests-limit: 0 + - package-ecosystem: "npm" + directory: "/fixtures/ssr" + schedule: + interval: "weekly" + open-pull-requests-limit: 0 + - package-ecosystem: "npm" + directory: "/fixtures/ssr-2" + schedule: + interval: "weekly" + open-pull-requests-limit: 0 + - package-ecosystem: "npm" + directory: "/fixtures/stacks" + schedule: + interval: "weekly" + open-pull-requests-limit: 0 diff --git a/.github/stale.yml b/.github/stale.yml deleted file mode 100644 index 25f65e7c3d4a..000000000000 --- a/.github/stale.yml +++ /dev/null @@ -1,34 +0,0 @@ -# Configuration for probot-stale - https://github.com/probot/stale -# Number of days of inactivity before an issue becomes stale -daysUntilStale: 90 -# Number of days of inactivity before a stale issue is closed -daysUntilClose: 7 -# Issues with these labels will never be considered stale -exemptLabels: - - "Partner" - - "React Core Team" - - "Resolution: Backlog" - - "Type: Bug" - - "Type: Discussion" - - "Type: Needs Investigation" - - "Type: Regression" -# Label to use when marking an issue as stale -staleLabel: "Resolution: Stale" -issues: - # Comment to post when marking an issue as stale. - markComment: > - This issue has been automatically marked as stale. - **If this issue is still affecting you, please leave any comment** (for example, "bump"), and we'll keep it open. - We are sorry that we haven't been able to prioritize it yet. If you have any new additional information, please include it with your comment! - # Comment to post when closing a stale issue. - closeComment: > - Closing this issue after a prolonged period of inactivity. If this issue is still present in the latest release, please create a new issue with up-to-date information. Thank you! -pulls: - # Comment to post when marking a pull request as stale. - markComment: > - This pull request has been automatically marked as stale. - **If this pull request is still relevant, please leave any comment** (for example, "bump"), and we'll keep it open. - We are sorry that we haven't been able to prioritize reviewing it yet. Your contribution is very much appreciated. - # Comment to post when closing a stale pull request. - closeComment: > - Closing this pull request after a prolonged period of inactivity. If this issue is still present in the latest release, please ask for this pull request to be reopened. Thank you! diff --git a/.github/workflows/commit_artifacts.yml b/.github/workflows/commit_artifacts.yml index db72ecf2df00..3b09f99803ed 100644 --- a/.github/workflows/commit_artifacts.yml +++ b/.github/workflows/commit_artifacts.yml @@ -11,7 +11,7 @@ jobs: www_branch_count: ${{ steps.check_branches.outputs.www_branch_count }} fbsource_branch_count: ${{ steps.check_branches.outputs.fbsource_branch_count }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: "Check branches" id: check_branches run: | @@ -132,7 +132,7 @@ jobs: ./compiled/facebook-www/eslint-plugin-react-hooks.js # Move unstable_server-external-runtime.js into facebook-www - mv build/oss-stable/react-dom/unstable_server-external-runtime.js \ + mv build/oss-experimental/react-dom/unstable_server-external-runtime.js \ ./compiled/facebook-www/unstable_server-external-runtime.js # Move react-refresh-babel.development.js into babel-plugin-react-refresh @@ -145,15 +145,15 @@ jobs: run: | BASE_FOLDER='compiled-rn/facebook-fbsource/xplat/js' mkdir -p ${BASE_FOLDER}/react-native-github/Libraries/Renderer/ - mkdir -p ${BASE_FOLDER}/RKJSModules/vendor/{scheduler,react,react-is,react-test-renderer}/ + mkdir -p ${BASE_FOLDER}/RKJSModules/vendor/react/{scheduler,react,react-is,react-test-renderer}/ # Move React Native renderer mv build/react-native/implementations/ $BASE_FOLDER/react-native-github/Libraries/Renderer/ mv build/react-native/shims/ $BASE_FOLDER/react-native-github/Libraries/Renderer/ - mv build/facebook-react-native/scheduler/cjs/ $BASE_FOLDER/RKJSModules/vendor/scheduler/ - mv build/facebook-react-native/react/cjs/ $BASE_FOLDER/RKJSModules/vendor/react/ - mv build/facebook-react-native/react-is/cjs/ $BASE_FOLDER/RKJSModules/vendor/react-is/ - mv build/facebook-react-native/react-test-renderer/cjs/ $BASE_FOLDER/RKJSModules/vendor/react-test-renderer/ + mv build/facebook-react-native/scheduler/cjs/ $BASE_FOLDER/RKJSModules/vendor/react/scheduler/ + mv build/facebook-react-native/react/cjs/ $BASE_FOLDER/RKJSModules/vendor/react/react/ + mv build/facebook-react-native/react-is/cjs/ $BASE_FOLDER/RKJSModules/vendor/react/react-is/ + mv build/facebook-react-native/react-test-renderer/cjs/ $BASE_FOLDER/RKJSModules/vendor/react/react-test-renderer/ # Delete OSS renderer. OSS renderer is synced through internal script. RENDERER_FOLDER=$BASE_FOLDER/react-native-github/Libraries/Renderer/implementations/ @@ -179,7 +179,7 @@ jobs: if: ${{ (github.ref == 'refs/heads/main' && needs.download_artifacts.outputs.www_branch_count == '0') || github.ref == 'refs/heads/meta-www' }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: builds/facebook-www - name: Ensure clean directory @@ -212,16 +212,14 @@ jobs: commit_fbsource_artifacts: needs: download_artifacts - runs-on: ubuntu-latest if: ${{ (github.ref == 'refs/heads/main' && needs.download_artifacts.outputs.fbsource_branch_count == '0') || github.ref == 'refs/heads/meta-fbsource' }} + runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: - ref: main - repository: facebook/react-fbsource-import - token: ${{secrets.FBSOURCE_SYNC_PUSH_TOKEN}} + ref: builds/facebook-fbsource - name: Ensure clean directory - run: rm -rf compiled-rn + run: rm -rf compiled - uses: actions/download-artifact@v3 with: name: compiled-rn @@ -243,5 +241,7 @@ jobs: ${{ github.event.head_commit.message }} DiffTrain build for commit https://github.com/facebook/react/commit/${{ github.sha }}. + branch: builds/facebook-fbsource commit_user_name: ${{ github.actor }} commit_user_email: ${{ github.actor }}@users.noreply.github.com + create_branch: true diff --git a/.github/workflows/compiler-playground.yml b/.github/workflows/compiler-playground.yml new file mode 100644 index 000000000000..5d97a2bff4ce --- /dev/null +++ b/.github/workflows/compiler-playground.yml @@ -0,0 +1,34 @@ +name: Compiler Playground + +on: + push: + branches: [main] + pull_request: + paths: + - "compiler/**" + - .github/workflows/compiler-playground.yml + +defaults: + run: + working-directory: compiler + +jobs: + playground: + name: Test playground + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 18.x + cache: "yarn" + cache-dependency-path: compiler/yarn.lock + - name: Restore cached node_modules + uses: actions/cache@v4 + id: node_modules + with: + path: "**/node_modules" + key: ${{ runner.arch }}-${{ runner.os }}-modules-${{ hashFiles('compiler/**/yarn.lock') }} + - run: yarn install --frozen-lockfile + - run: npx playwright install --with-deps chromium + - run: yarn workspace playground test diff --git a/.github/workflows/compiler-rust.yml b/.github/workflows/compiler-rust.yml new file mode 100644 index 000000000000..e492de11e0e3 --- /dev/null +++ b/.github/workflows/compiler-rust.yml @@ -0,0 +1,72 @@ +name: React Compiler (Rust) + +on: + push: + branches: ["main"] + paths: + - .github/workflows/** + - compiler/crates/** + - compiler/Cargo.* + - compiler/*.toml + pull_request: + paths: + - .github/workflows/** + - compiler/crates/** + - compiler/Cargo.* + - compiler/*.toml + +env: + CARGO_TERM_COLOR: always + RUSTFLAGS: -Dwarnings + +defaults: + run: + working-directory: compiler + +jobs: + test: + name: Rust Test (${{ matrix.target.os }}) + strategy: + matrix: + target: + - target: ubuntu-latest + os: ubuntu-latest + # TODO: run on more platforms + # - target: macos-latest + # os: macos-latest + # - target: windows-latest + # os: windows-latest + runs-on: ${{ matrix.target.os }} + steps: + - uses: actions/checkout@v4 + - uses: Swatinem/rust-cache@v2 + - name: cargo test + run: cargo test --manifest-path=Cargo.toml --locked ${{ matrix.target.features && '--features' }} ${{ matrix.target.features }} + + lint: + name: Rust Lint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions-rs/toolchain@v1 + with: + # NOTE: use `rustup run ` in commands below + # with this exact same toolchain value + toolchain: nightly-2023-08-01 + override: true + components: rustfmt, clippy + - uses: Swatinem/rust-cache@v2 + - name: rustfmt + run: grep -r --include "*.rs" --files-without-match "@generated" crates | xargs rustup run nightly-2023-08-01 rustfmt --check --config="skip_children=true" + # - name: cargo clippy + # run: rustup run nightly-2023-08-01 cargo clippy -- -Dclippy::correctness + + build: + name: Rust Build + runs-on: ubuntu-latest + # TODO: build on more platforms, deploy, etc + steps: + - uses: actions/checkout@v4 + - uses: Swatinem/rust-cache@v2 + - name: cargo build + run: cargo build --release diff --git a/.github/workflows/compiler-typescript.yml b/.github/workflows/compiler-typescript.yml new file mode 100644 index 000000000000..1448f6696176 --- /dev/null +++ b/.github/workflows/compiler-typescript.yml @@ -0,0 +1,88 @@ +name: React Compiler (TypeScript) + +on: + push: + branches: [main] + pull_request: + paths: + - "compiler/**" + - .github/workflows/compiler-typescript.yml + +defaults: + run: + working-directory: compiler + +jobs: + discover_yarn_workspaces: + name: Discover yarn workspaces + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + steps: + - uses: actions/checkout@v4 + - id: set-matrix + run: echo "matrix=$(find packages -mindepth 1 -maxdepth 1 -type d | sed 's!packages/!!g' | tr '\n' ',' | sed s/.$// | jq -Rsc '. / "," - [""]')" >> $GITHUB_OUTPUT + + # Hardcoded to improve parallelism for babel-plugin-react-compiler + lint: + name: Lint babel-plugin-react-compiler + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 18.x + cache: "yarn" + cache-dependency-path: compiler/yarn.lock + - name: Restore cached node_modules + uses: actions/cache@v4 + with: + path: "**/node_modules" + key: ${{ runner.arch }}-${{ runner.os }}-modules-${{ hashFiles('compiler/**/yarn.lock') }} + - run: yarn install --frozen-lockfile + - run: yarn workspace babel-plugin-react-compiler prettier:ci + - run: yarn workspace babel-plugin-react-compiler lint + + # Hardcoded to improve parallelism for babel-plugin-react-compiler + jest: + name: Jest babel-plugin-react-compiler + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 18.x + cache: "yarn" + cache-dependency-path: compiler/yarn.lock + - name: Restore cached node_modules + uses: actions/cache@v4 + id: node_modules + with: + path: "**/node_modules" + key: ${{ runner.arch }}-${{ runner.os }}-modules-${{ hashFiles('compiler/**/yarn.lock') }} + - run: yarn install --frozen-lockfile + - run: yarn workspace babel-plugin-react-compiler jest + + test: + name: Test ${{ matrix.workspace_name }} + needs: discover_yarn_workspaces + runs-on: ubuntu-latest + continue-on-error: true + strategy: + matrix: + workspace_name: ${{ fromJSON(needs.discover_yarn_workspaces.outputs.matrix) }} + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 18.x + cache: "yarn" + cache-dependency-path: compiler/yarn.lock + - name: Restore cached node_modules + uses: actions/cache@v4 + id: node_modules + with: + path: "**/node_modules" + key: ${{ runner.arch }}-${{ runner.os }}-modules-${{ hashFiles('compiler/**/yarn.lock') }} + - run: yarn install --frozen-lockfile + - run: yarn workspace ${{ matrix.workspace_name }} test diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml new file mode 100644 index 000000000000..86928739a4ea --- /dev/null +++ b/.github/workflows/stale.yml @@ -0,0 +1,46 @@ +# Configuration for stale action workflow - https://github.com/actions/stale +name: 'Manage stale issues and PRs' +on: + schedule: + # Run hourly + - cron: '0 * * * *' + +jobs: + stale: + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v9 + with: + # --- Issues & PRs --- + # Number of days of inactivity before an issue or PR becomes stale + days-before-stale: 90 + # Number of days of inactivity before a stale issue or PR is closed + days-before-close: 7 + # API calls per run + operations-per-run: 100 + + # --- Issues --- + stale-issue-label: "Resolution: Stale" + # Comment to post when marking an issue as stale + stale-issue-message: > + This issue has been automatically marked as stale. + **If this issue is still affecting you, please leave any comment** (for example, "bump"), and we'll keep it open. + We are sorry that we haven't been able to prioritize it yet. If you have any new additional information, please include it with your comment! + # Comment to post when closing a stale issue + close-issue-message: > + Closing this issue after a prolonged period of inactivity. If this issue is still present in the latest release, please create a new issue with up-to-date information. Thank you! + # Issues with these labels will never be considered stale + exempt-issue-labels: "Partner,React Core Team,Resolution: Backlog,Type: Bug,Type: Discussion,Type: Needs Investigation,Type: Regression,Type: Feature Request,Type: Enhancement" + + # --- PRs --- + stale-pr-label: "Resolution: Stale" + # Comment to post when marking a pull request as stale + stale-pr-message: > + This pull request has been automatically marked as stale. + **If this pull request is still relevant, please leave any comment** (for example, "bump"), and we'll keep it open. + We are sorry that we haven't been able to prioritize reviewing it yet. Your contribution is very much appreciated. + # Comment to post when closing a stale pull request + close-pr-message: > + Closing this pull request after a prolonged period of inactivity. If this issue is still present in the latest release, please ask for this pull request to be reopened. Thank you! + # PRs with these labels will never be considered stale + exempt-pr-labels: "Partner,React Core Team,Resolution: Backlog,Type: Bug,Type: Discussion,Type: Needs Investigation,Type: Regression,Type: Feature Request,Type: Enhancement" diff --git a/.gitignore b/.gitignore index 6ec345e172e5..2a20fc2427c9 100644 --- a/.gitignore +++ b/.gitignore @@ -33,6 +33,7 @@ packages/react-devtools-extensions/firefox/*.xpi packages/react-devtools-extensions/firefox/*.pem packages/react-devtools-extensions/shared/build packages/react-devtools-extensions/.tempUserDataDir +packages/react-devtools-fusebox/dist packages/react-devtools-inline/dist packages/react-devtools-shell/dist packages/react-devtools-timeline/dist diff --git a/.nvmrc b/.nvmrc index e329619ca224..91f7588a1a5d 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v16.19.1 +v18.20.0 diff --git a/.prettierignore b/.prettierignore index 1ab5d680398d..503904f39a93 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,11 +1,13 @@ build +compiler packages/react-devtools-core/dist packages/react-devtools-extensions/chrome/build packages/react-devtools-extensions/firefox/build packages/react-devtools-extensions/edge/build packages/react-devtools-extensions/shared/build packages/react-devtools-extensions/src/ErrorTesterCompiled.js +packages/react-devtools-fusebox/dist packages/react-devtools-inline/dist packages/react-devtools-shared/src/hooks/__tests__/__source__/__compiled__/ packages/react-devtools-shared/src/hooks/__tests__/__source__/__untransformed__/ diff --git a/.prettierrc.js b/.prettierrc.js index 45986c05ee5c..6342f131a0cf 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -1,6 +1,9 @@ 'use strict'; -const {esNextPaths} = require('./scripts/shared/pathsByLanguageVersion'); +const { + esNextPaths, + typescriptPaths, +} = require('./scripts/shared/pathsByLanguageVersion'); module.exports = { bracketSpacing: false, @@ -17,5 +20,12 @@ module.exports = { trailingComma: 'all', }, }, + { + files: typescriptPaths, + options: { + trailingComma: 'all', + parser: 'typescript', + }, + }, ], }; diff --git a/AUTHORS b/AUTHORS deleted file mode 100644 index 146796383fbe..000000000000 --- a/AUTHORS +++ /dev/null @@ -1,1130 +0,0 @@ -839 <8398a7@gmail.com> -Aaron Ackerman -Aaron Cannon -Aaron Franks -Aaron Gelter -Abhay Nikam -Abhishek Soni -Adam -Adam Bloomston -Adam Krebs -Adam Mark -Adam Solove -Adam Stankiewicz -Adam Timberlake -Adam Zapletal -Addy Osmani -Adrian Sieber -Aesop Wolf -Ahmad Wali Sidiqi -Alan Plum -Alan Souza -Alan deLevie -Alastair Hole -Alex -Alex -Alex Babkov -Alex Baumgertner -Alex Boatwright -Alex Boyd -Alex Dajani -Alex Jacobs -Alex Katopodis -Alex Lopatin -Alex Mykyta -Alex Pien -Alex Smith -Alex Zelenskiy -Alex Zherdev -Alexander -Alexander -Alexander Shtuchkin -Alexander Solovyov -Alexander Tseung -Alexandre Gaudencio -Alexandre Kirszenberg -Alexey Raspopov -Alexey Shamrin -Ali Taheri Moghaddar -Ali Ukani -Alireza Mostafizi -Almero Steyn -Amanvir Sangha -Amjad Masad -Anastasia A -Andre Giron -Andre Z Sanchez -Andreas Möller -Andreas Savvides -Andreas Svensson -Andres Kalle -Andres Suarez -Andrew Clark -Andrew Cobby -Andrew Davey -Andrew Henderson -Andrew Imm -Andrew Kulakov -Andrew Lo -Andrew Poliakov -Andrew Rasmussen -Andrew Rota -Andrew Sokolov -Andrew Zich -Andrey Marchenko -Andrey Okonetchnikov -Andrey Popp <8mayday@gmail.com> -Andrey Safronov -Andy Edwards -Ankeet Maini -Anthony van der Hoorn -Anto Aravinth -Antonio Ruberto -Antti Ahti -António Nuno Monteiro -Anuj Tomar -Anuja Ware -AoDev -April Arcus -Areeb Malik -Aria Buckles -Aria Stewart -Arian Faurtosh -Arni Fannar -Arshabh Kumar Agarwal -Artem Nezvigin -Arthur Gunn -Ashish -Austin Wright -Avinash Kondeti -Ayman Osman -B.Orlov -BDav24 -BEAUDRU Manuel -Baraa Hamodi -Bartosz Kaszubowski -Basarat Ali Syed -Battaile Fauber -Beau Smith -Ben Anderson -Ben Berman -Ben Brooks -Ben Foxall -Ben Halpern -Ben Jaffe -Ben Moss -Ben Newman -Ben Ripkens -Benedikt Meurer -Benjamin Keen -Benjamin Leiken -Benjamin Woodruff -Benjy Cui -Benoit Girard -Benton Rochester -Bernard Lin -Bill Blanchard -Bill Fisher -Billy Shih -Blaine Hatab -Blaine Kasten -Bob Eagan -Bob Ralian -Bob Renwick -Bobby -Bogdan Chadkin -Bojan Mihelac -Boris Yankov -Brad Vogel -Bradford -Bradley Spaulding -Brandon Bloom -Brandon Dail -Brandon Tilley -Brenard Cubacub -Brent Vatne -Brian Cooke -Brian Emil Hartz -Brian Holt -Brian Hsu -Brian Kim -Brian Kung -Brian Reavis -Brian Rue -Brian Vaughn -Bruce Harris -Bruno Heridet -Bruno Škvorc -Bryan Braun -CT Wu -Cam Song -Cam Spiers -Cameron Chamberlain -Cameron Matheson -Carolina Powers -Carter Chung -Cassus Adam Banko -Cat Chen -Cedric Sohrauer -Cesar William Alvarenga -Chad Fawcett -Changsoon Bok -Charles Marsh -Charlie Garcia -Chase Adams -Cheng Lou -Chitharanjan Das -Chris -Chris Bolin -Chris Grovers -Chris Ha -Chris Pearce -Chris Rebert -Chris Sciolla -Christian Alfoni -Christian Oliff -Christian Roman -Christoffer Sawicki -Christoph Pojer -Christophe Hurpeau -Christopher Monsanto -Claudio Brandolino -Clay Allsopp -Clay Miller -Clement Hoang -CodinCat -Cody Reichert -Colin Wren -Connor McSheffrey -Conor Hastings -Constantin Gavrilete -Cory House -Cotton Hou -Craig Akimoto -Cristovao Verstraeten -DQNEO -Dai Nguyen -Damian Nicholson -Damien Pellier -Damien Soulard -Dan Abramov -Dan Fox -Dan Schafer -DanZeuss -Daniel Carlsson -Daniel Cousens -Daniel Friesen -Daniel Gasienica -Daniel Hejl -Daniel Hejl -Daniel Liburd -Daniel Lo Nigro -Daniel Mané -Daniel Miladinov -Daniel Rodgers-Pryor -Daniel Rosenwasser -Daniel Rotter -Daniel Schonfeld -Daniela Borges -Danilo Vitoriano -Danny Ben-David -Danny Hurlburt -Darcy -Daryl Lau -Darío Javier Cravero -Dave Galbraith -Dave Lunny -Dave Voyles -David Aurelio -David Baker -David Beitey -David Ed Mellum -David Goldberg -David Granado -David Greenspan -David Hellsing -David Hu -David Khourshid -David Mininger -David Neubauer -David Percy -Dean Shi -Denis Laxalde -Denis Pismenny -Denis Sokolov -Deniss Jacenko -Dennis Johnson -Desmond Brand -Devedse <2350015+devedse@users.noreply.github.com> -Devinsuit -Devon Blandin -Devon Harvey -Dheeraj Kumar -Dhyey Thakore -Diego Muracciole -Dima Beznos -Dimzel Sobolev -Dmitri Zaitsev -Dmitrii Abramov -Dmitriy Kubyshkin -Dmitriy Rozhkov -Dmitry Blues -Dmitry Mazuro -Dmitry Zhuravlev-Nevsky -Domenico Matteo -Dominic Gannaway -Don Abrams -Dongsheng Liu -Duke Pham -Dustan Kasten -Dustin Getz -Dylan Harrington -Dylan Kirby -Edgar (Algebr) -Eduard -Eduardo Garcia -Edvin Erikson -Elaine Fang -Eli White -Enguerran -Eoin Hennessy -Eric Churchill -Eric Clemmons -Eric Douglas -Eric Eastwood -Eric Elliott -Eric Florenzano -Eric Matthys -Eric Nakagawa -Eric O'Connell -Eric Pitcher -Eric Sakmar -Eric Schoffstall -Erik Harper -Erik Hellman -Espen Hovlandsdal -Esteban -Eugene -EugeneGarbuzov -Evan Coonrod -Evan Jacobs -Evan Scott -Evan Vosberg -Fabio M. Costa -Fabrizio Castellarin -Faheel Ahmad -Fatih -Federico Rampazzo -Felipe Oliveira Carvalho -Felix Gnass -Felix Kling -Fernando Alex Helwanger -Fernando Correia -Fernando Montoya -Filip Hoško -Filip Spiridonov -Flarnie Marchan -Fokke Zandbergen -Frank Yan -Frankie Bagnardi -François Chalifour -François-Xavier Bois -Fraser Haer -Fred Zhao -Freddy Rangel -Fyodor Ivanishchev -G Scott Olson -G. Kay Lee -Gabe Levi -Gabriel Lett Viviani -Gajus Kuizinas -Gant Laborde -Gareth Nicholson -Garmash Nikolay -Garren Smith -Garrett McCullough -Gavin McQuistin -Gaëtan Renaudeau -Geert Pasteels -Geert-Jan Brits -George A Sisco III -Georgii Dolzhykov -Gert Hengeveld -Giamir Buoncristiani -Gil Chen-Zion -Gilbert -Giorgio Polvara -Giuseppe -Glen Mailer -Grant Timmerman -Greg Hurrell -Greg Palmer -Greg Perkins -Greg Roodt -Gregory -Grgur Grisogono -Griffin Michl -Guangqiang Dong -Guido Bouman -Guilherme Oenning -Guilherme Ruiz -Guillaume Claret -Harry Hull -Harry Marr -Harry Moreno -Harshad Sabne -Hekar Khani -Hendrik Swanepoel -Henrik Nyh -Henry Harris -Henry Wong -Henry Zhu -Hideo Matsumoto -Hikaru Suido -Hiroyuki Wada -Hou Chia -Huang-Wei Chang -Hugo Agbonon -Hugo Jobling -Hyeock Kwon -Héctor Ramos -Héliton Nordt -Ian Obermiller -Ian Sutherland -Ignacio Carbajo -Igor Scekic -Ike Peters -Ilia Pavlenkov -Ilya Gelman -Ilya Shuklin -Ilyá Belsky -Ingvar Stepanyan -Irae Carvalho -Isaac Salier-Hellendag -Islam Sharabash -Iurii Kucherov -Ivan <15101126742@163.com> -Ivan Kozik -Ivan Krechetov -Ivan Vergiliev -Ivan Zotov -J. Andrew Brassington -J. Renée Beach -JD Isaacks -JJ Weber -JW -Jack -Jack Cross -Jack Ford -Jack Zhang -Jackie Wung -Jackson Huang -Jacob Gable -Jacob Greenleaf -Jacob Lamont -Jae Hun Lee -Jae Hun Ro -Jaeho Lee -Jaime Mingo -Jake Boone -Jake Worth -Jakub Malinowski -James -James Brantly -James Burnett -James Friend -James Ide -James Long -James Pearce -James Seppi -James South -James Wen -Jamie Wong -Jamis Charles -Jamison Dance -Jan Hancic -Jan Kassens -Jan Raasch -Jan Schär -Jane Manchun Wong -Jared Forsyth -Jared Fox -Jarrod Mosen -Jason -Jason Bonta -Jason Grlicky -Jason Ly -Jason Miller -Jason Quense -Jason Trill -Jason Webster -Jay Jaeho Lee -Jay Phelps -Jayen Ashar -Jean Lauliac -Jed Watson -Jeff Barczewski -Jeff Carpenter -Jeff Chan -Jeff Hicken -Jeff Kolesky -Jeff Morrison -Jeff Welch -Jeffrey Lin -Jeffrey Wan -Jen Wong -Jeremy Fairbank -Jess Telford -Jesse Skinner -Jignesh Kakadiya -Jim OBrien -Jim Sproch -Jiminikiz -Jimmy Jea -Jing Chen -Jinwoo Oh -Jinxiu Lee -Jirat Ki -Jiyeon Seo -Jody McIntyre -Joe Critchley -Joe Stein -Joel Auterson -Joel Denning -Joel Sequeira -Johan Tinglöf -Johannes Baiter -Johannes Emerich -Johannes Lumpe -John Heroy -John Longanecker -John Ryan -John Watson -John-David Dalton -Jon Beebe -Jon Bretman -Jon Chester -Jon Hester -Jon Madison -Jon Scott Clark -Jon Tewksbury -Jonas Enlund -Jonas Gebhardt -Jonathan Hsu -Jonathan Persson -Jordan Harband -Jordan Walke -Jorrit Schippers -Joseph Nudell -Joseph Savona -Josh Bassett -Josh Duck -Josh Hunt -Josh Perez -Josh Yudaken -Joshua Evans -Joshua Go -Joshua Goldberg -Joshua Ma -João Valente -Juan -Juan Serrano -Julen Ruiz Aizpuru -Julian Viereck -Julien Bordellier -Julio Lopez -Jun Kim -Jun Wu -Juraj Dudak -Justas Brazauskas -Justin -Justin Grant -Justin Jaffray -Justin Robison -Justin Woo -KB -Kale -Kamron Batman -Karl Horky -Karl Mikkelsen -Karpich Dmitry -Karthik Balakrishnan -Karthik Chintapalli -Kateryna -Kaylee Knowles -KeicaM -Keito Uchiyama -Ken Powers -Kenneth Chau -Kent C. Dodds -Kevin Cheng <09chengk@gmail.com> -Kevin Coughlin -Kevin Huang -Kevin Lacker -Kevin Lau -Kevin Lin -Kevin Old -Kevin Robinson -Kevin Suttle -Kewei Jiang -Keyan Zhang -Kier Borromeo -Kiho · Cham -KimCoding -Kirk Steven Hansen -Kit Randel -Kite -Kohei TAKATA -Koo Youngmin -Krystian Karczewski -Kunal Mehta -Kurt Furbush -Kurt Ruppel -Kurt Weiberth -Kyle Kelley -Kyle Mathews -Laurence Rowe -Laurent Etiemble -Lee Byron -Lee Jaeyoung -Lee Sanghyeon -Lei -Leland Richardson -Leon Fedotov -Leon Yip -Leonardo YongUk Kim -Levi Buzolic -Levi McCallum -Lewis Blackwood -Liangzhen Zhu -Lily -Linus Unnebäck -Lipis -Liz -Logan Allen -Lovisa Svallingson -Lucas -Ludovico Fischer -Luigy Leon -Luke Belliveau -Luke Horvat -MICHAEL JACKSON -MIKAMI Yoshiyuki -Maciej Kasprzyk -Maher Beg -Maksim Shastsel -Manas -Marcelo Alves -Marcin K. -Marcin Kwiatkowski -Marcin Mazurek -Marcin Szczepanski -Marcio Puga -Marcos Ojeda -Marcy Sutton -Mariano Desanze -Mario Souto -Marius Skaar Ludvigsen -Marjan -Mark Anderson -Mark Funk -Mark Hintz -Mark IJbema -Mark Murphy -Mark Pedrotti -Mark Penner -Mark Richardson -Mark Rushakoff -Mark Sun -Marks Polakovs -Marlon Landaverde -Marshall Bowers -Marshall Roch -Martin Andert -Martin Hochel -Martin Hujer -Martin Jul -Martin Konicek -Martin Mihaylov -Martin V -Masaki KOBAYASHI -Mateusz Burzyński -Mathieu M-Gosselin -Mathieu Savy -Matias Singers -Matsunoki -Matt Brookes -Matt Dunn-Rankin -Matt Harrison -Matt Huggins -Matt Stow -Matt Zabriskie -Matthew Dapena-Tretter -Matthew Herbst -Matthew Hodgson -Matthew Johnston -Matthew King -Matthew Looi -Matthew Miner -Matthew Shotton -Matthias Le Brun -Matti Nelimarkka -Mattijs Kneppers -Max Donchenko -Max F. Albrecht <1@178.is> -Max Heiber -Max Stoiber -Maxi Ferreira -Maxim Abramchuk -Maxwel D'souza -Merrick Christensen -Mert Kahyaoğlu -Michael Chan -Michael Jackson -Michael McDermott -Michael O'Brien -Michael Randers-Pehrson -Michael Ridgway -Michael Sinov -Michael Terry -Michael Warner -Michael Wiencek -Michael Ziwisky -Michal Srb -Michał Ordon -Michał Pierzchała -Michele Bertoli -Michelle Todd -Michiya -Mihai Parparita -Mike D Pilsbury -Mike Groseclose -Mike Nordick -Mikhail Osher -Mikolaj Dadela -Miles Johnson -Miller Medeiros -Minwe LUO -Minwei Xu -Miorel Palii -Mitchel Humpherys -Mitermayer Reis -Moacir Rosa -Mojtaba Dashtinejad -Morhaus -Moshe Kolodny -Mouad Debbar -Murad -Murray M. Moss -Murtaza Haveliwala -NE-SmallTown -Nadeesha Cabral -Naman Goel -Nate -Nate Hunzaker -Nate Lee -Nate Norberg -Nathan Hardy -Nathan Smith -Nathan White -Nee <944316342@qq.com> -Neo -Neri Marschik -NestorTejero -Nguyen Truong Duy -Nicholas Bergson-Shilcock -Nicholas Clawson -Nick Balestra -Nick Fitzgerald -Nick Gavalas -Nick Kasten -Nick Merwin -Nick Presta -Nick Raienko -Nick Thompson -Nick Williams -Nik Nyby -Nikita Lebedev -Niklas Boström -Nikoloz Buligini -Nima Jahanshahi -Ning Xia -Niole Nelson -Nolan Lawson -Nuno Campos -OJ Kwon -Oiva Eskola -Oleg -Oleksii Markhovskyi -Oliver Zeigermann -Olivier Tassinari -Omid Hezaveh -Oscar Bolmsten -Oskari Mantere -Owen Coutts -Pablo Lacerda de Miranda -Paolo Moretti -Pascal Hartig -Patrick -Patrick Finnigan -Patrick Laughlin -Patrick Stapleton -Paul Benigeri -Paul Harper -Paul Kehrer -Paul Manta -Paul O’Shannessy -Paul Seiffert -Paul Shen -Pedro Nauck -Pete Hunt -Peter Blazejewicz -Peter Cottle -Peter Jaros -Peter Newnham -Peter Ruibal -Petri Lehtinen -Petri Lievonen -Phil Quinn -Phil Rajchgot -Philip Jackson -Philipp Spieß -Pieter De Baets -Pieter Vanderwerff -Piotr Czajkowski -Piper Chester -Pontus Abrahamsson -Pouja Nikray -Prathamesh Sonpatki -Prayag Verma -Preston Parry -Qin Junwen -RSG -Rachel D. Cartwright -Rafael -Rafael Angeline -Rafal Dittwald -Ragnar Þór Valgeirsson -Rahul Gupta -Rainer Oviir -Raito Bezarius -Rajat Sehgal -Rajiv Tirumalareddy -Ram Kaniyur -Randall Randall -Ray -Ray Dai -Raymond Ha -Reed Loden -Remko Tronçon -Ricardo -Rich Harris -Richard -Richard D. Worth -Richard Feldman -Richard Kho -Richard Littauer -Richard Livesey -Richard Maisano -Richard Roncancio -Richard Wood -Richie Thomas -Rick Beerendonk -Rick Ford -Riley Tomasek -Rob Arnold -Robert Binna -Robert Chang -Robert Haritonov -Robert Kielty -Robert Knight -Robert Martin -Robert Sedovsek -Robin Berjon -Robin Frischmann -Robin Ricard -Roderick Hsiao -Rodrigo Pombo -Rohan Nair -Roman Liutikov -Roman Matusevich -Roman Pominov -Roman Vanesyan -Rui Araújo -Russ -Ryan Lahfa -Ryan Seddon -Ryo Shibayama -Sahat Yalkabov -Saif Hakim -Saiichi Hashimoto -Sakina Crocker -Sam Balana -Sam Beveridge -Sam Saccone -Sam Selikoff -Samer Buna -Samuel -Samuel Hapák -Samuel Reed -Samuel Scheiderich -Samy Al Zahrani -Sander Spies -Sasha Aickin -Sassan Haradji -Satoshi Nakajima -Scott -Scott Burch -Scott Feeney -Sean Gransee -Sean Kinsey -Sean Smith -Seba -Sebastian Markbåge -Sebastian McKenzie -Senin Roman -Seoh Char -Sercan Eraslan -Serg -Sergey Generalov -Sergey Rubanov -Seyi Adebajo -Shane O'Sullivan -Shaun Trennery -ShihChi Huang -Shim Won -Shinnosuke Watanabe -Shogun Sea -Shota Kubota -Shripad K -Shubheksha Jalan -Shuhei Kagawa -Sibi -Simen Bekkhus -Simon Højberg -Simon Welsh -Simone Vittori -Skasi -Snowmanzzz(Zhengzhong Zhao) -Soichiro Kawamura -Soo Jae Hwang -Sophia -Sophia Westwood -Sophie Alpert -Sota Ohara -Spen Taylor -Spencer Ahrens -Spencer Handley -Sriram Thiagarajan -Stefan Dombrowski -Stephen John Sorensen -Stephen Murphy -Stephie -Sterling Cobb -Steve Baker <_steve_@outlook.com> -Steve Mao -Steven Luscher -Steven Syrek -Steven Vachon -Stolenkid -Stoyan Stefanov -Stuart Harris -SunHuawei -Sundeep Malladi -Sung Won Cho -Sunny Juneja -Sunny Ripert -Superlaziness -Sven Helmberger -Sverre Johansen -Swaroop SM -Sébastien Lorber -Sławomir Laskowski -Taegon Kim -Taeho Kim -Taehwan, No -Tanase Hagi -Tanner -Tay Yang Shun -Ted Kim -TedPowers -Tengfei Guo -Teodor Szente -Tetsuharu OHZEKI -Tetsuya Hasegawa -Thibaut Rizzi -Thomas Aylott -Thomas Boyt -Thomas Broadley -Thomas Reggi -Thomas Röggla -Thomas Shaddox -Thomas Shafer -ThomasCrvsr -Tiago Fernandez -Tienchai Wirojsaksaree -Tim Routowicz -Tim Schaub -Timothy Yung -Timur Carpeev -Tobias Reiss -Tom Duncalf -Tom Gasson -Tom Haggie -Tom Hauburger -Tom MacWright -Tom Occhino -Tomasz Kołodziejski -Tomoya Suzuki -Tomáš Hromada -Tony Rossi -Tony Spiro -Toru Kobayashi -Trevor Smith -Trinh Hoang Nhu -Troy DeMonbreun -Tsung Hung -Tyler Brock -Tyler Buchea -Tyler Deitz -Ujjwal Ojha -Uladzimir Havenchyk -Usman -Ustin Zarubin -Vadim Chernysh -Valentin Shergin -Van der Auwermeulen Grégoire -Varayut Lerdkanlayanawat -Varun Bhuvanendran -Varun Rau -Vasiliy Loginevskiy -Vedat Mahir YILMAZ -Veljko Tornjanski -Vesa Laakso -Victor Alvarez -Victor Homyakov -Victor Koenders -Victoria Quirante -Vikash Agrawal -Ville Immonen -Vincent Riemer -Vincent Siao -Vincent Taing -Vipul A M -Vitaliy Potapov -Vitaly Kramskikh -Vitor Balocco -Vjeux -Vladimir Kovpak -Vladimir Tikunov -Volkan Unsal -Wander Wang -Wayne Larsen -Weizenlol -Whien -WickyNilliams -Will Myers -William Hoffmann -Wincent Colaiuta -Wout Mertens -Xavier Morel -XuefengWu -Yakov Dalinchuk -Yan Li -Yasar icli -Yaxian -YouBao Nong -Yuichi Hagio -Yura Chuchola -Yuriy Dybskiy -Yusong Liu -Yutaka Nakajima -Yuval Dekel -Zac Braddy -Zac Smith -Zach Bruggeman -Zach Ramaekers -Zacharias -Zeke Sikelianos -Zhangjd -adraeth -ankitml -arush -bel3atar -brafdlog -brillout -chen -chocolateboy -cjshawMIT -clariroid -claudiopro -cloudy1 -comerc -cutbko -davidxi -dfrownfelter -djskinner -dongmeng.ldm -everdimension -gillchristian -gitanupam -guoyong yi <451417726@qq.com> -hanumanthan -hao.huang -hjmoss -hkal -iamchenxin -iamdoron -iawia002 -imagentleman -imjanghyuk -inkinworld -jaaberg -jddxf <740531372@qq.com> -jinmmd -koh-taka -kohashi85 -ksvitkovsky -laiso -lamo2k123 -leeyoungalias -li.li -lucas -maxprafferty -mdogadailo -mfijas -mguidotto -mondaychen -najisawas -neeldeep -newvlad -nhducit -ogom -pingan1927 -rgarifullin -saiyagg -scloudyy -segmentationfaulter -shifengchen -songawee -starkch -sugarshin -tokikuch -ventuno -wacii -wali-s -walrusfruitcake -yiminghe -youmoo -yuntao.qyt -z.ky -zhangjg -zhangs -zombieJ -zwhitchcox -Árni Hermann Reynisson -元彦 -凌恒 -张敏 -王晓勇 -龙海燕 <1250766229@qq.com> diff --git a/CHANGELOG-canary.md b/CHANGELOG-canary.md index 6040a0b246cb..048f6a542e64 100644 --- a/CHANGELOG-canary.md +++ b/CHANGELOG-canary.md @@ -1,3 +1,8 @@ +## March 22, 2024 (18.3.0-canary-670811593-20240322) + +## React +- Added `useActionState` to replace `useFormState` and added `pending` value ([#28491](https://github.com/facebook/react/pull/28491)). + ## October 5, 2023 (18.3.0-canary-546178f91-20231005) ### React diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f6df415e32a..a76c66692c00 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,28 @@ +## 18.3.1 (April 26, 2024) + +- Export `act` from `react` [f1338f](https://github.com/facebook/react/commit/f1338f8080abd1386454a10bbf93d67bfe37ce85) + +## 18.3.0 (April 25, 2024) + +This release is identical to 18.2 but adds warnings for deprecated APIs and other changes that are needed for React 19. + +Read the [React 19 Upgrade Guide](https://react.dev/blog/2024/04/25/react-19-upgrade-guide) for more info. + +### React + +- Allow writing to `this.refs` to support string ref codemod [909071](https://github.com/facebook/react/commit/9090712fd3ca4e1099e1f92e67933c2cb4f32552) +- Warn for deprecated `findDOMNode` outside StrictMode [c3b283](https://github.com/facebook/react/commit/c3b283964108b0e8dbcf1f9eb2e7e67815e39dfb) +- Warn for deprecated `test-utils` methods [d4ea75](https://github.com/facebook/react/commit/d4ea75dc4258095593b6ac764289f42bddeb835c) +- Warn for deprecated Legacy Context outside StrictMode [415ee0](https://github.com/facebook/react/commit/415ee0e6ea0fe3e288e65868df2e3241143d5f7f) +- Warn for deprecated string refs outside StrictMode [#25383](https://github.com/facebook/react/pull/25383) +- Warn for deprecated `defaultProps` for function components [#25699](https://github.com/facebook/react/pull/25699) +- Warn when spreading `key` [#25697](https://github.com/facebook/react/pull/25697) +- Warn when using `act` from `test-utils` [d4ea75](https://github.com/facebook/react/commit/d4ea75dc4258095593b6ac764289f42bddeb835c) + +### React DOM +- Warn for deprecated `unmountComponentAtNode` [8a015b](https://github.com/facebook/react/commit/8a015b68cc060079878e426610e64e86fb328f8d) +- Warn for deprecated `renderToStaticNodeStream` [#28874](https://github.com/facebook/react/pull/28874) + ## 18.2.0 (June 14, 2022) ### React DOM diff --git a/README.md b/README.md index c1a8c800546e..91566ab848a3 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ The documentation is divided into several sections: * [Where to Get Support](https://react.dev/community) * [Contributing Guide](https://legacy.reactjs.org/docs/how-to-contribute.html) -You can improve it by sending pull requests to [this repository](https://github.com/reactjs/reactjs.org). +You can improve it by sending pull requests to [this repository](https://github.com/reactjs/react.dev). ## Examples diff --git a/ReactVersions.js b/ReactVersions.js index ef97ee7e3afc..14e3ba57c452 100644 --- a/ReactVersions.js +++ b/ReactVersions.js @@ -7,18 +7,18 @@ // // The @latest channel uses the version as-is, e.g.: // -// 18.3.0 +// 19.0.0 // // The @canary channel appends additional information, with the scheme // -