Release 20.0.0#921
Conversation
Updated all package changelogs to follow Keep a Changelog conventions: - Categorized entries under Added/Changed/Fixed sections - Removed "Uncategorized" sections - Made entries consumer-focused with clear descriptions - Removed dev-only changes (dependency bumps, tooling updates) - Added migration guidance for breaking changes - Provided context for new features and components Packages updated: - @metamask/design-tokens (8.2.0) - @metamask/design-system-react (0.8.0) - @metamask/design-system-react-native (0.7.0) - @metamask/design-system-shared (0.1.3) - @metamask/design-system-tailwind-preset (0.6.2) - @metamask/design-system-twrnc-preset (0.3.1) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
📖 Storybook Preview |
georgewrmarshall
left a comment
There was a problem hiding this comment.
Some questions
- Update CorporateFare icon description to specify stocks representation - Add AnimationDuration enum export to design-tokens changelog - Clarify maintenance-only changes in tailwind and twrnc presets - Remove font weight reversion entry (changes cancelled out in same release) Changes based on self-review feedback: #921 (review) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
📖 Storybook Preview |
📖 Storybook Preview |
- Revert design-system-tailwind-preset from 0.6.2 to 0.6.1 - Revert design-system-twrnc-preset from 0.3.1 to 0.3.0 These packages only had internal changes (test file cleanups, dev dependencies) that don't affect published packages, so no version bump is needed per semver best practices. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
📖 Storybook Preview |
…tion BottomSheetOverlay uses AnimationDuration enum which was only exported in design-tokens@8.2.0. Updated peer dependency from ^8.1.0 to ^8.2.0 to prevent runtime import errors. Fixes: #921 (comment) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
📖 Storybook Preview |
|
|
||
| - **BREAKING:** Standardized non-icon enum runtime values to use kebab-case format ([#894](https://github.com/MetaMask/metamask-design-system/pull/894)) | ||
| - Enum values now use lowercase/kebab-case (e.g., `'primary'` instead of `'Primary'`, `'top-right'` instead of `'TopRight'`) | ||
| - **Migration likely not needed** - continue using enum constants (e.g., `ButtonVariant.Primary`) |
There was a problem hiding this comment.
Breaking change is well-documented with concrete examples. Note that migration is only needed if apps persist or transmit these values - most consumers using enum constants like ButtonVariant.Primary won't need any changes.
| - Enum values now use lowercase/kebab-case (e.g., `'primary'` instead of `'Primary'`, `'top-right'` instead of `'TopRight'`) | ||
| - **Migration likely not needed** - continue using enum constants (e.g., `ButtonVariant.Primary`) | ||
| - **Migration needed** only if your app persists or transmits these enum values (localStorage, databases, APIs) | ||
| - This prepares for migration from enums to string union types per ADR #127 |
There was a problem hiding this comment.
ADR 127 reference provides important strategic context - this enum standardization prepares the codebase for a future migration from TypeScript enums to string union types.
| "peerDependencies": { | ||
| "@metamask/design-system-twrnc-preset": "^0.3.0", | ||
| "@metamask/design-tokens": "^8.1.0", | ||
| "@metamask/design-tokens": "^8.2.0", |
There was a problem hiding this comment.
Critical dependency relationship: BottomSheetOverlay component uses AnimationDuration enum which was only exported starting in design-tokens 8.2.0. The peer dependency bump from ^8.1.0 to ^8.2.0 prevents runtime import errors.
| ## [8.2.0] | ||
|
|
||
| ### Added | ||
|
|
There was a problem hiding this comment.
This AnimationDuration export is used by the new BottomSheetOverlay component in design-system-react-native, which is why that package requires design-tokens 8.2.0 as a peer dependency.
📖 Storybook Preview |
Update yarn.lock to reflect the @metamask/design-tokens peer dependency change from ^8.1.0 to ^8.2.0 in @metamask/design-system-react-native. The original Release 20.0.0 merge (#921) updated the peer dependency but did not update yarn.lock, causing the publish workflow to fail during the yarn install --immutable check. Fixes: https://github.com/MetaMask/metamask-design-system/actions/runs/22198282954 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This reverts commit 4500419.
## Summary Reverts the failed Release 20.0.0 (#921) to redo it properly with complete changelogs and correct yarn.lock. ## Context Release 20.0.0 was merged to main but the publish workflow failed due to a yarn.lock issue: - **Failed workflow:** https://github.com/MetaMask/metamask-design-system/actions/runs/22198282954 - **Root cause:** yarn.lock not updated when peer dependency changed After the release was merged, 7 additional PRs were merged to main: 1. Label component (#907) 2. HeaderBase component (#902) 3. Skeleton (#891) 4. Card (#923) 5. BottomSheetFooter (#899) 6. Toast (#892) 7. Input component (#909) ## Why Revert? To maintain clean version history and proper changelogs: - Release 20.0.0 was never published to NPM (latest is 19.0.0) - The 7 PRs merged after are not documented in Release 20.0.0 changelog - Reverting allows us to create a proper Release 20.0.0 that includes ALL changes ## Changes This PR reverts commit `45004196` which: - Restores package versions to pre-release state (8.1.1, 0.7.0, 0.6.0, etc.) - Restores root package.json version from 20.0.0 to 19.0.0 - Removes Release 20.0.0 changelog entries ## Next Steps After this is merged: 1. Create new `release/20.0.0` branch using standard release process 2. Include all changes (original + 7 PRs) in changelogs 3. **Run `yarn install` to update yarn.lock** 4. Merge new Release 20.0.0 PR 5. Publish workflow will succeed with correct lockfile 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Release 20.0.0
This release includes updates to 4 packages with breaking changes, new features, and improvements.
Packages Being Released
Highlights
🎨 Design Tokens (8.2.0)
AnimationDurationenum for standardized animation timing values⚛️ Design System React (0.8.0)
CorporateFareicon@metamask/utilspeer dependency to 11.10.0📱 Design System React Native (0.7.0)
CorporateFareiconBottomSheetOverlaycomponent for modal interactionstw.style()for better type safety🔧 Other Packages
@metamask/utilsdependencyBreaking Changes
Enum Value Format Change (React & React Native)
All component enum values (except icon names) now use kebab-case format at runtime:
Migration:
ButtonVariant.Primary)'Primary'→'primary','TopRight'→'top-right')Context: This prepares for migration from enums to string union types per ADR #127
Note
Medium Risk
Primarily a release/changelog version bump, but it ships a documented breaking change around enum runtime value formatting that could impact consumers persisting/transmitting enum values.
Overview
Bumps the monorepo release to
20.0.0and increments package versions for@metamask/design-tokens(8.2.0),@metamask/design-system-react(0.8.0),@metamask/design-system-react-native(0.7.0), and@metamask/design-system-shared(0.1.3).Updates changelogs to document the release highlights, including exporting the
AnimationDurationenum, adding theCorporateFareicon, a breaking kebab-case standardization of non-icon enum runtime values, and React Native peer dependency alignment (notably@metamask/design-tokensto^8.2.0).Written by Cursor Bugbot for commit d4c08b9. This will update automatically on new commits. Configure here.