Skip to content

Docs: How we develop features and release Storybook#31662

Merged
kylegach merged 10 commits into
nextfrom
vy/add-release-docs
Jul 18, 2025
Merged

Docs: How we develop features and release Storybook#31662
kylegach merged 10 commits into
nextfrom
vy/add-release-docs

Conversation

@vanessayuenn
Copy link
Copy Markdown
Contributor

@vanessayuenn vanessayuenn commented Jun 4, 2025

What I did

Add documentation pages on our feature and release cycles.

Checklist for Contributors

Testing

The changes in this PR are covered in the following automated tests:

  • stories
  • unit tests
  • integration tests
  • end-to-end tests

Manual testing

Not needed

Documentation

  • Add or update documentation reflecting your changes
  • If you are deprecating/removing a feature, make sure to update
    MIGRATION.MD

Checklist for Maintainers

  • When this PR is ready for testing, make sure to add ci:normal, ci:merged or ci:daily GH label to it to run a specific set of sandboxes. The particular set of sandboxes can be found in code/lib/cli-storybook/src/sandbox-templates.ts

  • Make sure this PR contains one of the labels below:

    Available labels
    • bug: Internal changes that fixes incorrect behavior.
    • maintenance: User-facing maintenance tasks.
    • dependencies: Upgrading (sometimes downgrading) dependencies.
    • build: Internal-facing build tooling & test updates. Will not show up in release changelog.
    • cleanup: Minor cleanup style change. Will not show up in release changelog.
    • documentation: Documentation only changes. Will not show up in release changelog.
    • feature request: Introducing a new feature.
    • BREAKING CHANGE: Changes that break compatibility in some way with current major version.
    • other: Changes that don't fit in the above categories.

🦋 Canary release

This PR does not have a canary release associated. You can request a canary release of this pull request by mentioning the @storybookjs/core team here.

core team members can create a canary release here or locally with gh workflow run --repo storybookjs/storybook canary-release-pr.yml --field pr=<PR_NUMBER>

Greptile Summary

Major documentation restructuring that consolidates release-related content and introduces new guides for feature lifecycle management.

  • Added new docs/releases/features.mdx documenting feature maturity stages (Experimental, Preview, Stable, Deprecated)
  • Moved migration guides and upgrading docs to centralized docs/releases/ directory
  • Added docs/releases/index.mdx detailing versioning strategy and release channels
  • Updated all internal documentation links to reflect new structure
  • Reordered sidebar navigation to improve content flow and discoverability

@vanessayuenn vanessayuenn changed the title Add documentation on how we develop features and release Storybook [Docs] How we develop features and release Storybook Jun 4, 2025
@vanessayuenn vanessayuenn changed the title [Docs] How we develop features and release Storybook Docs: How we develop features and release Storybook Jun 4, 2025
@vanessayuenn vanessayuenn added documentation ci:docs Run the CI jobs for documentation checks only. labels Jun 4, 2025
@nx-cloud
Copy link
Copy Markdown

nx-cloud Bot commented Jun 4, 2025

View your CI Pipeline Execution ↗ for commit 20f98c6

Command Status Duration Result
nx run-many -t build --parallel=3 ✅ Succeeded 1m 19s View ↗

☁️ Nx Cloud last updated this comment at 2025-07-18 22:45:05 UTC

@vanessayuenn vanessayuenn marked this pull request as ready for review June 11, 2025 14:40
Copy link
Copy Markdown
Contributor

@greptile-apps greptile-apps Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 files reviewed, 3 comments
Edit PR Review Bot Settings | Greptile

Comment thread docs/releases/features.mdx Outdated
title: Feature Lifecycle
---

This page explains how the Storybook team classifies features using three 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.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

logic: The introduction mentions 'three lifecycle labels' but proceeds to list four stages (Experimental, Preview, Stable, and Deprecated). Update the text to say 'four lifecycle labels' for accuracy.

Suggested change
This page explains how the Storybook team classifies features using three 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.
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.

Comment thread docs/releases/index.mdx Outdated

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 prereleases —— `alpha`, `beta`, and `rc` (release candidate) —— before landing in the stable channel. We aim to include automated migrations and provide [a comprehensive migration guide](../migration-guide/index.mdx) when manual changes are necessary.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

style: Double em dash '——' should be a single em dash '—' or double hyphen '--'

Suggested change
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 prereleases — `alpha`, `beta`, and `rc` (release candidate) — before landing in the stable channel. We aim to include automated migrations and provide [a comprehensive migration guide](../migration-guide/index.mdx) when manual changes are necessary.
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 prereleases — `alpha`, `beta`, and `rc` (release candidate) — before landing in the stable channel. We aim to include automated migrations and provide [a comprehensive migration guide](../migration-guide/index.mdx) when manual changes are necessary.

Comment on lines +1 to +6
---
title: 'Features Lifecycle'
sidebar:
order: 13
title: Feature Lifecycle
---
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

style: The frontmatter title 'Features Lifecycle' and sidebar title 'Feature Lifecycle' are inconsistent. Consider using the same form (plural or singular) for both.

kylegach added 3 commits June 12, 2025 15:00
* next: (350 commits)
  Update CHANGELOG.md for v9.0.9 [skip ci]
  fix scripts test
  Next.js: Add styled-jsx to optimize Vite dependencies in configuration
  Next.js: Update styled-jsx resolution method in Vite configuration
  Prevent destructuring of undefined
  Next.js: Enhance Vite configuration with styled-jsx aliasing
  Next.js: Add webpack alias to resolve Next.js package conflicts
  dont at-mention users in release PR descriptions
  cleanup, fix unit tests
  Angular: Update MiniCssExtractPlugin configuration for cache busting
  remove unneeded preview entrypoints for core addons
  relatively import preview annotations of core addons
  Refactor import statements in find-implicit-spies.ts to consolidate Babel imports
  Update dependencies in yarn.lock and package.json
  use babel from core in codemods
  bundle in giget
  Bump version from "9.1.0-alpha.5" to "9.1.0-alpha.6" [skip ci]
  prebundle more in cli-storybook package
  Write changelog for 9.1.0-alpha.6 [skip ci]
  fix package manager instance in empty dir flow
  ...
Comment thread docs/releases/index.mdx Outdated

## Supported Versions

- We only support the **latest major** version of Storybook.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vanessayuenn — Can you clarify what this means, exactly?

Let's say that latest is currently 9.2.1. Is any 9.x.x version supported? Given that there are no breaking changes in the minors, I'd expect only the absolute latest, 9.2.1 to be supported.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What I meant is: we only provide active maintenance (bug fixes, patches, etc.) for the current major version. So if the latest release is 9.2.1, only 9.2.x is getting patched. Earlier minors like 9.1.x or 9.0.x won’t receive updates unless it’s a critical bug or a critical security fix. But I think this sentence is not conveying what I meant.

How about if we replace this whole section with:

We actively maintain only the latest major version of Storybook (e.g. 9.x).

  • Within the current major, we patch only the latest minor (e.g. 9.2.x).
  • Most fixes and new work go into the next minor (e.g. 9.3-alpha) and are not backported.
  • Critical security fixes may be backported more broadly across 9.x, and in rare cases, to the previous major.

Better?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can work with that last one. It clarifies what you meant.

Because these two phrases seem to contradict each other:

we only provide active maintenance (bug fixes, patches, etc.) for the current major version

if the latest release is 9.2.1... Earlier minors like 9.1.x or 9.0.x won’t receive updates unless it’s a critical bug or a critical security fix.

If 9.1 doesn't receive updates, doesn't that mean only the latest minor, not major, is actively maintained?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vanessayuenn — I pushed another update trying for maximum clarity. Wdyt?

Comment thread docs/releases/index.mdx
kylegach added 2 commits June 20, 2025 14:59
* next: (50 commits)
  Vite: Remove addon-themes and theming from optimized deps list
  Next.js-Vite: Support Next.js v15.4
  Update CHANGELOG.md for v9.0.12 [skip ci]
  Addon Vitest: Remove Optimize deps candidates due to Vitest warnings
  Sandbox: Override the right vitest.config file depending on language
  Core: Update dedupeDependencies method to accept an optional force flag for npm
  Review fixes
  Update code/core/src/common/js-package-manager/NPMProxy.ts
  Core: Enhance package manager install methods to support optional force flag
  Update CHANGELOG.md for v9.0.11 [skip ci]
  Docs: Update docs to support Angular 20
  Refactor INTERNAL_DEFAULT_PROJECT_ANNOTATIONS
  Remove filterResolvableIncludeCandidates
  Update code/builders/builder-vite/src/constants.ts
  Insert resolve configuration in Vitest setup to preserve symlinks, enhancing compatibility with plugins
  Refactor optimizeDeps handling in Vitest to include INCLUDE_CANDIDATES and streamline dependency resolution
  Refactor dependency handling in Vitest to use filterResolvableIncludeCandidates for optimized resolution
  Add INCLUDE_CANDIDATES constant for optimized dependency handling in Vitest and load optimizeDeps preset
  Remove duplicate type declaration for PackageManagerName
  Docs: Update CLI options
  ...
Copy link
Copy Markdown
Contributor

@greptile-apps greptile-apps Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

13 files reviewed, no comments
Edit PR Review Bot Settings | Greptile

@vanessayuenn vanessayuenn requested a review from kylegach July 11, 2025 10:47
@vanessayuenn
Copy link
Copy Markdown
Contributor Author

@kylegach thanks for the tweaks! I think this is ready now, if it looks good to you, mind giving it a 👍🏼?

@kylegach kylegach added the patch:yes Bugfix & documentation PR that need to be picked to main branch label Jul 18, 2025
@kylegach kylegach merged commit 9f17aa1 into next Jul 18, 2025
8 checks passed
@kylegach kylegach deleted the vy/add-release-docs branch July 18, 2025 22:23
yannbf pushed a commit that referenced this pull request Jul 22, 2025
Docs: How we develop features and release Storybook
(cherry picked from commit 9f17aa1)
@github-actions github-actions Bot mentioned this pull request Jul 22, 2025
8 tasks
@github-actions github-actions Bot added the patch:done Patch/release PRs already cherry-picked to main/release branch label Jul 22, 2025
@ndelangen ndelangen removed the patch:yes Bugfix & documentation PR that need to be picked to main branch label Oct 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:docs Run the CI jobs for documentation checks only. documentation patch:done Patch/release PRs already cherry-picked to main/release branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants