Skip to content

Commit b62d589

Browse files
committed
fixup! docs(docsite-v9): add package maturity levels docs
1 parent 5d4934b commit b62d589

File tree

1 file changed

+56
-38
lines changed

1 file changed

+56
-38
lines changed

apps/public-docsite-v9/src/Concepts/PackageMaturityLevels.stories.mdx

Lines changed: 56 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -8,46 +8,53 @@ This document explains the different maturity levels of Fluent UI v9 packages to
88

99
## Overview
1010

11-
Fluent UI v9 packages are categorized into three main maturity levels that indicate their stability and readiness for production use:
11+
Fluent UI v9 packages are categorized into four main maturity levels that indicate their stability and readiness for production use:
1212

13-
- **🟢 Stable**: Production-ready packages/components with stable APIs
14-
- **🟡 Preview**: Initial stage of package/component development with intention to be propagated to Stable (part of Fluent core suite)
15-
- **🔵 Compat**: Fluent UI v8 packages/components using solely v9 dependencies and APIs
16-
- **🔴 Deprecated**: Unsupported packages
13+
- **🟢 Stable**: Production-ready packages with stable APIs
14+
- **🟡 Preview**: Early access packages in development with the intention to become stable
15+
- **🔵 Compat**: Fluent UI v8 packages adapted to use v9 dependencies and APIs
16+
- **🔴 Deprecated**: Unsupported packages with available alternatives
1717

18-
## Package Stages
18+
## Package Categories
1919

2020
### 🟢 Stable Packages
2121

2222
**Characteristics:**
2323

24-
- Production-ready
25-
- API is stable
24+
- Production-ready with stable APIs
25+
- Full support and maintenance
2626
- Version format: `9.x.x`
2727
- Available from `@fluentui/react-components` suite
2828
- Naming convention: `@fluentui/react-<name>`
2929

30-
**Examples:** react-button, react-text
30+
**Examples:** `@fluentui/react-button`, `@fluentui/react-text`
3131

3232
**Import path:** `@fluentui/react-components`
3333

34+
**When to use:** For all production applications where stability and long-term support are important.
35+
36+
---
37+
3438
### 🟡 Preview Packages
3539

3640
**Characteristics:**
3741

