Update release procedures: more automation!
[htmlpurifier-web.git] / release.txt
blob734f2cd97bb2d7766a6cc10d38d5eea9d4454ab4
1 In order to perform a release, a few steps have to be taken:
2 [@] = Automated
4 == Pre-Procedures ==
6 [Prepare codebase for release]
7 #  [@] Run `php release.php` (bumps version numbers)
8     - Update NEWS and Doxyfile files
9     - Bump version in HTMLPurifier.php (two times)
10 # [if necessary] Bump version numbers in TODO
11 # Write new WHATSNEW entry
12 # Commit as "Release x.y.z."
14 [Manage auxiliary branches]
15 if ( need to deprecate old branch ) {
16     # Obsolete old release series
17         - Add OBSOLETE file with text:
18     1.x branch was fully obsoleted by release of 1.y.0. It is no longer supported.
19     Bug and security fixes will not be issued regardless of security.
20           ...and then info on backwards incompatible changes.
21         - Add line to NEWS:
22     1.x branch was fully obsoleted by release of 1.y.0. It is no longer supported.
23 } elseif ( creating a new branch for sub-release ) {
24     # If branch doesn't exist yet, branch from the last tag
25     # Update switch2branch script, replacing version number
26     # Open log for trunk, then switch to branch
27     # Merge changes into branch, commit as "Merged r#s for x.y.z release into branch"
28         - Be sure to remove future items from NEWS
31 [Manage strict branch]
32 # [@] Run `php release2-strict.php` (merges in strict branch)
33     - Resolve conflicts
34     - Run unit tests
35     - Commit
37 [Perform release]
38 # [@] `php release3-tag.php` (tags the releases)
39 # [@] Build the zip and tar.gz files:
40     - Run `build-all.sh $VERSION` on the server
41     - Run build-all.bat on Windows computer
42 # [@] Build the PEAR release using package.php and `pear package`
43     - Two stage, run pear_pre_package.bat and pear_package.bat
44 # [@] Run sign-all.bat, enter password when prompted (signs releases)
45 # Update the webpages:
46     - index.html
47        . Write a news entry describing the release (see WHATSNEW)
48        . Bump all the version numbers in the download section
49        . Generate sha1 checksums and update those
50     - comparison.html
51        . Bump the version and release date (two areas)
52 # Commit
54 == Post-procedures ==
56 # Regenerate API documentation
57     - Run the compile_*.bat scripts (takes a while)
58     - Archive them into tars
59     - Upload to server
60     - Delete old folder contents with `rm -r $folder`
61     - Extract with `tar -xf $filename`
62 # Smoketest release by downloading packages, verify contents list, sha1 and sig
63 # Regenerate configuration documentation
64     - Run http://hp.jpsband.org/live/configdoc/generate.php
65 # Add new version to bugtracker at:
66     - http://hp.jpsband.org/mantis/manage_proj_edit_page.php?project_id=1
67 # Update relevant feeder sites/lists
68     - Freshmeat <http://freshmeat.net/add-release/61206/65948/>
69         . Three fields need version number bumps
70     - Announce mailing list <https://panel.dreamhost.com/?tree=mail.list&current_step=Index&next_step=ShowSend&address=htmlpurifier&domain=jpsband.org>
71         . Change version number in subject field
72         . Use: news item on webpage (add link to webpage as HTML Purifier),
73           download links (substitute in hp.jpsband.org), sha-1 sums.
74     - Hotscripts listing <http://www.hotscripts.com/account/index.html?section=listings&type=edit&listing_id=65309>
75         . Step 1-3: No changes
76         . Step 4: Bump version number in two fields
77 # Add new version items in NEWS for trunk