Gentoo Archives: gentoo-dev

From: Nirbheek Chauhan <nirbheek@g.o>
To: Gentoo Dev <gentoo-dev@l.g.o>
Subject: [gentoo-dev] [git migration] The problem of ChangeLog generation
Date: Tue, 06 Apr 2010 02:13:32
One of the few remaining problems to be solved for the migration to
git for our gentoo-x86/ and gentoo/ trees (besides other
projects/overlays) is the problem of how to handle ChangeLogs.

* It makes zero sense to manually manage ChangeLogs in git[1]
  - Irritating conflicts while merging branches or remote master
    + Similar argument for having only distfile manifests; but I digress...
  - Duplication of effort and information
  - Saves space for local checkouts
* Proposed is to generate ChangeLogs from git commits on the rsync
server side when metadata generation is done
  - Scripts to do this already exist[1]

Now, there are obviously problems with this. Some of them are
documented below alongwith their proposed solutions. If people foresee
other problems with this; they are requested to comment. They are also
welcome to comment if they have a better solution to the problems
listed below.

Also, please try to keep this thread on-topic.

* Messages in ChangeLog are not always the same as the commit messages
(~1% are different)
* Some people place additional information in the commit message which
is intended only for developer use
  - Most of the difference in ChangeLog/commit messages comes from this
* Trivial changes are often not documented in ChangeLogs
  - This is upto the developer's personal preference
  - Some folks do this because of the extra time it takes
    + This use-case becomes irrelevant due to automatic generation of ChangeLog

* Do not re-generate the existing ChangeLog; rather make the ChangeLog
generation script smart enough to only append
  - Solves the "messages not same" problem for existing commits
* Use a separator in the commit message like "== \n" to denote that
everything after this is dev-only information and should be skipped
from the user ChangeLog
  - Solves the problem for people who like to add extra dev-only info
in the CVS commit message
* Ignore commits with "[$tag][trivial]" in the tag[2] from being added
to ChangeLog
  - Keeps the wishes of the developer and does not pollute ChangeLog
with such info

~Nirbheek Chauhan

Gentoo GNOME+Mozilla Team