-
Notifications
You must be signed in to change notification settings - Fork 70
chore: add /next subpath + (beta) release please for next components #4251
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
base: main
Are you sure you want to change the base?
chore: add /next subpath + (beta) release please for next components #4251
Conversation
e4e1834 to
84cab00
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR establishes the infrastructure for releasing EDS 2.0 components as beta versions through a new /next subpath. The implementation enables a dual release strategy where stable (EDS 1.0) and beta (EDS 2.0) components coexist in the same package but are accessed through different entry points. The PR resolves the need for a controlled beta release process while components are under active development.
Key changes:
- Added
/nextsubpath export to enable importing beta components separately from stable ones - Configured Release Please to handle dual releases with separate changelogs (stable and beta)
- Updated CI/CD workflows to detect and publish beta releases with the
@betanpm dist-tag - Created comprehensive documentation for the beta release workflow and component graduation strategy
Reviewed changes
Copilot reviewed 16 out of 16 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
packages/eds-core-react/package.json |
Adds /next export path for beta components |
packages/eds-core-react/rollup.config.js |
Adds separate build configuration for /next entry point |
packages/eds-core-react/src/index.next.ts |
Creates entry point for beta components with documentation |
packages/eds-core-react/src/components/next/index.ts |
Creates placeholder export file for future beta components |
.github/workflows/trigger_publish.yml |
Adds beta release detection and separate publish triggers for stable/beta |
.github/workflows/publish_core_react.yaml |
Updates deployment logic to handle beta releases and environment selection |
.github/release-please-config.json |
Configures dual release strategy with beta prerelease support |
.github/release-please-config.md |
Documents the dual release configuration approach |
.github/release-please-manifest.json |
Adds initial beta version tracking |
documentation/how-to/BETA_RELEASE_GUIDE.md |
Comprehensive guide for beta release workflow and graduation process |
documentation/how-to/AUTOMATED_RELEASE.md |
Updates release documentation to include beta release instructions |
packages/eds-core-react/README.md |
Adds beta installation and usage instructions |
packages/eds-core-react/CHANGELOG.next.md |
Creates separate changelog for beta releases |
packages/eds-core-react/stories/docs/EDS2.mdx |
Adds Storybook documentation page for EDS 2.0 beta components |
packages/eds-core-react/.storybook/preview.mjs |
Adds EDS 2.0 section to Storybook navigation order |
README.md |
Documents beta components section with installation and usage examples |
You can also share your feedback on Copilot code review for a chance to win a $100 gift card. Take the survey.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 19 out of 19 changed files in this pull request and generated 3 comments.
You can also share your feedback on Copilot code review for a chance to win a $100 gift card. Take the survey.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 19 out of 19 changed files in this pull request and generated 4 comments.
You can also share your feedback on Copilot code review for a chance to win a $100 gift card. Take the survey.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 19 out of 19 changed files in this pull request and generated 1 comment.
You can also share your feedback on Copilot code review for a chance to win a $100 gift card. Take the survey.
070de03 to
943dec9
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 20 out of 20 changed files in this pull request and generated 3 comments.
You can also share your feedback on Copilot code review for a chance to win a $100 gift card. Take the survey.
| The EDS repository uses a **dual release strategy**: | ||
|
|
||
| - **Stable releases** (`latest` tag) -- All components EXCEPT those in `/next` | ||
| - **Beta releases** (`beta` tag) -- Only components in `src/components/next/` |
Copilot
AI
Nov 27, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] According to the markdown guidelines (CodingGuidelineID: 1000004), use endash (--) instead of double hyphen (--). The markdown already uses -- correctly, but note that in rendered markdown this should display as an em dash. Consider using the proper em dash character (—) or ensure the markdown renderer handles this appropriately.
| - **Beta releases** (`beta` tag) -- Only components in `src/components/next/` | |
| - **Beta releases** (`beta` tag) – Only components in `src/components/next/` |
| export const Placeholder = ({ | ||
| text = 'EDS 2.0 Placeholder', | ||
| }: PlaceholderProps) => { | ||
| return <div data-testid="eds-placeholder">{text}</div> |
Copilot
AI
Nov 27, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The naming convention for CSS classes in this project uses BEM with lowercase and hyphens (per CodingGuidelineID: 1000006). While this placeholder component doesn't have a CSS class yet, when styling is added, ensure it follows the pattern .placeholder for the class name and placeholder.css for the CSS file.
|
@torleifhalseth I've opened a new pull request, #4273, to work on those changes. Once the pull request is ready, I'll request review from you. |
| "release-type": "simple", | ||
| "component": "eds-core-react-next", | ||
| "prerelease-type": "beta", | ||
| "include-component-in-tag": false |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is the effect of this configuration @copilot ?
|
@torleifhalseth I've opened a new pull request, #4274, to work on those changes. Once the pull request is ready, I'll request review from you. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks very nice. I just added some questions to better understand the configuration. Also tested to mention copilot to see if it can answer inline, but please answer them if you have the answer @pomfrida :D
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you know the effect of using different component value?
torleifhalseth
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great work @pomfrida . I added some comments.
| order: [ | ||
| 'Introduction', | ||
| 'EdsProvider', | ||
| 'EDS 2.0 (beta)', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this be placed furter down? 🤔 I would suggest after everything else so that we don't add beta stuff in between.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Beta stuff will be on top under "EDS 2.0 (beta)" so it won't be in between other components, I thought it would be nice to have it on top to make it clear what we are working on and what's coming? 🤔
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok! Great. What about the EdsProvider?
| @@ -0,0 +1,15 @@ | |||
| 'use client' | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hopefully we don't need to limit the new components to client. We want to support SSR out of the box. This is a Next.js spesific directive that I hope we can exclude.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point! Removed 'use client' from the index file. For EDS 2.0, we'll add it per component that needs it (hooks/events), this way static components can remain server components
packages/eds-core-react/README.md
Outdated
| For design tokens (required for CSS variables): | ||
|
|
||
| ```bash | ||
| npm install @equinor/eds-tokens | ||
| ``` | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think we should include this part. The tokens are included (dependency) to the eds-core-react package.
| { | ||
| input: ['./src/index.next.ts'], | ||
| external: [ | ||
| /@babel\/runtime/, | ||
| 'react/jsx-runtime', | ||
| ...Object.keys({ | ||
| ...pkg.peerDependencies, | ||
| ...pkg.dependencies, | ||
| }), | ||
| ], | ||
| watch: { | ||
| clearScreen: true, | ||
| include: ['./src/**', './../tokens/**'], | ||
| }, | ||
| plugins: [ | ||
| preserveDirective(), | ||
| resolve({ extensions }), | ||
| commonjs(), | ||
| postcss({ | ||
| extensions: ['.css'], | ||
| extract: false, | ||
| }), | ||
| babel({ | ||
| babelHelpers: 'runtime', | ||
| extensions, | ||
| rootMode: 'upward', | ||
| }), | ||
| ], | ||
| output: [ | ||
| { | ||
| dir: 'dist/esm', | ||
| preserveModules: true, | ||
| preserveModulesRoot: 'src', | ||
| format: 'es', | ||
| sourcemap: isDevelopment, | ||
| }, | ||
| { file: './dist/index.next.cjs', format: 'cjs', interop: 'auto' }, | ||
| ], | ||
| }, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Are we duplicating the default (stable) configuration? Could parts of this be shared? @copilot
|
@torleifhalseth I've opened a new pull request, #4275, to work on those changes. Once the pull request is ready, I'll request review from you. |
Thanks for the thorough review @torleifhalseth 💯 One thing I did not address was the menu order as I would like to make it clear what's new and what's coming. I think it makes sense to keep it on top |
resolves https://github.com/equinor/design-system-internal/issues/216