A guide to sending security advisory e-mails
============================================

--------------------------------------------------------
Step 1: Prepare the advisory texts, patches and metadata
--------------------------------------------------------

[details are covered elsewhere]

----------------------------------
Step 2: Prepare the website update
----------------------------------

  $ cd ${PMC_AREA_WC}/security
  $ ${TRUNK_WC}/tools/dist/advisory.py generate \
        --destination=${SITE_WC}/publish/security \
        CVE-2015-5259 CVE-2015-5343 ...

This will generate a plain-text version of the advisories, including
patches etc., suitable for publishing on our web site. Once these
are generated, make sure you add the links to the new files to:

    ${SITE_WC}/publish/security/index.html


-----------------------------------------------
Step 3: Check the advisories and their metadata
-----------------------------------------------

  $ cd ${PMC_AREA_WC}/security
  $ ${TRUNK_WC}/tools/dist/advisory.py test \
        --username=someone \
        --revision=22091347 \
        --release-versions=1.8.15,1.9.3 \
        --release-date=2015-12-15 \
        CVE-2015-5259 CVE-2015-5343 ...

Assuming all the required bits are in place, this will generate the
complete text of a GPG-signed e-mail message, signed by and sent from
someone@apache.org, for all the listed CVE numbers.

Note the arguments:

    --revision    is the revision on
                  https://dist.apache.org/repos/dist/dev/subversion
                  in which the tarballs are/will be available
                  (see: notice-template.txt in ${PMC_AREA_WC}/security).

    --release-versions   is a comma-separated list of version numbers
                         in which fixes for the CVE numbers will be
                         available.

    --release-date       is the expected date of the release(s).


----------------------
Step 4: Send the mails
----------------------

  $ cd ${PMC_AREA_WC}/security
  $ ${TRUNK_WC}/tools/dist/advisory.py send \
        (the rest of the arguments are as in step 3).

The mails will be sent one at a time to each recipient separately.


--------------------------------------------------
Step 5: Wait for the release. Release.
        Commit the site update prepared in step 1.
--------------------------------------------------



TODO: security/mailer.py does not calculate the micalg= PGP/MIME
      parameter based on the properties of the actual PGP key
      used. It's currently hard-coded as "pgp-sha512" which *should*
      be correct for anyone signing these mails with their ASF release
      signing key.