docs/react-wiki-archive/new-release-process---v9-packages.md
9.0.0-<prerelease-type>.0@fluentui/react-components suite. They can be used by installing independent package.react-components/unstable is frozen and deprecated - this api cannot be changed in any way^ within package.json dependencies (no more pinned versions for pre-releases needed)*-preview packages are part of our official storybook public docs right after 1st release
0.major.(minor|patch) pattern
minorpatch_unstable suffixes for hooks/utilities?Any utilities that are in a stable package cannot be broken. Therefore, the purpose of the _unstable suffix has changed. If the owner feels confident that the API of that hook/utility has a sufficient level of extensibility, there is no need for a suffix. However, if there are doubts about the implementation that can be addressed in the future the _unstable suffix can communicate that to users. A stable version (i.e. one without the suffix) can be reserved for future use once there is more confidence the use case or functionality.
Any hooks/utilities with the _unstable suffix cannot be removed and cannot be broken until the next major version.
9.0.0-alpha.x):<details> Let's say you have already created `packages/react-components/react-control` package which is in unstable phase.All packages migration PR https://github.com/microsoft/fluentui/pull/28474
Follow these steps:
mv packages/react-components/react-control packages/react-components/react-control-preview
mv packages/react-components/react-control/etc/react-control.api.md packages/react-components/react-control/etc/react-control-preview.api.md
README.md-# @fluentui/react-control-preview
+# @fluentui/react-control
package.json{
- "name": "@fluentui/react-control",
+ "name": "@fluentui/react-control-preview",
- "version": "9.0.0-alpha.0",
+ "version": "0.0.0",
"beachball": {
"disallowedChangeTypes": [
"major",
- "minor",
- "patch",
+ "prerelease"
]
},
}
project.json{
- "name": "@fluentui/react-control",
+ "name": "@fluentui/react-control-preview",
}
jest.config.jsmodule.exports = {
- displayName: 'react-control',
+ displayName: 'react-control-preview',
}
tsconfig.base.json and tsconfig.base.all.json"paths": {
- "@fluentui/react-control": ["packages/react-components/react-control/src/index.ts"]
+ "@fluentui/react-control-preview": ["packages/react-components/react-control-preview/src/index.ts"]
}
/github/CODEOWNERS-packages/react-components/react-control @microsoft/<team-name>
+packages/react-components/react-control-preview @microsoft/<team-name>
9.0.0-(alpha|beta|rc).x:automation PR in progress https://github.com/microsoft/fluentui/pull/28481
Following chapters describe required steps for each phase. All of them are generated so it's only a matter of invoking proper generator.
Following graph sums those steps as well https://github.com/microsoft/fluentui/blob/master/tools/workspace-plugin/src/generators/prepare-initial-release/README.md#v9-release-process-flow
automation status: implemented ✅ / https://github.com/microsoft/fluentui/pull/28474
Bootstrap new package, via yarn create-package
yarn create-package
# triggers standard prompt
? Package name (do NOT include @fluentui prefix): react-hello
This will do the usual scaffolding and adds -preview suffix to the package name automatically
automation status: implemented ✅ / https://github.com/microsoft/fluentui/pull/28505
yarn nx g @fluentui/workspace-plugin:prepare-initial-release --project @fluentui/react-one-preview --phase=preview
automation status: implemented ✅ / https://github.com/microsoft/fluentui/pull/28505
yarn nx g @fluentui/workspace-plugin:prepare-initial-release --project @fluentui/react-one-preview --phase=stable
*-preview package version on npm on CI during release