mirror of
https://github.com/conventional-commits/conventionalcommits.org.git
synced 2026-03-22 21:24:02 -05:00
After v1: About footer(s), git trailers and "multiple footers" #84
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @tunnckoCore on GitHub (Oct 1, 2019).
The 3rd bullet in this list https://github.com/conventional-commits/conventionalcommits.org/pull/175#issuecomment-536398716 and the following comments after it.
I don't see any difference with git trailers, as @bcoe said in one of the comments. Each token/value pair is a trailer. What's the difference between "multiple footers" and "git trailers"? In abstract world, they are children of the footer.
* "subject" is officially called
descriptionI see and always have seen it that way. Associations are a good thing. Such little details make difference. For the same reason I like more
feat!(cli): fooinstead offeat(cli)!: foo- it might be a bit easier to parse, it's more consitent when there is no scope (feat!: foo), and feels similar to function invocation of some languages. But that's a different topic.Example commit message:
It could get parsed to the following object:
In the
commit.footerobject, some more advanced parser, could add more things such asmentions, references (based on trailers), and etc.@JeanMertz commented on GitHub (Oct 1, 2019):
The two differences are:
:<space>and<space>#are supported as separatorsThat, and the fact that a footer doesn’t really exist in the sense that there can only be trailers in a footer, nothing else, is why I suggested the new wording.
Having said that, I don’t have too strong an opinion on this, using existing terminology is definitely a goal worth perusing, as long as it doesn’t cause too much confusion when the implementation itself deviates too much from what people expect to see when they read that terminology.
@bcoe commented on GitHub (Dec 24, 2020):
@JeanMertz @tunnckoCore we've been working to formalize the Conventional Commit grammar:
https://github.com/conventional-commits/parser#the-grammar
Perhaps we could move this conversation there? my hope is that we can formally define the grammar, with a reference implementation, and then map this back into
v2.0.0of the spec.@abitrolly commented on GitHub (Jan 5, 2024):
I think human terminology should come before formal grammar. Specification should specify all details sufficiently for implementation. At the current state Conventional Commit specification doesn't exhibit this property.
As a result, tools like
commitlinthave to invent their own terminology. Here is howcommitlintparses a message.Here at least
subjectandheaderare critical for parsers, but are not defined in the spec. It is also not clear how breaking!is named and where it belongs.