-
Notifications
You must be signed in to change notification settings - Fork 371
[POC] refactor(monorepo): Monorepo implementation #252
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
Conversation
@serenamarie125 @priley86 @jeff-phillips-18 I have couple of questions regardless of monorepo, it's mostly how to set things up for this repo. One thing to note, this might break a lot of things in code so I would adwise merging this into different branch, releasing new package under different name (preferably use scoped package) and let all projects slowly use this new package while we catch all the bugs. In some point (preferably right after merging this) we have to stop developping new features in patternfly and release new features in new package only. In current one we have to release only fix PRs. |
48ab621
to
bdd0d3b
Compare
Pull Request Test Coverage Report for Build 814
💛 - Coveralls |
Pull Request Test Coverage Report for Build 1072
💛 - Coveralls |
3c73ec3
to
4b092ef
Compare
Btw I was thinking about how to split this repo and what about this:
This division is not set in stone, it's just and idea if you disagree and have another opinion, please say it so I can divide this repo as needed. |
just trying to summarize on the conversation from yesterday (for others that were not at the meeting), and based on my current understanding...
do you want to explore Lerna automated publishing solutions in a playground and report back to us @karelhala ? I think this is vital before it gets introduced (b/c personally i don't want to do manual publishes here). I'm also in favor of maintaining deploy tokens as a security mechanism if possible...let me know if you need any help w/ this... another question too here - should we convert to a yarn workspace as part of this PR? |
@priley86 sure I started to dig trough the settings of semantic releases at https://github.com/karelhala/lerna-example
I don't think yarn workspaces are required for this. I'll try to set things up without them About semantic releas - looks like we jst have to switch to lerna-semantic-release with cz-lerna-changelog - slightly different, it adds which packages are effect when committing. About linking repo between one and each other, that's quite simple, that's what lerna lerna#bootstrap is for. I'll test some more settings, like automated releasing, linking packages and basically settings of lerna. |
@karelhala i believe a yarn workspace ensures that yes - please keep us posted on your research around maybe you can setup a playground repo that we can test some simple PRs with first? |
Sure thing, you can look at https://github.com/karelhala/lerna-example, feel free to open any new PR, I am currently figting with travis (he's refusing to publish to git)
I naively thought that CommitizenThis is how Pick which package is efffected Release notesAlso since GH wouldn't know how to show release notes (or lerna semantic release is messing with them) there are no direct release notes which could be found right next to tag. But rather are stored in package folder. |
becab97
to
7cba6ff
Compare
cf6c460
to
4697c8d
Compare
divide files into multiple packages as monorepo and use lerna for semantic releases BREAKING CHANGE: Introduces new package name, breaks whole repo into multiple packages fix patternfly#201
@karelhala just wanted to provide an update here... We have been reviewing both your documentation and your lerna sandbox further, and discussed it some this morning. The tentative plan is currently this:
@dmiller9911 is planning to demo his progress at the upcoming PF React Community Meeting for anyone with questions/ideas/suggestions. |
more updates... for anyone that was not able to attend today's Patternfly-React Contributors Monthly Exchange, some more discussion notes were posted here: |
I believe this can be closed with the merge of #332 |
Fixes #201, #218
This is really specific PR because it reshapes entirely this repository, so be aware that after merging this several things might get broken.
Used technologies
Because monorepo is somewhat different than usual repository with just one NPM package we hove to somehow maintain build process and release process, after some research it looks like lerna is the key for this. It's used for instance in babel package.
Lerna basically allows us to run different scripts in different subdirectories (packages).
I introduced new package called
@patternfly/react-core
it's not released and either someone from PF team or me can do the registering on https://www.npmjs.com/org/create. This way we can use scoped packages for instance@patternflu/react-console
,@patternfly/react-graphs
,@patternfly/react-whatever
Steps to finish
Questions