~adeodato/ blog/ entries/ 2007/ 12/ 28/ omg, DEBCHANGE_RELEASE_HEURISTIC=changelog

omg, DEBCHANGE_RELEASE_HEURISTIC=changelog

Until today, my workflow for handling debian/changelog was:

  % dch -i -D UNRELEASED
    (or dch -v X -D UNRELEASED)
  % dch -t
  ...
  % dch -t
  % dch -r

The first call opens a new changelog entry with distribution set to UNRELEASED, then each dch -t call adds successive changelog lines (the -t makes dch leave the trailer line untouched, which I find very useful, since it reduces noise in diffs, particulary in multi-maintainer packages), and finally dch -r changes the distribution from UNRELEASED to unstable, and updates the trailer line.

While preparing this blog entry, which was about dch -t only, recommending it for everybody, I found that the above workflow is nicely automated for you if you use --release-heuristic changelog, or set DEBCHANGE_RELEASE_HEURISTIC=changelog in ~/.devscripts. Automated as in, just running dch will open a new entry if appropriate (that is, if the latest entry is not UNRELEASED), or will add new lines defaulting to -t. So the workflow now is:

  % dch
    (or dch -v X)
  % dch
  ...
  % dch
  % dch -r

Kudos to Guillem and Joey for #435980 and #448795, and the devscripts maintainers, of course.