Update release procedures: more automation!
authorEdward Z. Yang <edwardzyang@thewritingpot.com>
Sat, 5 May 2007 22:09:48 +0000 (5 22:09 +0000)
committerEdward Z. Yang <edwardzyang@thewritingpot.com>
Sat, 5 May 2007 22:09:48 +0000 (5 22:09 +0000)
git-svn-id: http://htmlpurifier.org/svnroot@1030 48356398-32a2-884e-a903-53898d9a118a

release.txt
releases/build-all.bat [new file with mode: 0644]
releases/build-all.sh [new file with mode: 0755]
releases/build.bat [new file with mode: 0644]
releases/sign-all.bat [new file with mode: 0644]

index f0e3150..734f2cd 100644 (file)
@@ -3,11 +3,15 @@ In order to perform a release, a few steps have to be taken:
 
 == Pre-Procedures ==
 
-#  [@] Bump version numbers, commit as "Release x.y.z."
+[Prepare codebase for release]
+#  [@] Run `php release.php` (bumps version numbers)
     - Update NEWS and Doxyfile files
     - Bump version in HTMLPurifier.php (two times)
-    - [if necessary] Bump version numbers in TODO
+# [if necessary] Bump version numbers in TODO
 # Write new WHATSNEW 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:
@@ -23,13 +27,21 @@ if ( need to deprecate old 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
 }
-# Merge into strict branch: revision of last release + 1 to head
-# Tag the releases (trunk or rel-branch and strict-branch)
-# Build the zip and tar.gz files:
-    - Use releases/build.sh to build the tarball and download it
-    - For the zip, manually perform the build, upload to server
-# Build the PEAR release using package.php
-# Sign the releases using GPGShell
+
+[Manage strict branch]
+# [@] Run `php release2-strict.php` (merges in strict branch)
+    - Resolve conflicts
+    - Run unit tests
+    - Commit
+
+[Perform release]
+# [@] `php release3-tag.php` (tags the releases)
+# [@] Build the zip and tar.gz files:
+    - Run `build-all.sh $VERSION` on the server
+    - Run build-all.bat on Windows computer
+# [@] Build the PEAR release using package.php and `pear package`
+    - Two stage, run pear_pre_package.bat and pear_package.bat
+# [@] Run sign-all.bat, enter password when prompted (signs releases)
 # Update the webpages:
     - index.html
        . Write a news entry describing the release (see WHATSNEW)
diff --git a/releases/build-all.bat b/releases/build-all.bat
new file mode 100644 (file)
index 0000000..9807684
--- /dev/null
@@ -0,0 +1,5 @@
+@echo off\r
+\r
+if [%1] neq [] (set VERSION=%1) else (set /p VERSION=Version? )\r
+build.bat %VERSION%\r
+build.bat %VERSION%-strict
\ No newline at end of file
diff --git a/releases/build-all.sh b/releases/build-all.sh
new file mode 100755 (executable)
index 0000000..c71fa3e
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/bash
+VERSION="$1"
+./build.sh $VERSION
+./build.sh $VERSION-strict
\ No newline at end of file
diff --git a/releases/build.bat b/releases/build.bat
new file mode 100644 (file)
index 0000000..68aec30
--- /dev/null
@@ -0,0 +1,6 @@
+@echo off\r
+\r
+if [%1] neq [] (set VERSION=%1) else (set /p VERSION=Version? )\r
+svn export --force http://htmlpurifier.org/svnroot/htmlpurifier/tags/%VERSION% htmlpurifier-%VERSION%\r
+zip -r htmlpurifier-%VERSION%.zip htmlpurifier-%VERSION%\r
+rmdir /S /Q htmlpurifier-%VERSION%
\ No newline at end of file
diff --git a/releases/sign-all.bat b/releases/sign-all.bat
new file mode 100644 (file)
index 0000000..55dcfe2
--- /dev/null
@@ -0,0 +1,7 @@
+@echo off\r
+\r
+if [%1] neq [] (set VERSION=%1) else (set /p VERSION=Version? )\r
+gpg -b htmlpurifier-%VERSION%.tar.gz\r
+gpg -b htmlpurifier-%VERSION%-strict.tar.gz\r
+gpg -b htmlpurifier-%VERSION%.zip\r
+gpg -b htmlpurifier-%VERSION%-strict.zip\r