This is a summary of the best practice of keeping the control file sane within pkg-kde.
The rationale and introduction is from http://lists.alioth.debian.org/pipermail/pkg-kde-talk/2009-December/001431.html.
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