docs/react-v9/contributing/rfcs/react-components/convergence/upgrade-code-location.md
@GeoffCoxMSFT
Partners and customer developers will need some helper code to upgrade from v0 or v8 to v9. This will include
We currently have code for upgrade v8 to v9 in the fluentui-react-upgrade repository. This repository is currently accessibly only within the Microsoft organization. This repo also has the upgrade guide for v8 to v9 which is in progress being moved into the v9 storybook documentation.
So far the few partners that have done flighting of v9 components prefer access to the shim source code that they can extract into their own repositories to modify for their specific flighting scenarios. They have not yet asked for a package of shims to take a dependency on, but prefer to write their own shims if they are not upgrading to v9 directly. They have tended to author their own code-mod scripts.
Where should upgrade helper code live?
This would be separate storybooks under apps/ for v0->v9 and v8->9 that can be composed into the react-components storybook documentation.
Suggested by Micah based on https://www.chromatic.com/docs/composition
Pros
Cons
CHOSEN: This option provides the best dependency management without affecting packages, avoid shipping packages of shims to npm, and encourages the behavior we want by integrating with documentation.
These would be react-upgrade-v8 react-upgrade-v0 packages containing the shim components and functions. These packages would be part of the build, produce storybook content, and publish to npm with semantic versioning.
Pros
Cons
DISCARDED: We don't want to ship these as packages permanently
This would be a folder that is not part of the fluent build. It would contain various folders with shims, code-mod scripts, and example web apps. Readme.md files would indicate who owns the project as a point of contact.
Pros
Cons
DISCARDED: The apps folder already provides a place for things outside packages.
The shims would be components within the storybook stories in react-components, similar to the positioning components. The shims would not ship with the published react-components package (like the current stories).
Pros
Cons
DISCARDED: Cannot take the v0 and v8 dependencies in react-components
Make the upgrade repo public.
Pros
Cons
DISCARDED: The cost of creating a public complient repo for upgrade is too high.
Pros/Cons similar to Option D
DISCARDED (for now): The community contrib repo should be part of a bigger community engagement. We haven't planned that out enough to start with upgrade.
Pros
Cons
DISCARDED: Without a corporate account, these would get lost easily and be too difficult to keep up to date.
None yet