microsoft/react-native-test-app

Support out-of-tree platforms

Opened this issue · 2 comments

Motivation

It's currently hard to add new platforms to RNTA without contributing directly in the repository.

Solution

Move platform folders to separate packages and design a plugin interface so that platforms can be sourced from third-party packages.

Work

  • #1797
    • This work is mostly to reduce the surface area and avoid conflicts
  • Convert the repository to a monorepo
    • We will have to migrate away from semantic-release since it does not support monorepos
  • Move template configuration to their respective platform folders
  • Move platform folders to separate packages
  • Design plugin interface for out-of-tree platform packages

If those items were numbered, then

3- move template config to platform folder, and
5- design plugin interface

...seem like things that could happen in parallel and be backwards compatible with current state? (could be wrong on item 3 and backwards compatible, I am unsure)

My point in mentioning that is that repo reorg vs items 3 and 5 might be pursued separately and if they were, then out-of-tree experimentation could be unblocked and possible immediately by pursuing them with a narrow focus...

My point in mentioning that is that repo reorg vs items 3 and 5 might be pursued separately and if they were, then out-of-tree experimentation could be unblocked and possible immediately by pursuing them with a narrow focus...

I think that's probably right. They can be pursued separately. But doing them in order is probably less churn? At the very least, it should be clearer where the lines are, which in turn should make it easier to find commonalities between the platforms we have today once platform specifics are compartmentalized and extracted.