Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

☂️ React Native Monorepo #34692

Closed
11 tasks done
cortinico opened this issue Sep 14, 2022 · 14 comments
Closed
11 tasks done

☂️ React Native Monorepo #34692

cortinico opened this issue Sep 14, 2022 · 14 comments
Labels
☂️ Umbrella To label issues that serve as coordination point and drivers for tasks in the react-native repo RN Team Tech: Monorepo For PRs that are related to the monorepo infra

Comments

@cortinico
Copy link
Contributor

cortinico commented Sep 14, 2022

Hey all,
I'm opening this task to keep track of the effort to implement the React Native Monorepo RFC:

In this first phase of the work, we're looking into only:

  • Renaming the packages under packages/ (i.e. updating the name field) to follow the naming convention suggested in the RFC (@react-native/...)
  • Updating the version to be 0.71.0
    And the necessary related infra.

At this stage we're not looking into renaming the folders of such packages.

Here the list of tasks that needs to be handled:

All the related PRs/Issues for this effort are labelled as Tech: Monorepo.

When doing one of those tasks, first let's make sure the CI is green first (specifically the test_js task). Once your PR is green, we're going to import it internally, and expect some turnaround time as those changes are going to require internal changes on our end as well.

Please comment below if you're willing to take the stance on any of those task and wait for a confirmation before start working on it.

@rahul3002
Copy link

i would like to work on this issue

@cortinico
Copy link
Contributor Author

i would like to work on this issue

The item Rename react-native-gradle-plugin to @react-native/gradle-plugin. No bump needed. is up for grab @rahul3002 👍

@rahul3002
Copy link

I will grab it

@rahul3002
Copy link

hello @cortinico Im getting confused u have assigned some of task so , should I work on them are or they are working

@cortinico
Copy link
Contributor Author

hello @cortinico Im getting confused u have assigned some of task so , should I work on them are or they are working

I've assigned it to you 👍

@cortinico cortinico pinned this issue Sep 22, 2022
@cortinico
Copy link
Contributor Author

