-
Notifications
You must be signed in to change notification settings - Fork 843
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
[Meta] Monorepo and package-based publishing #5540
Comments
Three thoughts to help find potential boundaries for packages:
|
I did an exploratory spike to expand my understanding of monorepos generally and where the pain points will be for EUI specifically. We will pick up the work again soon, but the gist of the outcome is as follows. ToolingDependency management: yarn workspaces PhasingIt is unfeasible to begin splitting up Proposed tentative migrationPhase 1 - Transition
Phase 2 - IllustrationPhase 3 - Non-component packages
Phase 4 - Component packages
Other recommendations
Outstanding questions & further explorationTesting
Dependencies
Publishing releases
|
Just wanted to mention that we at Search UI are facing the same questions as in "Publishing releases" section. We also found https://github.com/elastic/apm-agent-rum-js that seemingly had the same challenges and added some scripts for publishing: https://github.com/elastic/apm-agent-rum-js/tree/main/scripts. We plan to chat with them soon, let me know if you'd like to participate. |
@yakhinvadim Yes, I'd like be involved in that chat! |
@thompsongl Awesome, we'll invite you when we set it up (likely not in the next 2 weeks). As for which EUI packages to release first: our priorities have shifted, and we paused the project that needed to use EUI. We plan to return to it in the future, but I don't think it'll happen in the next 6 months, maybe a year. But if you have no other inputs, we were planning to build something like this (early design): |
Sounds good, @yakhinvadim! Thank you |
@thompsongl I see that you've looked turborepo, I'm curious if you've also looked at Nx? I've used it in a pretty big team (75 developers) and decent codebase for the last 5 years. I'm also using it on very small side projects (2 people). It's extremely powerful and very simple to use. I'm happy to hop on a call if you need any details or have any questions :) |
Hey @PhilippeOberti! |
Awesome! I was part of the frontend infrastructure team so I've used Nx extensively, I've helped set it up for all the devs, implemented custom generators and executors and performed Nx upgrades... |
For handoff purposes: thompsongl/eui@main...thompsongl:eui:turborepo I haven't made significant progress beyond the previous comment, so the team will need to make evaluations between the spike I've worked on and other contending approaches like https://nx.dev/ Regardless, the procedure for moving to a monorepo is similar.
The following assumes an approach whereby base/default configs live at root and packages/apps inherit and extend.
Still unverified:
|
With #7736, the EUI repository has now been moved to a monorepo. While this original Meta issues was written to capture the work for both the move to a monorepo as well as splitting the library into discrete packages, I'm going to close this issue as completed with this PR. The EUI team will likely create separate packages in the future, but I think this Meta issue has outlived itself. If we decide to make that move, we will create a new issue to capture that work. |
EUI has had the long-term goal to increase modularity, and recent efforts related to styling (#3912; moving away from Sass) have opened the door to beginning the process in earnest.
A rough outline of phasing:
Validation
Utilities
Core & Supplements
@elastic/eui
should still exist as an all-inclusive packageThe text was updated successfully, but these errors were encountered: