-
-
Notifications
You must be signed in to change notification settings - Fork 10.1k
Docs: How we develop features and release Storybook #31662
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
10 commits
Select commit
Hold shift + click to select a range
7c44d0a
Add documentation on how we develop features and release Storybook
vanessayuenn 075da24
WIP
kylegach 5c0be3e
Tweaks
kylegach e226b18
Merge branch 'next' into vy/add-release-docs
kylegach 3f6a06c
Update sidebar titles
kylegach e6a2935
Improve clarity of supported versions
kylegach 67bb672
Merge branch 'next' into vy/add-release-docs
kylegach 37a70c5
Merge branch 'next' into vy/add-release-docs
vanessayuenn f243db7
Update features.mdx
vanessayuenn 20f98c6
Merge branch 'next' into vy/add-release-docs
kylegach File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,34 @@ | ||
| --- | ||
| title: 'Features Lifecycle' | ||
| sidebar: | ||
| order: 4 | ||
| title: Feature Lifecycle | ||
| --- | ||
|
|
||
| This page explains how the Storybook team classifies features using four lifecycle labels: **Experimental**, **Preview**, **Stable**, and **Deprecated**. | ||
|
|
||
| These labels help users understand our level of commitment, the expected quality, likelihood of breaking changes, and anticipated timeline for each feature. By making this process transparent, we aim to support better adoption decisions and build trust in how Storybook evolves. | ||
|
|
||
| ### Experimental | ||
|
|
||
| This stage marks the beginning of a feature’s development, where we’re validating ideas and shaping direction. | ||
|
|
||
| Experimental features are functional but still evolving, with room for iteration based on real-world use. They’re ideal for trying out in prototypes or early integrations, not yet something to build critical paths around. Each experimental feature comes with an [RFC](https://github.com/storybookjs/storybook/discussions/categories/rfc) where we share the initial idea and report progress. We strongly encourage feedback to help guide the next steps. | ||
|
|
||
| During this stage, we’re committed to fully exploring the concept. As such, specific implementation details may change significantly before stabilization. | ||
|
|
||
| ### Preview | ||
|
|
||
| Preview features are nearly production-ready and generally reliable, with documentation in place and most known issues addressed. They should be fully functional for at least one supported framework, but may still be incomplete or less polished in others. These features are suitable for use in real projects, and we encourage teams to adopt them and share feedback. | ||
|
|
||
| While the feature is stable in direction, we may introduce minimal breaking changes in minor releases to address gaps or refine behavior. In those cases, we provide automigrations where possible to ease the transition. We aim to collect feedback and iterate for 1-2 minor releases before promoting to stable. | ||
|
|
||
| ### Stable | ||
|
|
||
| Stable features are fully supported and safe for production use across all projects. They are well-documented, thoroughly tested in all of our core frameworks, and follow [semantic versioning](https://semver.org). Users can expect long-term support, with any breaking changes reserved for major releases. | ||
|
|
||
| ### Deprecated | ||
|
|
||
| Deprecated features are in the process of being phased out and will be removed in an upcoming major release. Users should begin migrating to supported alternatives as soon as possible. These features no longer receive active development or bug fixes, and their functionality may degrade over time. While they may still work, they should not be used for new development. | ||
|
|
||
| Typically, a deprecated feature is removed within the next major release cycle (for example, if deprecated in 8.x, removal is expected in 9.0). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,78 @@ | ||
| --- | ||
| title: 'How we release Storybook' | ||
| sidebar: | ||
| order: 11 | ||
| title: Releases | ||
| --- | ||
|
|
||
| Storybook packages ([`storybook`](https://www.npmjs.com/package/storybook) and everything under the [`@storybook` organization](https://www.npmjs.com/org/storybook)) follow [Semantic Versioning](https://semver.org/) (semver). We have a structured release process to ensure stability, compatibility, and a smooth upgrade path for users. This page outlines our release channels, supported versions, and the cadence of major, minor, patch, and pre releases. | ||
|
|
||
| ## Release Channels | ||
|
|
||
| We publish releases on two channels. You can install a specific channel via npm tags: | ||
|
|
||
| - **Stable channel** (`latest`): Installs the latest stable release. | ||
|
|
||
| ```bash | ||
| npm create storybook@latest | ||
| ``` | ||
|
|
||
| - **Pre-release channel** (`next`): Installs the latest [pre-release](#pre-release). | ||
|
|
||
| ```bash | ||
| npm create storybook@next | ||
| ``` | ||
|
|
||
| ## Supported Versions | ||
|
|
||
| We actively maintain the latest major version of Storybook. Within the current major, we patch only the latest minor version. Most fixes and new work go into the next minor (or sometimes major) and are not backported. Critical security fixes may be backported more broadly across the current major version, and in rare cases (such as for a short period immediately following a new major), to the previous major. | ||
|
|
||
| For example, if the latest version is `9.2.1`: | ||
|
|
||
| - We support `9.x.x` versions and release `9.2.x` patch versions | ||
| - Most fixes and new work will be released as `9.3.0-alpha.x` versions | ||
| - If the next release is a major version, it would be `10.0.0-alpha.x` | ||
| - We will backport critical security fixes to `9.1.x` or `9.0.x` | ||
| - Rarely, we may backport critical fixes to `8.6.x` as necessary | ||
|
|
||
| For compatibility with other libraries and tools in the JavaScript ecosystem, please refer to the [compatibility tracker](https://github.com/storybookjs/storybook/issues/23279). | ||
|
|
||
| ## Release Cycle | ||
|
|
||
| #### Major Release | ||
|
|
||
| **Cadence**: Roughly once per year | ||
|
|
||
| **Channel**: Stable (`latest`) | ||
|
|
||
| Major releases introduce breaking changes and significant new features. We use major releases to keep up with ecosystem changes, evolve Storybook’s architecture and APIs, and make the tool faster, leaner, and easier to use. | ||
|
|
||
| Once we start working on a major release, we pause minor releases but continue to ship patch releases as needed. Major releases go through a sequence of [pre-releases](#pre-release)—`alpha`, `beta`, and `rc` (release candidate)—before landing in the stable channel. We aim to include automated migrations and provide [a comprehensive migration guide](../releases/migration-guide.mdx) when manual changes are necessary. | ||
|
|
||
| <Callout variant="info"> | ||
| Storybook versions prior to 7 had a very different architecture. As a result, upgrading from v6 to newer versions can be more challenging. Starting in v7, we’ve focused heavily on smoother migrations. Upgrades from v7 to v8, and v8 to v9 (and beyond), should feel significantly easier thanks to automigrations and better tooling. | ||
| </Callout> | ||
|
|
||
| #### Minor Release | ||
|
|
||
| **Cadence**: Roughly every 8 weeks | ||
|
|
||
| **Channel**: Stable (`latest`) | ||
|
|
||
| Minor releases deliver new features, enhancements, and non-breaking improvements. Each minor release may be preceded by an alpha [pre-release](#pre-release) (e.g. `x.y.0-alpha`). | ||
|
|
||
| #### Patch Release | ||
|
|
||
| **Cadence**: as needed (only for the current minor) | ||
|
|
||
| **Channel**: Stable (`latest`) | ||
|
|
||
| Patch releases include critical bug fixes and security updates. These are issued only for the current minor version and are not pre-released. | ||
|
|
||
| #### Pre-release | ||
|
|
||
| **Cadence**: Regularly | ||
|
|
||
| **Channel**: Pre-release (`next`) | ||
|
|
||
| Pre-releases are created to gather early feedback and ensure stability before an official release. Minor version stable releases are preceded by pre-releases with an `alpha` tag (e.g. `x.y.0-alpha`), with no patch pre-releases. Major version stable releases are preceded by a fuller cycle of `alpha`, `beta`, and `rc` pre-releases before the final release. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -2,7 +2,7 @@ | |
| title: 'Roadmap' | ||
| hideRendererSelector: true | ||
| sidebar: | ||
| order: 6 | ||
| order: 5 | ||
| title: Roadmap | ||
| --- | ||
|
|
||
|
|
||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.