Steps To Perform When Building a Public Release

* "make distcheck"

* ./maketgz
 then upload the 3 curl packages maketgz created

* update these files:
  www/_download.html
  www/_changes.html
  www/_newslog.html
  www/Makefile

* commit the web changes

* 'cvs commit'

* 'cvs tag'

* write the release announcement, including:
  - changes / bugfixes
  - other curl-related news
  - contributors

* mail release-announcement to curl-announce and curl-users
