Skip to content

Revert Release 20.0.0 to redo properly#930

Merged
georgewrmarshall merged 1 commit intomainfrom
revert/release-20.0.0
Feb 20, 2026
Merged

Revert Release 20.0.0 to redo properly#930
georgewrmarshall merged 1 commit intomainfrom
revert/release-20.0.0

Conversation

@georgewrmarshall
Copy link
Contributor

@georgewrmarshall georgewrmarshall commented Feb 20, 2026

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:

After the release was merged, 7 additional PRs were merged to main:

  1. Label component (feat: label component #907)
  2. HeaderBase component (feat: add HeaderBase component #902)
  3. Skeleton (feat: add skeleton #891)
  4. Card (feat: Card #923)
  5. BottomSheetFooter (feat: add BottomSheetFooter component #899)
  6. Toast (feat: toast #892)
  7. Input component (chore: Added Input component to DSR and DSRN #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

Co-Authored-By: Claude noreply@anthropic.com


Note

Low Risk
Primarily metadata changes (versions/changelogs) with a small dependency range rollback; low runtime risk but could affect downstream installs expecting the newer peer range.

Overview
Reverts the attempted 20.0.0 release by rolling back version bumps in the root package.json and multiple packages (design-system-react, design-system-react-native, design-system-shared, design-tokens).

Removes the corresponding unreleased changelog sections/compare links for those reverted versions and resets @metamask/design-system-react-native’s @metamask/design-tokens peer dependency from ^8.2.0 back to ^8.1.0.

Written by Cursor Bugbot for commit 1b9617a. This will update automatically on new commits. Configure here.

@georgewrmarshall georgewrmarshall requested a review from a team as a code owner February 20, 2026 23:41
@georgewrmarshall georgewrmarshall enabled auto-merge (squash) February 20, 2026 23:42
@github-actions
Copy link
Contributor

📖 Storybook Preview

{
"name": "@metamask/metamask-design-system",
"version": "20.0.0",
"version": "19.0.0",
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Reverting root monorepo version from 20.0.0 back to 19.0.0 since Release 20.0.0 was never published to NPM. This allows us to create a proper Release 20.0.0 with complete changelogs including all changes merged since the failed release.

{
"name": "@metamask/design-tokens",
"version": "8.2.0",
"version": "8.1.1",
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Restoring design-tokens to 8.1.1 which is the last published version on NPM. The bump to 8.2.0 in the failed release included exporting the AnimationDuration enum that will be properly released in the new Release 20.0.0.

"peerDependencies": {
"@metamask/design-system-twrnc-preset": "^0.3.0",
"@metamask/design-tokens": "^8.2.0",
"@metamask/design-tokens": "^8.1.0",
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Reverting peer dependency from ^8.2.0 back to ^8.1.0. The original Release 20.0.0 updated this to match the BottomSheetOverlay component's use of AnimationDuration enum, but this change caused the yarn.lock issue that led to the publish failure. Will be properly included in the new release with correct lockfile.


- Fixed `ButtonBase` component sizing issues in flex layouts to prevent unexpected shrinking ([#870](https://github.com/MetaMask/metamask-design-system/pull/870))

## [0.6.0]
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Removing the 0.7.0 changelog section that documented: breaking enum changes, BottomSheetOverlay component, CorporateFare icon, ButtonBase fixes, and dependency updates. These changes are still in main branch code but were never published. The new Release 20.0.0 will include updated changelogs documenting these plus the 7 additional PRs merged since.


[Unreleased]: https://github.com/MetaMask/metamask-design-system/compare/@metamask/design-system-react-native@0.7.0...HEAD
[0.7.0]: https://github.com/MetaMask/metamask-design-system/compare/@metamask/design-system-react-native@0.6.0...@metamask/design-system-react-native@0.7.0
[Unreleased]: https://github.com/MetaMask/metamask-design-system/compare/@metamask/design-system-react-native@0.6.0...HEAD
Copy link
Contributor Author

Choose a reason for hiding this comment

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

Restoring the Unreleased comparison link to point to 0.6.0 instead of 0.7.0. This maintains the correct diff reference since 0.7.0 was never actually released to NPM. After the new Release 20.0.0, this will be updated to point to the newly published version.

Copy link
Contributor

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 3 potential issues.

@georgewrmarshall georgewrmarshall merged commit 13a395e into main Feb 20, 2026
43 checks passed
@georgewrmarshall georgewrmarshall deleted the revert/release-20.0.0 branch February 20, 2026 23:48
@georgewrmarshall georgewrmarshall mentioned this pull request Feb 21, 2026
georgewrmarshall added a commit that referenced this pull request Feb 21, 2026
## Release 20.0.0

This release includes updates to 4 packages with breaking changes, new
features, and improvements.

## Packages Being Released

| Package | Current Version | New Version | Type |
|---------|----------------|-------------|------|
| @metamask/design-tokens | 8.1.1 | 8.2.0 | Minor |
| @metamask/design-system-react | 0.7.0 | 0.8.0 | Minor |
| @metamask/design-system-react-native | 0.6.0 | 0.7.0 | Minor |
| @metamask/design-system-shared | 0.1.2 | 0.1.3 | Patch |

## Highlights

### 🎨 Design Tokens (8.2.0)
- Exported `AnimationDuration` enum for standardized animation timing
values

### ⚛️ Design System React (0.8.0)
- **BREAKING:** Standardized enum values to kebab-case format
- Added `CorporateFare` icon
- Added `Input` component
- Updated `@metamask/utils` peer dependency to 11.10.0

### 📱 Design System React Native (0.7.0)
- **BREAKING:** Standardized enum values to kebab-case format
- Added 7 new components: `Label`, `HeaderBase`, `Skeleton`, `Card`,
`BottomSheetFooter`, `Toast`, `Input`
- Added `CorporateFare` icon
- Added `BottomSheetOverlay` component for modal interactions
- Fixed `ButtonBase` sizing issues in flex layouts
- Updated component styling to use `tw.style()` for better type safety

### 🔧 Other Packages
- **design-system-shared (0.1.3)**: Updated `@metamask/utils` dependency

## Breaking Changes

### Enum Value Format Change (React & React Native)

All component enum values (except icon names) now use kebab-case format
at runtime:

```tsx
// Code usage remains the same
<Button variant={ButtonVariant.Primary} />

// But the runtime value changed from 'Primary' to 'primary'
console.log(ButtonVariant.Primary); // 'primary' (was 'Primary')
```

**Migration:**
- **Most consumers:** No changes needed - continue using enum constants
(e.g., `ButtonVariant.Primary`)
- **Only if persisting/transmitting values:** Update stored values from
PascalCase to kebab-case (e.g., `'Primary'` → `'primary'`, `'TopRight'`
→ `'top-right'`)

**Context:** This prepares for migration from enums to string union
types per [ADR #127](MetaMask/decisions#127)

## Critical Fix

This release includes the yarn.lock update that was missing from the
original Release 20.0.0 attempt. The peer dependency change from
`@metamask/design-tokens` `^8.1.0` to `^8.2.0` now has the corresponding
yarn.lock update, preventing the publish workflow failure.

## Context

This is a recreation of Release 20.0.0 after:
1. The original release merged but publish failed due to missing
yarn.lock update
2. 7 additional PRs were merged to main
3. We reverted the release to properly document all changes

See [PR
#930](#930) for
revert details.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> **Medium Risk**
> Mostly a release/versioning PR, but it includes a documented breaking
change to enum runtime values and dependency range updates that can
affect downstream consumers relying on persisted/transmitted enum
strings.
> 
> **Overview**
> Bumps the monorepo release to `20.0.0` and publishes new versions of
`@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 contents (including a
**breaking** kebab-case standardization for non-icon enum runtime
values, new React/React Native components/icons, and the
`AnimationDuration` token export), and aligns
`@metamask/design-system-react-native` peer dependency on
`@metamask/design-tokens` to `^8.2.0` with the corresponding `yarn.lock`
update.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
f049d15. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

---------

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants