News for hackers. Stuff that matters.
Re:Conventional Commits by hirundo on Wednesday August 19, 2020 @03:07PM (#24214744)
> Example: Commit message with both ! and BREAKING CHANGE footer:

> refactor!: drop support for Node 6

From Wikipedia's Code Refactoring:

> In computer programming and software design, code refactoring is the process of restructuring existing computer code—changing the factoring—without changing its external behavior.

So if a code change is just a refactor, then its external behavior is unchanged, therefore it is not a breaking change. These two commit labels are incompatible.

Re:Conventional Commits by sonofgod on Wednesday August 19, 2020 @03:26PM (#24215038)
Once the decision has been made that Node 6 is no longer supported, it is then possible to refactor the code so that it uses appropriate modern idioms, such that the external behaviour is unchanged for Node 6+ but will no longer be parsable by Node 5.

In this specific case, it is both a refactor and a breaking change.

Re:Conventional Commits by jschpp on Wednesday August 19, 2020 @03:27PM (#24215047)
I think they use the angular definition which doesn't explicit forbid this

> refactor: A code change that neither fixes a bug nor adds a feature

But yeah I'm with you in saying that this particular example is not well choosen