Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What would be a good commit message for updating package versions using Conventional Commits?

Following Conventional Commits what would be the best <type> for commits regarding package version changes (upgrades/updates)?

E.g.: feat: Bump React version to "16.13.1"

E.g.: feat: Upgrade all dependencies

like image 466
Gustavo Maximo Avatar asked Jan 23 '21 02:01

Gustavo Maximo


People also ask

What is commit-m?

Commit messages can adequately communicate why a change was made, and understanding that makes development and collaboration more efficient. Before now, I only used git commit -m "Fix X to allow Y to use Z" on my personal projects with just a subject and no extra description.

What are conventional commits?

Conventional Commits is a specification for the format and content of a commit message. The concept behind Conventional Commits is to provide a rich commit history that can be read and understood by both humans and automated tools. Conventional Commits have the following format:

What types of commits do we recommend improvement?

We also recommend improvement for commits that improve a current implementation without adding a new feature or fixing a bug. Notice these types are not mandated by the conventional commits specification, and have no implicit effect in semantic versioning (unless they include a BREAKING CHANGE, which is NOT recommended).

Are commit types required for semantic versioning?

Notice these types are not mandated by the conventional commits specification, and have no implicit effect in semantic versioning (unless they include a BREAKING CHANGE, which is NOT recommended).


2 Answers

Others: commit types other than fix: and feat: are allowed, for example @commitlint/config-conventional (based on the the Angular convention) recommends chore:, docs:, style:, refactor:, perf:, test:, and others. We also recommend improvement for commits that improve a current implementation without adding a new feature or fixing a bug. Notice these types are not mandated by the conventional commits specification, and have no implicit effect in semantic versioning (unless they include a BREAKING CHANGE, which is NOT recommended). A scope may be provided to a commit’s type, to provide additional contextual information and is contained within parenthesis, e.g., feat(parser): add ability to parse arrays.

Source: https://www.conventionalcommits.org/en/v1.0.0-beta.2/

So an ideal candidate for me would be chore: upgrade package dependencies which must not result in any version number bump.

Be aware though that upgrading dependencies may or may not incur breaking changes which may result in a commit significantly bigger than just a package.json update.

But as far as your app goes, it would be your job to deal with those breaking changes without changing anything for the user. So in that respect I don't think that neither feat: nor fix: is justified as, ideally, this commit doesn't bring any user-facing changes.

like image 101
customcommander Avatar answered Oct 24 '22 22:10

customcommander


If you use build scope consider this option:

build(deps): Bump React version to "17.0.2"

Conventional commits are based on the Angular conventional commits. Angular's CONTRIBUTING.md states:

build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)

like image 38
Kare Nuorteva Avatar answered Oct 24 '22 22:10

Kare Nuorteva