Workflow for the Publicity/Press announcement

This page describe the current workflow and best practices for the creation and release of announcements.

For stable/point releases, we are testing a new workflow: go to Teams/Publicity/ReleasePointAnnouncements and follow the instructions there. We keep here the old procedure, though for the case the new one has problems.

1a. Start to write the draft using the template provided in the publicity announcements git repository under en/template.wml: it contains all the necessary wml tags

1b. For announcements that need to be embargoed for some reason. For example, they contain information that need to be acked for a third party external to Debian: obituaries, sensitive topics, etc. A DD-only accessible repository hosted in master is used. DDs can clone it with git clone

2. add your draft to the repository (all DDs have rw access to it) in en/$year/ with this namescheme: YYYY-MM-DD-$title.wml (where YYYY-MM-DD is the expected release date, if you've not decided it yet, just add the file under en/drafts/ with a simple title as name).

3. at least 2 days before the expected release date, send a mail to (adding in CC and asking for reviews and translations

4. Press and/or webmasters only! on $expected-release-date publish the announcement in the website: you just need to add it to the webwml CVS repository at webwml/english/News/$year with the namescheme YYYYMMDD.wml). Take care also of all the available translations (usually are just french, spanish and german) commiting also them on the appropriate dirs. Here is a hacky shell loop for moving the files. You will need to adjust the announcement name and also the path to webwml on your system.

#FIXME: read parameters
#FIXME: create missing Makefiles
ann=2015/20150606.wml ; year=2015 ; date=20150606 ; webwml=/home/user/path/to/webwml ; for code in $(ls */$ann | cut -d/ -f 2) ; do lang=$(grep -l LANG=$code $webwml/*/.wmlrc | sed 's/.*webwml.//;s_/.*__') ; mkdir -p $webwml/$lang/News/$year/ ; mv $code/$ann $webwml/$lang/News/$year/$date.wml ; done ; echo These announcements remain: $(ls */$ann)

4.1 Press and/or webmasters only! For stable/oldstable point releases, english/releases/codename/errata.wml and english/template/debian/release_info.wml need to be updated with the version number of the point release.

In the release_info.wml files there are 3 tags to be updated: current_release_* , current_release_date_* and current-cd-release; the 3 of them should wait until the the CD images are ready. You can go on with this workflow safely, and come back here when the CD images are ready to update these 3 tags.

When you come back to this point, you can do it this way even if the images are not ready yet:

4.1.1 Open an ssh session in


4.1.2 Stop the cron jobs that build the website:

   sudo -u debwww crontab -e

4.1.3 Commit the changes in the release_info.wml file (in your local copy, no in

4.1.4 To build the homepage without triggering a whole website build, you should remove the SUBS line in the english/Makefile and commit the result. See this diff as reference:

4.1.5 In, cvs up /srv/ to update the whole website

4.1.6 Build the relevant parts of the website, using the script:

sudo -u debwww /srv/ CD

(then repeat the update-part-without-mirror with other folder, until all the relevant folders are updated. At least: releases, CD, distrib, ports. Don't build the "security" folder because that one takes too long).

4.1.7 Build the homepage and files in the main folder with:

sudo -u debwww /srv/ install

4.1.8 You can review the output of all the website builds in /srv/www.d.o/www

4.1.9 Once the images are ready, trigger to mirrors so the updated website gets published:

sudo -u debwww /srv/

4.1.10 Then in your local copy of the website, undo the changes in english/Makefile and commit. See this commit for reference:

4.1.11 And finally, undo the changes in crontab so the next website build runs as usual:

sudo -u debwww crontab -e

5. Press and/or webmasters only! run a partial rebuild of the website:

   ssh -tt sudo -u debwww /srv/ News

Please note that for new Debian releases the whole website needs rebuilding.

6. now you're ready for creating the mail: the script to create it is the publicity dpn repo under scripts/ Please note that the script is not perfect: a check and a couple of adjustments by hand are usually required (and a patch to improve it, as well!)

./scripts/ -t news -i $year/$date

7. yay! you can finally send the mail to or plus other relevant recipients/lists, if needed (e.g. debian-lts-announce or debconf list). The publicity delegates will moderate your mail you have no permissions to write to that list! As a reminder, -news should be the default place to send things. -announce is reserved for special announcements, such as new point releases etc.

8. Follow the instructions in to send a microblogging that will be mirrored in and other social networks.

9. Remove the announcement from the publicity announcements git repository once it has been published.

10. Finally, you might want to update the debian-timeline if this event is noteworthy.