news.volyx.in

Conventional Commits encourages focus on the wrong things (sumnerevans.com)

372 points by jsve · 84 days ago · 276 comments on HN

Article summary

The article argues that Conventional Commits, a standard for formatting commit messages, is flawed and encourages focus on the wrong things. It prioritizes the type of change over the scope, which is more important for understanding the impact of a commit. The author suggests that scope-prefixed commit messages are a better approach, citing examples from successful open-source projects. The article also criticizes Conventional Commits' promises, such as automatically generating changelogs and determining semantic version bumps, as unfulfilled or misguided.

Main themes

  • Conventional Commits
  • Commit message formatting
  • Scope vs type
  • Changelog generation
  • Semantic versioning
  • Software development best practices

What commenters say

  • Conventional Commits are useful for historical context, but their structure is not useful for release management or automation.
  • The type of change in a commit message is redundant and can be inferred from the description, making Conventional Commits unnecessary.
  • Including issue numbers in commit messages is important for context and tracking, but it's not necessary to include them in the title.
  • Conventional Commits' focus on type over scope makes it difficult to understand the impact of a commit, and a scope-prefixed approach is more effective.
  • Automatically generating changelogs from commit messages is not a good idea, as it can lead to inaccurate or misleading information.
  • The benefits of Conventional Commits, such as improved changelog generation and semantic versioning, are not realized in practice and are outweighed by its limitations.
  • A good commit message should describe the change and its motivation, rather than relying on a specific format or convention.
  • The use of Conventional Commits can lead to a lack of clarity and consistency in commit messages, making it harder for developers to understand the codebase.