-
Notifications
You must be signed in to change notification settings - Fork 229
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
Monorepo #151
Comments
So at first glance independent mode seems the most logical to me, as I feel like it makes sense to not confuse people with a major release to say @timkelty Your preference was for the fixed/locked (as do Babel). What's the main reason there? Am I missing a major drawback of independent? |
@simonsmith Yeah independent would be most analogous to how we've been doing things. Your Going fixed ensures that "if you suitcss packages are all on 9.x, they'll all work together". You don't get that same assurance with independent. So the tradeoff is:
No perfect solution. I'm fine with either, really. I think I prefer fixed because our utils/components do interact and prefer the tradeoff of convenience for stability. |
Ah I see, that's quite a nice assurance to users. Thinking about the Grid discussion in the other issue and the possibility of v4 being flex and v5 being css grid, how would we handle publishing fixes to older tags? I presume Lerna makes this easy too? |
Good question. Haven't done that yet. Seems like we might want to have branches for majors (4.x, 5.x), so you can jump between them easily to release bumps. At that point if you on your 4.x branch and |
If we go with fixed - I think we'll prob want to do what babel did when they converged - take the highest version of any of the independent packages (which unfortunately would be v14 from |
Okay, that makes sense. Thinking more on the fixed approach and Babel. I notice that they still do big bang releases (it gets posted all over reddit, twitter etc) so for example Babel 7 is meant to be the next big release. But does this mean that they conveniently never had to publish a major release in any of their dozens of plugins? Or are they holding back major changes as a group so as not to go to say Babel 9 just because one plugin had two changes? That would be my concern about fixed |
No I think they do hold back changes that would be breaking, to keep a sane major release history, so that's another drawback. Ya know, talking this over theres probably no harm in starting in independent mode, as it would be the least friction. We can always decide to go fixed later. |
I think you're right. If we can get all the current packages on Lerna that's the bulk of the work done and we can see how it goes |
Created a branch here with independent settings and Main thing to try now is to publish a package change on this branch I think. So that will basically create a git tag and publish to npm. @giuseppeg I know you've had experience with this on your I understand this is correct behaviour but does that mean each time I try to publish one package change I have to bump every other package? It doesn't seem to give me an option to not bump. |
@simonsmith I suppose that those depend on the package that you are trying to publish right? In that case there is not much you can do, except for changing policy and pin dependencies i.e. avoid ranges
While this is true imo it makes upgrading less likely to happen since multiple packages might introduce breaking changes and one has to figure out which. Dealing with one breaking change at the time is easier and allows for more frequent upgrades. |
|
No, I just took the repos as folders. I hadn't seen |
I have no experience with bolt, so my gut reaction is to stick with lerna as a default, stable and proven solution. Do you see any compelling advantages of using bolt over lerna? |
@simonsmith Initially you have to bump each package, since they are tracked as changed by lerna. Further updates in a single package won't force updates in the others when using
Lerna docs recommend creating git tags in the |
@giuseppeg core features from my experience are just
But
are very useful and timesaving. lerna can be configured to work with yarn workspaces as well. |
Added a working state in a PR, please let me know what you think. Please note that the following topics are not part of it intentionally:
I would recommend tracking those in individual issues. |
Some epic work there @mlnmln I might need a couple days to get time to read through and review it all, but I will asap |
#153 is now merged! Should we bump all the packages on npm so they get revised package.json information (e.g repo link)? If so, is a patch sufficient? Also, thoughts on the existing repositories? I was thinking move any existing issues to this repository and then either archive them or move them out of the org to reduce confusion |
I think we can wait until we have fixed the README files at least.
Yup agreed! We should figure out how to import the issues in bulk and maybe figure out a sane way to manage them eg. labels or issue templates (or just title scheme). |
Looking at the |
Package location can be configured in lerna.json, so this should work. We might run into unforeseen issues if we have multiple, different paths in the future though. Would need investigation. |
Have moved all existing open issues to this repo. Will look at the README changes so we can get new versions published. Next step will be to then archive the old repos |
I suggest you look for something better supported and replying on PostCSS. Just face it, postcss won the race. Check out Visual Components Library VCL for which we also have an Angular library and plan a Web Components Library as well. |
The work done on suitcss is genius. If we all speak the naming convention language roughly we can start creating an eco system of components and are easily themeable, interchangeable, and easy to learn from. The goal should be to have all of us create components and utilities that can easily be combined into a greater whole. SuitCSS has all the underpinnings of this. |
It's been pretty unanimously decided we should move to monorepo.
The biggest decision is deciding if we want to do fixed/locked versioning or independent: https://github.com/lerna/lerna/#fixedlocked-mode-default
#149
#109
The text was updated successfully, but these errors were encountered: