nrwl / monorepo.tools

Your defacto guide on monorepos, and in depth feature comparisons of tooling solutions.
https://monorepo.tools
MIT License
289 stars 31 forks source link

[CONTENT] Release Management in Monorepos #91

Open galuszkak opened 1 year ago

galuszkak commented 1 year ago

Hey @juristr @bcabanes ,

Thanks for the amazing content on this website.

While I was browsing this, I realize there is a lot about building management systems, but one thing that I think gives a lot of interesting problems to solve is release management. Monorepo doesn't necessarily mean it's only a trunk deployment model for all apps/services.

For example, Nx is doing the release of all packages at once: https://github.com/nrwl/nx But Airflow or BlueprintJS are doing multiple package releases from their monorepos using git tags or Releases: https://github.com/palantir/blueprint (20+ packages) https://github.com/apache/airflow/ (60+ packages!)

This creates interesting problems regarding which approaches would work the best for the different use cases and engineers. At least for me, this is the biggest gap, in the content on the website as it creates interesting maintenance challenges.

Thanks

juristr commented 1 year ago

Hey @galuszkak, thanks for reaching out. Yeah, we did not enter the release management specifically, as it can be very specific to your environment and requirements. At the tooling level, most tools don't have something integrated out of the box, but you can easily achieve some sort of release management with 3rd party tools you integrate with. Like changesets, release-it etc.

Lerna is probably one of the few that had it embedded from the beginning as it was one of the primary goals: manage packages in a monorepo that get versioned and released to NPM. And it has a guide on it: https://lerna.js.org/docs/features/version-and-publish

That said, we want to provide more content and guidance around these topics. So expect more to come.