[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[tracecompass-dev] Adding metadata to the commit message - Incubator

Hello all,

This is a long mail, but here's the jist of it:

TL;DR- let's add some fixed metadata to commit messages to autogenerate new and noteworthies.

Now for the actual meat.

We have an opportunity in the incubator. After 2 years, we have a crazy amount of features in it... This is proof that there's a need for it, Kudos to Genevieve on spearheading this initiative. Soon we will probably have more user facing features in the incubator than in trace compass! Now features are not necessarily 1-1 correlated to git commits, so I want to try something out in order to better trace features. That's right, we're gonna try to trace our processes too!

We basically need a changelog. However, I personally find maintaining yet another file to be difficult, also, it would add an extra burden on the feature developer. We already have great git habits, no patch has gotten in with a commit named "Fix" yet. :) What I propose is we add semantic tags on the ones defined by the keepachangelog.com site to our commit messages, not in the titles but rather in the body.

* [Added] for new features.
* [Changed] for changes in existing functionality.
* [Deprecated] for soon-to-be removed features.
* [Removed] for now removed features.
* [Fixed] for any bug fixes.
* [Security] in case of vulnerabilities.

What advantages does putting these tags in git give?

1- it's part of the commit reflex
2- we can make arbitrary N&N's between arbitrary commits
2a- our N&N's will no longer be bound to releases
2B- we can make a release at ANY commit. (Continuous Delivery?)

Questions and answers:

Q: What happens if we mess up?

A: Our git is permanent, we need to assume it. Don't worry too much, it won't be new and noteworthy in a year or so. :)

Q: This sounds like more work... why do it?

A: I am wagering on the fact that it is less work, since we won't need to compile the new and noteworthies at every realease

Q: But the incubator has no releases!

A: Yes, however, we are now incubating a process! Isn't that cool?

Q: Can we use these tags in the main trace compass too?

A: Yes! The tags may change a bit, but I'm pretty sure the original ones are good. We can always add tags though.

Q: What will it look like?

A: Let's say we have this commit message:

  flamegraph: Show the X axis in percentages

  Instead of showing in number of samples or times, the flamegraph now shows entries in percentages. This has the advantage that groups with less data will still be visible without needing to zoom in. The total is written next to the last group's name.

  Signed-off-by: GeneviÃve Bastien <gbastien+lttng@xxxxxxxxxxxx>

becomes

  flamegraph: Show the X axis in percentages

  Instead of showing in number of samples or times, the flamegraph now shows entries in percentages. This has the advantage that groups with less data will still be visible without needing to zoom in. The total is written next to the last group's name.

  [Changed] Give option to have relative time in flamegraph

  Signed-off-by: GeneviÃve Bastien <gbastien+lttng@xxxxxxxxxxxx>

Thoughts?

Matthew Khouzam, Big fan of the project. ð

references:

semver.org
keepachangelog.com
https://seesparkbox.com/foundry/semantic_commit_messages<-- investigates, but incompatible with our component based headers.