Hey all,
Just a heads up that we merged the change that introduces Verdaccio in our OSS infra (kudos to @fortmarek here #34577).

Can I ask you all to rebase your PRs and drive them forward. You should all have a pending comments be me to follow up 👍

@gabrieldonadel
Copy link
Collaborator

@cortinico I would like to help with the Move ReactCommon/hermes/inspector/tools/msggen/package.json inside packages or remove it. task. Would you mind elaborating a little bit more on what's expected? In the case of moving this to the packages folder, should this be renamed to @react-native/msggen or something like that?

@rahul3002
Copy link

noo I'm working on it , kindly find other issue

@cortinico
Copy link
Contributor Author

@cortinico I would like to help with the Move ReactCommon/hermes/inspector/tools/msggen/package.json inside packages or remove it. task. Would you mind elaborating a little bit more on what's expected? In the case of moving this to the packages folder, should this be renamed to @react-native/msggen or something like that?

@gabrieldonadel yes please, you can do so. @rahul3002 is working on another task.
What needs to be done is the following:

  1. Let's rename it to @react-native/hermes-inspector-msggen
  2. Let's make it private as we're not going to publish this
  3. Let's move it to packages/hermes-inspector-msggen
  4. There are some scripts locally that needs to keep on workign once we move the path.
    Let me know if you need further support

facebook-github-bot pushed a commit that referenced this issue Oct 5, 2022
…or-msggen (#34850)

Summary:
This PR renames ` hermes-inspector-msggen` to `react-native/hermes-inspector-msggen`, moves it to  `packages/hermes-inspector-msggen` and makes the package private  as part of RFC480.

Related to #34692

## Changelog

[General] [Changed] - Move and rename `hermes-inspector-msggen` to `react-native/hermes-inspector-msggen`

Pull Request resolved: #34850

Test Plan: run `sh ReactCommon/hermes/inspector/tools/run_msggen`

Reviewed By: mattbfb

Differential Revision: D40060406

Pulled By: cortinico

fbshipit-source-id: e018fd88e8374a69fbd8737fbb9abe7565d4a003
@cipolleschi cipolleschi unpinned this issue Oct 5, 2022
hoxyq pushed a commit to hoxyq/react-native that referenced this issue Nov 16, 2022
…ills

Summary:
Changelog:
[General][Changed] - renamed polyfills package to js-polyfills as a part of [migration to monorepo structure](facebook#34692)

Differential Revision: https://internalfb.com/D41190595

fbshipit-source-id: 8158c8c2c4f5bf013e8cde5111d880d7929e426c
hoxyq pushed a commit to hoxyq/react-native that referenced this issue Nov 16, 2022
…alize-colors

Summary:
Changelog:
[General][Changed] - renamed normalize-color package to normalize-colors as a part of [migration to monorepo structure](facebook#34692)

Differential Revision: https://internalfb.com/D41264764

fbshipit-source-id: 19b0e74e99a1c288c8c6d5abc0eb50b8a6515d9f
hoxyq pushed a commit to hoxyq/react-native that referenced this issue Nov 16, 2022
…@react-native prefix

Summary:
Changelog:
[General][Changed] - renamed react-native-community/eslint-config to react-native/eslint-config and bumped to 0.72.0 as a part of [migration to monorepo structure](facebook#34692)
[General][Changed] - renamed react-native-community/eslint-plugin to react-native/eslint-plugin and bumped to 0.72.0 as a part of [migration to monorepo structure](facebook#34692)

Differential Revision: D41340149

fbshipit-source-id: 5124bd2beac92cc35d6c715248e50383a13dce0e
hoxyq pushed a commit to hoxyq/react-native that referenced this issue Nov 17, 2022
…ills

Summary:
Changelog:
[General][Changed] - renamed polyfills package to js-polyfills as a part of [migration to monorepo structure](facebook#34692)

Differential Revision: https://internalfb.com/D41190595

fbshipit-source-id: 918a623cd344edc1e43e12f2eea96fe09f81cb11
hoxyq pushed a commit to hoxyq/react-native that referenced this issue Nov 17, 2022
…alize-colors

Summary:
Changelog:
[General][Changed] - renamed normalize-color package to normalize-colors as a part of [migration to monorepo structure](facebook#34692)

Differential Revision: https://internalfb.com/D41264764

fbshipit-source-id: 82decf15d82cdda8854bb90c30137a81f99ab0cb
hoxyq pushed a commit to hoxyq/react-native that referenced this issue Nov 17, 2022
…@react-native prefix

Summary:
Changelog:
[General][Changed] - renamed react-native-community/eslint-config to react-native/eslint-config and bumped to 0.72.0 as a part of [migration to monorepo structure](facebook#34692)
[General][Changed] - renamed react-native-community/eslint-plugin to react-native/eslint-plugin and bumped to 0.72.0 as a part of [migration to monorepo structure](facebook#34692)

Differential Revision: D41340149

fbshipit-source-id: 46d338580ee79a426965d424dcdab3c7ef276c0c
hoxyq pushed a commit to hoxyq/react-native that referenced this issue Nov 17, 2022
…e-gradle-plugin to @react-native/gradle-plugin

Summary:
Changelog:
[General][Changed] - renamed react-native-gradle-plugin package to react-native/gradle-plugin as a part of [migration to monorepo structure](facebook#34692)

Differential Revision: D41340396

fbshipit-source-id: 451efce3c439a6d0b6fed2af535d4134eacc0287
hoxyq pushed a commit to hoxyq/react-native that referenced this issue Nov 17, 2022
…gen to @react-native/codegen

Summary:
Changelog:
[General][Changed] - renamed react-native-codegen to react-native/codegen as a part of [migration to monorepo structure](facebook#34692)

Differential Revision: D41341064

fbshipit-source-id: c03b935a40b57e184a3ca06ee498417d4910495c
hoxyq pushed a commit to hoxyq/react-native that referenced this issue Nov 17, 2022
…native/assets-registry

Summary:
Changelog:
[General][Changed] - renamed react-native/assets to react-native/assets-registry as a part of [migration to monorepo structure](facebook#34692)

Differential Revision: D41342783

fbshipit-source-id: af1822dd2725f8cb6cb58166db63cd6471995b66
hoxyq pushed a commit to hoxyq/react-native that referenced this issue Nov 17, 2022
…ills

Summary:
Changelog:
[General][Changed] - renamed polyfills package to js-polyfills as a part of [migration to monorepo structure](facebook#34692)

Differential Revision: https://internalfb.com/D41190595

fbshipit-source-id: 929542f9cc4775e7ff8ba6154ee9e45dc56a9d68
hoxyq pushed a commit to hoxyq/react-native that referenced this issue Nov 17, 2022
…alize-colors

Summary:
Changelog:
[General][Changed] - renamed normalize-color package to normalize-colors as a part of [migration to monorepo structure](facebook#34692)

Differential Revision: https://internalfb.com/D41264764

fbshipit-source-id: 2776936c6a5e72e486edb285c65b94da070c7815
hoxyq pushed a commit to hoxyq/react-native that referenced this issue Nov 17, 2022
…@react-native prefix

Summary:
Changelog:
[General][Changed] - renamed react-native-community/eslint-config to react-native/eslint-config and bumped to 0.72.0 as a part of [migration to monorepo structure](facebook#34692)
[General][Changed] - renamed react-native-community/eslint-plugin to react-native/eslint-plugin and bumped to 0.72.0 as a part of [migration to monorepo structure](facebook#34692)

Differential Revision: D41340149

fbshipit-source-id: 32bc9b223355e1d7f0154e854cfb0ae9091fd73b
hoxyq pushed a commit to hoxyq/react-native that referenced this issue Nov 17, 2022
…e-gradle-plugin to @react-native/gradle-plugin

Summary:
Changelog:
[General][Changed] - renamed react-native-gradle-plugin package to react-native/gradle-plugin as a part of [migration to monorepo structure](facebook#34692)

Differential Revision: D41340396

fbshipit-source-id: 9fc58047f3b40410abae4362ffd3002f7a7f5d22
hoxyq pushed a commit to hoxyq/react-native that referenced this issue Nov 17, 2022
…gen to @react-native/codegen

Summary:
Changelog:
[General][Changed] - renamed react-native-codegen to react-native/codegen as a part of [migration to monorepo structure](facebook#34692)

Differential Revision: D41341064

fbshipit-source-id: a033991b9fa5c7090c6132fd1b172970dec39363
hoxyq pushed a commit to hoxyq/react-native that referenced this issue Nov 17, 2022
…native/assets-registry

Summary:
Changelog:
[General][Changed] - renamed react-native/assets to react-native/assets-registry as a part of [migration to monorepo structure](facebook#34692)

Differential Revision: D41342783

fbshipit-source-id: fc202fa2fd58c7e4ad183ca1819d38b060b87395
hoxyq pushed a commit to hoxyq/react-native that referenced this issue Nov 17, 2022
…ills

Summary:
Changelog:
[General][Changed] - renamed polyfills package to js-polyfills as a part of [migration to monorepo structure](facebook#34692)

Differential Revision: https://internalfb.com/D41190595

fbshipit-source-id: ae1effb6f1dbe1e634188974ae3bbcce358005d9
hoxyq pushed a commit to hoxyq/react-native that referenced this issue Nov 17, 2022
…alize-colors

Summary:
Changelog:
[General][Changed] - renamed normalize-color package to normalize-colors as a part of [migration to monorepo structure](facebook#34692)

Differential Revision: https://internalfb.com/D41264764

fbshipit-source-id: 3b5faf389937dfcfa9b61aec78778debc94ae12d
hoxyq pushed a commit to hoxyq/react-native that referenced this issue Nov 17, 2022
…@react-native prefix

Summary:
Changelog:
[General][Changed] - renamed react-native-community/eslint-config to react-native/eslint-config and bumped to 0.72.0 as a part of [migration to monorepo structure](facebook#34692)
[General][Changed] - renamed react-native-community/eslint-plugin to react-native/eslint-plugin and bumped to 0.72.0 as a part of [migration to monorepo structure](facebook#34692)

Differential Revision: D41340149

fbshipit-source-id: 6dc4b85e33189f5e66c26de31d61de18e121b4e4
hoxyq pushed a commit to hoxyq/react-native that referenced this issue Nov 17, 2022
…e-gradle-plugin to @react-native/gradle-plugin

Summary:
Changelog:
[General][Changed] - renamed react-native-gradle-plugin package to react-native/gradle-plugin as a part of [migration to monorepo structure](facebook#34692)

Differential Revision: D41340396

fbshipit-source-id: d1506d7e8045f27b55d2e51471b74f73cd4987a0
hoxyq pushed a commit to hoxyq/react-native that referenced this issue Nov 17, 2022
…gen to @react-native/codegen

Summary:
Changelog:
[General][Changed] - renamed react-native-codegen to react-native/codegen as a part of [migration to monorepo structure](facebook#34692)

Differential Revision: D41341064

fbshipit-source-id: 95813c29b9b8e2ad8d8e501e91cb5cfb5e1e8cd5
hoxyq pushed a commit to hoxyq/react-native that referenced this issue Nov 17, 2022
…native/assets-registry

Summary:
Changelog:
[General][Changed] - renamed react-native/assets to react-native/assets-registry as a part of [migration to monorepo structure](facebook#34692)

Differential Revision: D41342783

fbshipit-source-id: 47c88c7c32bbe6d8e1dfc5f37ecb2209ecd48020
@hoxyq
Copy link
Contributor

hoxyq commented Nov 17, 2022

A quick update on this task so far, since I've flooded it with the references from my PRs.

Seems like all internal problems (from Meta internal code) are resolved, right now I am working on resolving some problems with CircleCI. I will provide more context and details when I will able fully validate the solution.

The main problem is that Yarn workspaces produce packages as a symlinks inside node_modules, which might not work as expected in some build scripts. This is also relevant for Metro, that's why I've changed absolute paths to relevant in some files. As suggested by @cortinico, I am also using Verdaccio for template app tests on CircleCI, since it depends on eslint-config and codegen packages

@kelset
Copy link
Contributor

kelset commented Nov 18, 2022

great stuff @hoxyq 👏

facebook-github-bot pushed a commit that referenced this issue Nov 28, 2022
Summary:
Renamed react-native-codegen package to react-native/codegen and updated references, without changing the folder name; part of RFC480 (#34692). Follow-up from #34578

## Changelog

[General] [Changed] - Renamed react-native-codegen package to react-native/codegen and updated references

<!-- Help reviewers and the release process by writing your own changelog entry. For an example, see:
https://reactnative.dev/contributing/changelogs-in-pull-requests
-->

Pull Request resolved: #34804

Reviewed By: cortinico

Differential Revision: D39883584

Pulled By: hoxyq

fbshipit-source-id: 0ef384b75c6edd248b31e37b8f05f64b4d39ca6f
@hoxyq
Copy link
Contributor

hoxyq commented Dec 6, 2022

Hey, all changes are finally merged 🎉

How it works now

We are using Verdaccio as a local npm registry in three different places in our CI:

  1. Running e2e tests
  2. Building react-native package
  3. Building template package

Each package, which is not marked as private, is being published to Verdaccio. This helps us to resolve the issue that all renamed packages are not yet present in npm registry. This approach should also help in release cycle when we will finally migrate to a proper monorepo structure: we might bump versions of some packages (without publishing them to npm), but they should be always available via Verdaccio.

Known problems

We use command yarn --json workspaces info to get a list of all packages that we publish, but at some point in release CI we remove workspaces from react-native's package.json, so using yarn --json workspaces info results in an error. This was shared by @cipolleschi while working on 0.71.0 release, maybe @kelset can share some details about it.

Next steps

As shared in original proposal, we will be working on setting up CI to automate versions bumping and packages publishing. We have also started a discussions around what to migrate to a separate package and how to make it happen.

@kelset kelset added the ☂️ Umbrella To label issues that serve as coordination point and drivers for tasks in the react-native repo label Dec 8, 2022
@Pranav-yadav
Copy link
Contributor

@cortinico looks like all tasks under this Umbrella are completed.
Any reason to still keep it open?

@kelset
Copy link
Contributor

kelset commented Apr 11, 2023

thanks for the nudge, you are correct. The monorepo work has been completed, so we can close this off.

@kelset kelset closed this as completed Apr 11, 2023
OlimpiaZurek pushed a commit to OlimpiaZurek/react-native that referenced this issue May 22, 2023
…or-msggen (facebook#34850)

Summary:
This PR renames ` hermes-inspector-msggen` to `react-native/hermes-inspector-msggen`, moves it to  `packages/hermes-inspector-msggen` and makes the package private  as part of RFC480.

Related to facebook#34692

## Changelog

[General] [Changed] - Move and rename `hermes-inspector-msggen` to `react-native/hermes-inspector-msggen`

Pull Request resolved: facebook#34850

Test Plan: run `sh ReactCommon/hermes/inspector/tools/run_msggen`

Reviewed By: mattbfb

Differential Revision: D40060406

Pulled By: cortinico

fbshipit-source-id: e018fd88e8374a69fbd8737fbb9abe7565d4a003
OlimpiaZurek pushed a commit to OlimpiaZurek/react-native that referenced this issue May 22, 2023
…k#34804)

Summary:
Renamed react-native-codegen package to react-native/codegen and updated references, without changing the folder name; part of RFC480 (facebook#34692). Follow-up from facebook#34578

## Changelog

[General] [Changed] - Renamed react-native-codegen package to react-native/codegen and updated references

<!-- Help reviewers and the release process by writing your own changelog entry. For an example, see:
https://reactnative.dev/contributing/changelogs-in-pull-requests
-->

Pull Request resolved: facebook#34804

Reviewed By: cortinico

Differential Revision: D39883584

Pulled By: hoxyq

fbshipit-source-id: 0ef384b75c6edd248b31e37b8f05f64b4d39ca6f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
☂️ Umbrella To label issues that serve as coordination point and drivers for tasks in the react-native repo RN Team Tech: Monorepo For PRs that are related to the monorepo infra
Projects
None yet
Development

No branches or pull requests

6 participants