logoalt Hacker News

eddd-dddelast Tuesday at 8:26 PM4 repliesview on HN

I am a huge monorepo supporter, including "no development branches".

However there's a big difference between development and releases. You still want to be able to cut stable releases that allow for cherrypicks for example, especially so in a monorepo.

Atomic changes are mostly a lie when talking about cross API functions, i.e. frontend talking to a backend. You should always define some kind of stable API.


Replies

RaftPeopleyesterday at 3:24 AM

> including "no development branches"

Can you explain this comment? Are you saying to develop directly in the main branch?

How do you manage the various time scales and complexity scales of changes? Task/project length can vary from hours to years and dependencies can range from single systems to many different systems, internal and external.

show 1 reply
loreylast Tuesday at 9:07 PM

Very interesting points. Would you mind sharing a few examples of when cherry-picking is necessary and why atomic changes are a lie?

I'm using a monorepo for my company across 3+ products and so far we're deploying from stable release to stable release without any issues.

show 5 replies
djhedgeslast Tuesday at 9:51 PM

We use a mono repo and feature flag new features which gives us the deployment control timing.

show 2 replies
giancarlostorolast Tuesday at 8:45 PM

I like keeping old branches but a lot of places ditch them, never understood why. I also dislike git squash, it means you have to make a brand new branch for your next PR, waste of time when I should be able to pull down master / dev / main / whatever and merge it into my working branch. I guess this is another reason I prefer the forking approach of github, let devs have their own sandbox and their own branches, and let them get their work done, they will PR when its ready.

show 3 replies