1 In order to perform a release, a few steps have to be taken:
6 [Prepare codebase for release]
7 # Test all older versions: 5.1, 5.0 (5.0.4, because .5 is borked), 4.4, 4.3
8 # [@] Run `php release1-update.php $VERSION` (bumps version numbers)
9 - Update NEWS and Doxyfile files
10 - Bump version in HTMLPurifier.php (two times)
11 # [if necessary] Bump version numbers in TODO
12 # Write new WHATSNEW entry
13 # Commit as "Release x.y.z."
15 [Manage auxiliary branches]
16 if ( need to deprecate old branch ) {
17 # Obsolete old release series
18 - Add OBSOLETE file with text:
19 1.x branch was fully obsoleted by release of 1.y.0. It is no longer supported.
20 Bug and security fixes will not be issued regardless of security.
21 ...and then info on backwards incompatible changes.
23 1.x branch was fully obsoleted by release of 1.y.0. It is no longer supported.
24 } elseif ( creating a new branch for sub-release ) {
25 # If branch doesn't exist yet, branch from the last tag
26 # Update switch2branch script, replacing version number
27 # Open log for trunk, then switch to branch
28 # Merge changes into branch, commit as "Merged r#s for x.y.z release into branch"
29 - Be sure to remove future items from NEWS
32 [Manage strict branch]
33 # Switch to strict branch using `switch2branch-strict.bat`
34 # [@] Run `php release2-strict.php` (merges in strict branch)
40 # [@] `php release3-tag.php` (tags the releases)
41 # [@] Build the zip and tar.gz files:
42 - Run `build-all.sh $VERSION` on the server
43 - Run build-all.bat on Windows computer
44 # [@] Build the PEAR release using package.php and `pear package`
45 - Ensure that you've cleared the Serializer cache
46 - Two stage, run package_pre_pear.bat and package_pear.bat
47 # [@] Run sign-all.bat, enter password when prompted (signs releases)
48 # Update the webpages:
50 . Write a news entry describing the release (see WHATSNEW)
52 . Bump version numbers
54 . [@] Run sum-all.bat (generates sha1 checksums) and update section
55 - Switch the external for live/
60 # Regenerate API documentation
61 - Run the compile_*.bat scripts (takes a while)
62 - Archive them into tars
64 - Delete old folder contents with `rm -r $folder`
65 - Extract with `tar -xf $filename`
66 # Smoketest release by downloading packages, verify contents list, sha1 and sig
67 # Regenerate configuration documentation
68 - Run http://htmlpurifier.org/live/configdoc/generate.php
69 # Update relevant feeder sites/lists
70 - Freshmeat <http://freshmeat.net/add-release/61206/65948/>
71 . Three fields need version number bumps
72 - Announce mailing list <https://panel.dreamhost.com/?tree=mail.list¤t_step=Index&next_step=ShowSend&address=admin&domain=htmlpurifier.org>
73 . Change version number in subject field
74 . Use: news item on webpage (add link to webpage as HTML Purifier),
75 download links (substitute in hp.jpsband.org), sha-1 sums.
76 - Hotscripts listing <http://www.hotscripts.com/account/index.html?section=listings&type=edit&listing_id=65309>
77 . Step 1-3: No changes
78 . Step 4: Bump version number in two fields
79 # Add new version items in NEWS for trunk