Hopefully make the documentation page work a little bit better.
[htmlpurifier-web.git] / release.txt
blob03ec78b5196d1ddd37f0a6957b4c321df54d4121
1 In order to perform a release, a few steps have to be taken:
2 [@] = Automated
3 [ ] = Should be automated
5 == Pre-Procedures ==
7 [Prepare codebase for release]
8 # [@] Run tests/multitest.php, fix any errors
9 # [@] Run `php release1-update.php $VERSION` (bumps version numbers)
10     # [if necessary] Bump version numbers in TODO
11     # Write new WHATSNEW and FOCUS entry
12     # Commit as "Release x.y.z." and push
13 # [ ] Tag and push the release 
14     . `git tag -u 0x869C48DA vx.y.z` (this is Edward's master private key; 
15   substitute with your own if you're making a release.  Use tag message
16   "HTML Purifier x.y.z")
17     . `git push --tags`
18 # [@] `build-all.sh` in releases: Build the zip and tar.gz
19 # [@] Upload files with `upload-all.sh x.y.z`
21  ( Should get some sort of repos that contains just the pristine tarballs/zips??? )
23 # [ ] Build the PEAR release
24     - php package.php
25     - cd library
26     - pear package
27     NOTE: If you need to setup the PEAR environment, setup PEAR first, then:
28         pear install PEAR_PackageFileManager
29             # this is actually a somewhat gnarly knot of dependency jumps
30             # from Ubuntu.  First thing to do is pear upgrade-all, then
31             # run this with --alldeps and manually install the ones that
32             # are beta/alpha
33         pear channel-discover htmlpurifier.org
34 # [@] Run sum-all.sh (generates sha1 checksums)
35 # [@] Run sign-all.sh, enter password when prompted (signs releases)
36 # Update the webpages:
37     - news/YEAR/MODA-name.xhtml
38        . Write a news entry describing the release (see WHATSNEW)
39     - news/YEAR/MODA-name.txt
40         . Use: news item on webpage (add link to webpage as HTML Purifier),
41           download links (substitute in htmlpurifier.org), sha-1 sums.
42         . Sign using `gpg -u 0x869C48DA --clearsign filename` then move *.txt.asc over *.txt original
43     - current.ent
44        . Bump version number and date
45     - Update submodule live/
46         cd live
47         git fetch
48         git checkout vx.y.z
49     - Update .htaccess.in
50     - Full-disclosure for security problems in previous release
51 # Commit and push and mirror.sh
53 == Post-procedures ==
55 # svn import a clean Git checkout of the tag with the .git directory
56   removed with:
57       svn import svn+ssh://ezyang@htmlpurifier.org/home/ezyang/svn/svnroot/htmlpurifier/tags/1.2.3
58 # [@] Regenerate API documentation with `regenerate-docs.sh`
59 # Smoketest release by downloading packages, verify contents list, sha1 and sig
60 # Upload PEAR release at http://htmlpurifier.org/pear-server.php
61 # Regenerate configuration documentation
62     - Run http://htmlpurifier.org/live/configdoc/generate.php
63 # Update relevant feeder sites/lists
64     - [ ] Run Freecode (not Freshmeat) script update-freshmeat.bat (update-freshmeat.php username password)
65         # requires php5-xmlrpc and php5-curl on Ubuntu
66         # NOT WORKING RIGHT NOW, will fix
67     - Announce mailing list <https://panel.dreamhost.com/?tree=mail.list&current_step=Index&next_step=ShowSend&address=admin&domain=htmlpurifier.org>
68 # Add new version items in NEWS for trunk