Release 4.15.0
[htmlpurifier-web.git] / release.txt
blob368bdca4c311d056b7b288b543baf7e8f2f833fa
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 update-for-release $VERSION` (bumps version numbers)
10     # [if necessary] Bump version numbers in TODO
11     # Write new WHATSNEW entry
12     # Commit as "Release x.y.z."
13     # git push
14 # [ ] Tag and push the release 
15     . `git tag -u 0x869C48DA vx.y.z` (this is Edward's master private key; 
16   substitute with your own if you're making a release.  Use tag message
17   "HTML Purifier x.y.z")
18     . `git push --tags`
19 # [@] `./build-all.sh ../../htmlpurifier x.y.z` in releases: Build the zip and tar.gz
20 # [@] Upload files with `upload-all.sh x.y.z`
22  ( Should get some sort of repos that contains just the pristine tarballs/zips??? )
24 # [ ] Build the PEAR release
25     - git clone htmlpurifier htmlpurifier-pristine
26     - cd htmlpurifier-pristine
27     - php package.php
28     - cd library
29     - pear package
30     NOTE: If you need to setup the PEAR environment, setup PEAR first, then:
31         pear install PEAR_PackageFileManager2
32             # this is actually a somewhat gnarly knot of dependency jumps
33             # from Ubuntu.  First thing to do is pear upgrade-all, then
34             # run this with --alldeps and manually install the ones that
35             # are beta/alpha
36         pear channel-discover htmlpurifier.org
37 # [@] Run `./sum-all.sh x.y.z` (generates sha1 checksums)
38 # [@] Run `./sign-all.sh x.y.z`, enter password when prompted (signs releases)
39 # Update the webpages:
40     - news/YEAR/MODA-name.xhtml
41        . Write a news entry describing the release (see WHATSNEW)
42     - news/YEAR/MODA-name.txt
43         . Use: news item on webpage (add link to webpage as HTML Purifier),
44           download links (substitute in htmlpurifier.org), sha-1 sums.
45         . Sign using `gpg -u 0x869C48DA --clearsign filename` then move *.txt.asc over *.txt original
46     - current.ent
47        . Bump version number and date
48     - Update submodule live/
49         cd live
50         git fetch --tags
51         git checkout vx.y.z
52     - Update .htaccess.in
53     - Full-disclosure for security problems in previous release
54 # Commit and push and mirror.sh
55     cd /mit/ezyang/web_scripts/htmlpurifier
56     git pull
59 == Post-procedures ==
61 # [ OBSOLETE ] svn import a clean Git checkout of the tag with the .git directory
62   removed with:
63       svn import svn+ssh://ezyang@htmlpurifier.org/home/ezyang/svn/svnroot/htmlpurifier/tags/1.2.3
64 # [ BROKEN ] [@] Regenerate API documentation with `regenerate-docs.sh`
65 # Smoketest release by downloading packages, verify contents list, sha1 and sig
66 # Pirum the pear release
67     scp ~/Dev/htmlpurifier-pristine/library/HTMLPurifier-$VERSION.tgz athena.dialup.mit.edu:~/web_scripts/htmlpurifier
68     # On scripts
69     php -d extension=json.so pirum add . HTMLPurifier-4.10.0.tgz
70 # Regenerate configuration documentation
71     - Run http://htmlpurifier.org/live/configdoc/generate.php
72 # Update relevant feeder sites/lists
73     [ BROKEN ] - Announce mailing list <https://panel.dreamhost.com/?tree=mail.list&current_step=Index&next_step=ShowSend&address=admin&domain=htmlpurifier.org>
74     - htmlpurifier@mit.edu
75 # Add new version items in NEWS for trunk
76 # Regenerate website
77     - Run http://htmlpurifier.org/xhtml-compiler/update.php
78     - Run http://htmlpurifier.org/xhtml-compiler/htaccess.php