There are two things here: the Changelog format and the announcement format. I think it is probably valuable to separate them.
The announcements should contain the Changelog entries since the last announced version, and they also need to contain the MD5 checksums, filenames and file sizes. The Changelog (for a package or the distribution) will contain all the relevant Changelog entries, but no filenames &c. Since individual packages need a Changelog themselves, it makes sense to have the package maintainer write their Changelog in the same format as appears in the release announcements and in the global Changelog. That way they can just cut-and-paste the Changelog entry they have made into the release announcement, append the file information, and send it off. Regarding the delays between announcements on debian-changes and packages' appearance in the distribution directories: I find it very useful to have information about packages which are on their way to Incoming - this means I can grab them out of there (when they're completely uploaded) without having to wait for anyone to move packages or make announcements. This can also be important for programs with security problems or other urgent bugfixes. We shouldn't just move packages automatically out of incoming, because this would make us far too vulnerable to random people uploading bogus stuff, so this delay can't be eliminated. The conclusion I come to is that there should be at least two lists - one which announces the packages when they're released by the maintainer (and which perhaps has an automatically-generated report from the FTP site maintainer when packages are moved), and one which announces them as they are moved into view. I attach below copies of the only programs (apart from Emacs) I use to generate my Changelog entries. They're pretty much hand-edited: I copy the last version's entry, delete the text, and use the `822-date' script to produce a sensible dateline. I use the equivalent of `md5sum *' and `ls -al *' to produce the MD5 checksum, filename &c information at the bottom of my announcements. Note that none of what I'm saying above means that we need a horrible un-human-readable changelog or announcement format at any stage. My format is perfectly machine-readable. If people want me to write scripts to parse my changelog entries and release announcements I'd be only too happy to do so, or to document my format so that they can doo it. Ian.