conventional-commits / conventionalcommits.org

The conventional commits specification
https://conventionalcommits.org
MIT License
7k stars 538 forks source link

How to use conventional commits to generate version for different products in monorepos? #479

Open brupelo opened 1 year ago

brupelo commented 1 year ago

When it comes to generate versions out of conventional commits from a repo that contains only one product/package things are easy, you just need to use one tool that loops through all commits and computes your product version, so far so good.

But what happens in a monorepo that contain multiple products that needs to track different versions? Let me put you an example, the azure sdk for python, how would you use conventional commits effectively for these type of repos?

I'm trying to come up with a strategy that obviously scales up, we're talking about automatic version generation of the different monorepo products at the pipeline level.

postspectacular commented 1 year ago

Hi @brupelo - I'm managing a large monorepo with over 175 independently versioned packages and have written my own tool to compute version bumps, changelogs and perform releases entirely based on Conventional Commits (and analysis of files touched by git commits). So far it's been flying totally under the radar, but I've been doing hundreds of releases without a hitch since late 2021... Maybe you find it useful too: monopub