38-
- Components that are not yet part of the stable suite (Early Access)
39-
- Can introduced Breaking Changes
40-
- Version format: `0.x.x`
42+
- Early access components not yet part of the stable suite
43+
- May introduce breaking changes
44+
- Active development with intention to become stable
45+
- Version format: `0.x.x` (Note: translates to `0.major.(minor|patch)`)
4146
- Not available from `@fluentui/react-components` suite
42-
- Naming convention: `@fluentui/react-<name>-preview` (`-preview` suffix indicates it's a preview package)
47+
- Naming convention: `@fluentui/react-<name>-preview` (with `-preview` suffix)
4348

44-
**Examples:** react-nav-preview, react-virtualizer
49+
**Examples:** `@fluentui/react-nav-preview`
4550

4651
**Import path:** `@fluentui/react-<name>-preview`
4752

48-
**💡 Exemptions:**
53+
**When to use:** When you need early access to new functionality and can tolerate potential breaking changes during updates.
4954

50-
There are some packages that don't following "preview" conventions, although are considered as PREVIEW, because they were created before the preview phase was introduced:
55+
**💡 Legacy Exemptions:**
56+
57+
Some packages don't follow the preview naming convention but are still considered preview status, as they were created before the preview phase was introduced:
5158

5259
- `@fluentui/theme`
5360
- `@fluentui/react-virtualizer`
@@ -58,22 +65,19 @@ There are some packages that don't following "preview" conventions, although are
5865

5966
**Characteristics:**
6067

61-
- Fluent UI v8 components using solely v9 dependencies and APIs
68+
- Fluent UI v8 components adapted to use v9 dependencies and APIs
6269
- Maintain familiar v8 APIs for easier migration
63-
- Bridge components during transition period from v8 to v9
64-
- Gradually being replaced by stable v9 equivalents
65-
- Can introduced breaking changes
66-
- Version format: `0.x.x`
70+
- Serve as bridge components during v8 to v9 transition
71+
- May introduce breaking changes
72+
- Version format: `0.x.x` (Note: translates to `0.major.(minor|patch)`)
6773
- Not available from `@fluentui/react-components` suite
68-
- Naming convention: `@fluentui/react-<name>-compat` (`-compat` suffix indicates it's a compat package)
69-
70-
**Examples:** react-datepicker-compat, react-calendar-compat
74+
- Naming convention: `@fluentui/react-<name>-compat` (with `-compat` suffix)
7175

72-
**Import path:** `@fluentui/react-zzz-compat`
76+
**Examples:** `@fluentui/react-datepicker-compat`, `@fluentui/react-calendar-compat`
7377

74-
**When to use:**
78+
**Import path:** `@fluentui/react-<name>-compat`
7579

76-
Use during migration from v8 to v9 when native v9 equivalents aren't available or when you need time to gradually migrate complex implementations.
80+
**When to use:** During migration from v8 to v9 when native v9 equivalents aren't available, or when you need time to gradually migrate complex implementations.
7781

7882
**Migration strategy:** Plan to migrate to native v9 components as they become available and stable.
7983

@@ -83,19 +87,33 @@ Use during migration from v8 to v9 when native v9 equivalents aren't available o
8387

8488
**Characteristics:**
8589

86-
- Packages that are no longer supported or maintained
87-
- Most of the time they have stable alternatives
88-
- Version format: can vary, but typically `9.0.0-alpha.x` or `9.0.0-beta.x`
89-
- Available from `@fluentui/react-components/unstable` suite (NOTE: suite `/unstable` api is DEPRECATED)
90+
- No longer supported or maintained
91+
- Stable alternatives are typically available
92+
- May not receive security updates or bug fixes
93+
- Version format: varies (typically `9.0.0-alpha.x` or `9.0.0-beta.x`)
94+
- Available from deprecated suite api `@fluentui/react-components/unstable`
9095
- Naming convention: `@fluentui/react-<name>`
9196

92-
**Examples:** react-alert, react-infobutton
97+
**Examples:** `@fluentui/react-alert`, `@fluentui/react-infobutton`
98+
99+
**Import path:** `@fluentui/react-components/unstable` (⚠️ **Note:** The `/unstable` API is deprecated)
100+
101+
**When to use:** Not recommended for new development. Migrate to stable alternatives immediately.
102+
103+
**Migration Guide:**
104+
105+
| Deprecated Package | Stable Alternative |
106+
| ---------------------------- | ---------------------------------------------------- |
107+
| `@fluentui/react-alert` | `@fluentui/react-components` (`Toast`, `MessageBar`) |
108+
| `@fluentui/react-infobutton` | `@fluentui/react-components` (`InfoLabel`) |
93109

94-
**Migration strategy:**
110+
**Migration strategy:** Migrate to stable alternatives as soon as possible. Deprecated packages may not receive updates or security fixes.
95111

96-
| Deprecated Package | Stable Alternative |
97-
| ------------------ | --------------------------------------------------- |
98-
| react-alert | react-components / (react-toast, react-message-bar) |
99-
| react-infobutton | react-components / (react-infolabel) |
112+
## Quick Reference
100113

101-
Migrate to stable alternatives as soon as possible. Deprecated packages may not receive updates or fixes.
114+
| Maturity Level | Version Format | Production Ready | Breaking Changes | Import Source |
115+
| -------------- | -------------- | ------------------- | ---------------- | ------------------------------------- |
116+
| 🟢 Stable | `9.x.x` | ✅ Yes | ❌ No | `@fluentui/react-components` |
117+
| 🟡 Preview | `0.x.x` | ⚠️ Use with caution | ✅ Possible | `@fluentui/react-<name>-preview` |
118+
| 🔵 Compat | `0.x.x` | ⚠️ Migration only | ✅ Possible | `@fluentui/react-<name>-compat` |
119+
| 🔴 Deprecated | various | ❌ No | N/A | `@fluentui/react-components/unstable` |

0 commit comments

Comments
 (0)