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

That's it.