In order to perform a release, a few steps have to be taken: [@] = Automated == Pre-Procedures == [Prepare codebase for release] # [@] Run tests/multitest.php, fix any errors # [@] Run `php release1-update.php $VERSION` (bumps version numbers) # [if necessary] Bump version numbers in TODO # Write new WHATSNEW and FOCUS entry # Commit as "Release x.y.z." [Manage auxiliary branches] if ( need to deprecate old branch ) { # Obsolete old release series - Add OBSOLETE file with text: x.y branch was fully obsoleted by release of x.y.0. It is no longer supported. Bug and security fixes will not be issued regardless of security. ...and then info on backwards incompatible changes. - Add line to NEWS: x.y branch was fully obsoleted by release of x.y.0. It is no longer supported. } elseif ( creating a new branch for sub-release ) { # If branch doesn't exist yet, branch from the last tag # Update switch2branch script, replacing version number # Open log for trunk, then switch to branch # Merge changes into branch, commit as "Merged r#s for x.y.z release into branch" - Be sure to remove future items from NEWS } [Perform release] # [@] `php release2-tag.php` (tags the releases) # [@] Build the zip and tar.gz files: - Run `./build.sh $VERSION` on the server, download with 'download.bat' - Run build.bat on Windows computer, upload the files # [@] Build the PEAR release using package_pear.bat (package.php and `pear package`) # [@] Run sum-all.bat (generates sha1 checksums) # [@] Run sign-all.bat, enter password when prompted (signs releases) # Update the webpages: - news.xhtml . Write a news entry describing the release (see WHATSNEW) - current.ent . Bump version number and date - Switch the external for live/ - Update .htaccess.in # Update (svn update) # Commit (svn commit) == Post-procedures == # Regenerate API documentation (TODO: AUTOMATE) - Run the compile_*.bat scripts (takes a while) - Archive them into tars - Upload to server - Reload documents with ./reload-docs.sh # Smoketest release by downloading packages, verify contents list, sha1 and sig # Upload PEAR release at http://htmlpurifier.org/pear-server.php # Regenerate configuration documentation - Run http://htmlpurifier.org/live/configdoc/generate.php # Update relevant feeder sites/lists - [@] Run Freshmeat script update-freshmeat.bat (update-freshmeat.php username password) - Announce mailing list . Change version number in subject field . Use: news item on webpage (add link to webpage as HTML Purifier), download links (substitute in htmlpurifier.org), sha-1 sums. - Hotscripts listing . Step 1-3: No changes . Step 4: Bump version number in two fields # Add new version items in NEWS for trunk