# Version 8 upgrade in Teams
### Non-duplicate-code upgrade plan
1. Finish upgrade to v0.51 which includes v7 deps
3. Release 0.51.x with v8 @fluentui/date-time-utilities ONLY
- Jan 7 - done
5. Upgrade Teams' OUFR v7 to @fluentui v8 AND react-northstar v0.51.x
4. No code change to react-northstar experiences
5. Code changes required in Teams' Calendar to v8
6. Puts all utils on v8, no duplicates :)
7. Free to relase 0.52 using all v8 deps OR some future v9 all together
___

Horizontal lines represent release cadence and planning between v7 and v0, not actual code sharing. Vertical red lines represent some code sharing. Gray is potential timelines.
## References
[Teams (TMP) code]( https://domoreexp.visualstudio.com/Teamspace/_git/teams-modular-packages?path=%2Fpackage.json&version=GBbrgriss%2Ffluent50-upgrade&line=285&lineEnd=286&lineStartColumn=1&lineEndColumn=1&lineStyle=plain)
[ODSP code](https://onedrive.visualstudio.com/OneDriveWeb/_search?action=contents&text=%40ms%2Fitems-view-addon-recent&type=code&lp=code-Project&filters=ProjectFilters%7BOneDriveWeb%7DRepositoryFilters%7Bodsp-common%7D&pageSize=25&result=DefaultCollection%2FOneDriveWeb%2Fodsp-common%2FGBmaster%2F%2Fitems-view%2Faddon-recent%2Fpackage.json)
## Action items
- [ ] Reach out to Teams (Amit Sehgal) on upgrading to `@fluentui/react@v8`
- [ ] Reach out to ODSP (Thomas) on supporting v8 for these dependencies TMP uses:
- @ms/file-picker@0.2.1098-hotfix.31
- @ms/items-view-addon-recent@0.26.540-hotfix.31
- @ms/items-view-addon-graph@1.83.8-hotfix.21
- @ms/items-view-addon-recent@0.26.540-hotfix.31
- @ms/items-view-addon-sp@2.242.9-hotfix.31
- @ms/items-view@2.192.0-hotfix.10
- @ms/jsgrid@1.50.27-hotfix.21
- @ms/odsp-datasources@40.13.0-hotfix.14
- @ms/odsp-list-utilities@11.25.382-hotfix.20
- @ms/odsp-shared@24.18.47-hotfix.3
- @ms/shared-react-client-form@0.23.4-hotfix.20
- @ms/shared-react-column-management-panel@0.14.67-hotfix.20
- @ms/shared-react-hyperlink-control@0.1.101-hotfix.14
- @ms/shared-react-item-activity@0.4.194-hotfix.14
- @ms/shared-react-item-hover-card@1.11.5-hotfix.20
- @ms/shared-react-location-picker@0.2.429-hotfix.14
- @ms/shared-react-people-picker@0.4.422-hotfix.14
- @ms/shared-react-tree-control@0.6.3-hotfix.0
- @ms/sp-client-shared@>=0.3.3 <1.0.0
- @ms/utilities-custom-formatter@0.18.26-hotfix.3
- @ms/utilities-react-drag-drop@0.10.12-hotfix.3
- [ ] [Upgrade OUFR v7 to v8 in TMP](https://hackmd.io/gDWWhWRSQ_6QzZD0NEkc1A#Non-duplicate-code-upgrade-plan)
- [ ] Learn from this experience and plan correctly for v9 release. Here is a [very draft proposal](https://hackmd.io/gDWWhWRSQ_6QzZD0NEkc1A?both#Proposal-for-v9-release).
### Conflicted packages
*Context: TMP doesn't allow installing different versions of the same package. We have a few packages which are shared between `react-northstar` and `react`.* As part of `react@v8`, we renamed/major bumped these shared packages.
The packages are:
@fluentui/utilities (renamed)
@fluentui/merge-styles (renamed)
@fluentui/set-version (renamed)
@fluentui/dom-utilities
@fluentui/date-time-utilities
@fluentui/react-compose
### Proposal for v9 release
*Based on the existing pain points we learnt from v8 upgrade, here is a proposal for v9 release.*
As we go from `v8` to `v9`, `react-northstar` and `react` will only share more and more packages. The upgrade story for TMP will likely be that `react` and `react-northstar` need to always be upgraded together. If that's the case, I suggest we lock-step major version for `react` and `react-northstar` starting `v9`. That is, by the time `react` major release `v9`, we will also be major releasing `react-northstar@v9`. Of course, we should be planning closely together what changes are part of `v9` and ensure we have a coherent story for both `react-northstar` and `react` users.
Here are some related work we should plan for doing:
1. Get `react-northstar` to be published in similar cadence as `react` starting `v9`. We should strive to have same version bumping logic (e.g. same definitions for `patch`, `minor`, `major` changes).
2. Flat packages in `packages/fluentui/*` into `packages/*`. This is not directly related to our plan to converge release cadence. But having a converged release cadance can allow us to flat the packages more easily. More importantly, this helps reduce the mental barrier between `northstar` and `react` packages in our repo, which will be a step forward in terms of convergence.
## Thoughts
In order to share code in our repo, we need to solve problems right now:
1. Upgrade partner TMP on latest versions of our pacakges
- Options:
- TMP can change their policy to allow installing dups of fluentui packages (Next step: work with TMP)
- Upgrade ODSP dependencies and `OUFR` v7 to v8 (Too expensive)
2. Dev inner loop work (converge build)
3. Release