Adopting standard style for changelog entries
Modestas Vainius
modestas at vainius.eu
Sat Dec 12 23:48:33 UTC 2009
Hello,
I'm reviving an old discussion [1] (or rather summing it up and finally
proposing) about how we should manage our changelogs. Unfortunately, that
discussion ended without conclusions but had some ideas and considerations
expressed.
FWIW, I don't think current practice can continue any longer because:
1) it is not compatible with debchange (dch). dch is a standard brilliant tool
with nice interactive and highly configurable CLI interface. One the most
major annoyances with "current way" is that it's not possible to SAFELY
automate mass addition of new changelog messages. I have to check if dch gets
things right afterwards which takes my precious time which I could have spent
doing actual work;
2) it involves way too much manual changelog editing and sometimes even
copy&pasting from the entries way below current one. Typically, the 2nd person
who edits the changelog for the current release is the one who has to do most
of the manual tweaking. That's due to the fact that when a new changelog entry
is created, rarely anybody bothers to pass -m to dch which results in the
personal changelog entry. The 2nd person who makes changes for the release has
to add '+++ Changes' for the first committer, '+++ Changes' for himself and
find where to copy&paste Debian Qt/KDE Maintainers <...> changelog trailer
from. Over the years, I really got tired of this and consistently tried to
avoid "personal" entries in order not to make things worse for others.
Unfortunately, I was kind of alone with this effort.
Given previous discussion, a couple of this things are clear:
a) Everyone agrees that '+++ Changes by Firstname Lastname' can be replaced by
a standard '[ Firstname Lastname ]'. So let's make this finally happen.
b) The disagreement about default dch style is that when two or more people
make changes, maintainer trailer should contain the team name and address
rather than the name of the last maintainer who did changes. Personally, I'm
neutral about this issue despite the fact that dpkg-genchanges uses a
maintainer trailer to generate Changed-By field. Changed-By is used to
validate DM uploads when Maintainer is a team, but none of KDE packages is
tagged DMUA so that's no-issue at least at the moment.
So having in mind both a) and b), it is possible to adopt a standard dch-based
workflow. Given the following debchange settings in /etc/devscripts.conf:
DEBCHANGE_RELEASE_HEURISTIC=changelog
DEBCHANGE_MULTIMAINT_MERGE=yes
DEBCHANGE_MAINTTRAILER=yes
and assuming the previous changelog entry is properly 'released', the
following will work:
---------------------------------------
1. In order to create a new changelog entry or add a new changelog message, it
is enough to execute a plain `dch` without worrying about anything else (e.g.
whether I'm the first, the second committer or whatever). For example:
$ dch "First change."
$ dch "Second change."
$ DEBFULLNAME="2nd committer" DEBEMAIL="example at example.org" dch "Third
change."
$ dch "Forth change."
$ DEBFULLNAME="3nd commiter" DEBEMAIL="example2 at example2.org" dch "Fifth
change."
Will result into this:
package (4:4.3.4-2) UNRELEASED; urgency=low
[ Modestas Vainius ]
* First change.
* Second change.
* Forth change.
[ 2nd committer ]
* Third change.
[ 3nd committer ]
* Fifth change.
-- Modestas Vainius <modax at debian.org> Sun, 13 Dec 2009 00:49:13 +0200
Due to DEBCHANGE_RELEASE_HEURISTIC=changelog, UNRELEASED is mandatory for not-
yet-released changes.
Due to DEBCHANGE_MAINTTRAILER=yes, the trailer of the first committer is
maintained when others add changes. That's typically a more VCS friendly
behaviour but actually it might be optional for this workflow to actually
work. I have not tested without it.
"* New upstream release." can still be put above the [ first maintainer ] as
needed. However, this will have to be done manually in some cases.
2. When it is time to release, `dch -r` MUST be used. It will update the
trailer and distribution (UNRELEASED to the previously used one) as necessary.
In order to do a "team upload", simply the following could be used:
$ DEBFULLNAME="Debian Qt/KDE Maintainers" DEBEMAIL="debian-qt-
kde at lists.debian.org" dch -r
You can create a shell alias for this at the moment but I will make a patch
for dch to optionally take DEBFULLNAME/DEBEMAIL from the Maintainer field in
debian/control.
In addition to `dch -r`, the only remaining non-automatic chore might be
changing of the "unofficial" (0rX, N~preX) revision number to the normal one.
So:
package (4:4.3.4-2) unstable; urgency=low
[ Modestas Vainius ]
* First change
* Second change
* Forth change.
[ 2nd commiter ]
* Third change.
[ 3nd commiter ]
* Fifth change.
-- Debian Qt/KDE Maintainers <debian-qt-kde at lists.debian.org> Sun, 13 Dec
2009 01:09:03 +0200
---------------------------------------
That's it. And it is so painless contrary to the previous practice. Unless
somebody objects in the following days, this can be considered effective for
the next changes. We have ~30 packages to care of and any wasted minute which
could have been saved is precious.
1. http://lists.alioth.debian.org/pipermail/pkg-kde-talk/2008-July/000939.html
--
Modestas Vainius <modestas at vainius.eu>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.alioth.debian.org/pipermail/pkg-kde-talk/attachments/20091213/af4e7086/attachment.pgp>
More information about the pkg-kde-talk
mailing list