|
NeoOffice 2.2.1 Release Tasks
From NeoWiki
This page is an attempt to document all of the tasks required to release NeoOffice 2.1. This page is by no means comprehensive, but hopefully as we work through the release process, we will leave behind enough details to make future releases simpler and less error prone.
Here is what the colors mean:
Not yet assigned | |
Assigned but not yet due |
Contents |
Builds
In this release, there is no change in the OpenOffice.org tag that we are using so this build is far simpler than the NeoOffice 2.2.1 Early Access build. However, we need to bundle the latest Akua icon set changes and updated Mac OS X Address Book resource files. These changes will mean that in this release, there will not be a patch that upgrades a NeoOffice 2.2.1 Early Access installation.
Task | Due Date | Assigned | Status |
Create NeoOffice-2_2_1_Early_Access_branch branch from the HEAD branch for NeoOffice 2.2.1 Early Access so that we can continue to do bug fixes and release Patches while we are working on this release. Note: After creating the branch, I invoked the following command in my NeoOffice 2.2.1 Early Access workspace to ensure that I don't accidently pull NeoOffice 2.2.1 changes into my build: cvs update -r NeoOffice-2_2_1_Early_Access_branch |
08/16/07 | pluby | Done |
Perform a clean checkout of the HEAD branch and set build to build with a new version and NeoOffice and RetroOffice trademarked product names. This includes the following steps:
|
08/16/07 | pluby | Done |
Verify that ooo-build does not have a newer tag than the OOO_BUILD_2_2_1 tag. |
08/16/07 | pluby | Done |
Verify that odf-converter does not have a newer tag than the word1.1-M1 tag. |
08/16/07 | pluby | Done |
Perform a clean checkout and build of the HEAD branch on Mac OS X 10.4 Intel with gcc 4.0.1. Note: don't forget to copy custom.neo.mk file to custom.mk so that the clean checkout will build with the trademarked product name |
08/16/07 | pluby | Done |
Perform a clean checkout and build of the HEAD branch on Mac OS X 10.4 PowerPC with gcc 3.3. Note: don't forget to copy custom.neo.mk file to custom.mk so that the clean checkout will build with the trademarked product name |
08/16/07 | pluby | Done |
Verify that none of the NeoOffice Intel build's executables or libraries link to any X11 libraries. Note: to do this task, install your latest NeoOffice build and, in a terminal, execute the following commands: sh cd /Applications/NeoOffice.app/Contents/MacOS for i in `find . -type f`; do echo $i ; otool -L $i 2>&1 | grep X11; done If none of the binaries link to any X11 libraries, the above commands will only print a list of files. However, if you see any lines that look similar to the following, the file listed just before this type of line is linked to an X11 library and this must be correct before the NeoOffice binaries can be released. /usr/X11R6/lib/libX11.6.dylib (compatibility version 6.2.0, current version 6.2.0) |
08/16/07 | pluby | Done |
Verify that none of the NeoOffice PowerPC build's executables or libraries link to any X11 libraries. Note: Use the same steps as used for the matching Intel task. |
08/16/07 | pluby | Done |
Modify and test bin/installutils script to treat NeoOffice 2.2.1 Early Access as a match. In this release, language pack resource files are incompatible so we want to preserve them in they exist. Note: I tested this code by building the installer, language packs, and patch installer and then doing the following steps:
|
08/16/07 | pluby | Done |
Commit and test updated icon files in etc/package.
|
08/16/07 | pluby | Done |
Get latest version of DicOOo.sxw and FontOOo.sxw files, replace all references to the Control key with the Command key, and commit files in etc/share/dict/ooo. Note: to do this task, do the following steps:
sh for i in `find /path/to/first/directory -name content.xml -o -name "Translation*.xml"`; do ( cat $i ; echo ) | tr '\r' '\n' > $i.tmp mv -f $i.tmp $i done sh for i in `find /path/to/first/directory -name content.xml -o -name "Translation*.xml"`; do cat $i | \ sed 's#\[CTRL\]#[Command]#g' | \ sed 's#\[Ctrl\]#[Command]#g' | \ sed 's#\[ctrl\]#[Command]#g' | \ sed 's#\[Strg\]#[Command]#g' | \ sed 's# CTRL #[Command]#g' | \ sed 's#\(Ctrl\)#[Command]#g' | \ sed 's#«Ctrl»#[Command]#g' | \ sed 's#OpenOffice\.org#NeoOffice#g' | \ sed 's#OpenOffice#NeoOffice#g' | \ sed 's#/NeoOfffice/#/OpenOffice.org/#g' > $i.tmp mv -f $i.tmp $i done sh cd /path/to/first/directory zip -r /path/to/etc/share/dict/ooo/DicOOo.sxw . |
08/16/07 | pluby | Done |
Merge any NeoOffice 2.2.1 Early Access bug fixes committed to the NeoOffice-2_2_1_Early_Access_branch branch. |
08/16/07 | pluby | Done |
Tag the code in the HEAD branch with the NeoOffice-2_2_1 and RetroOffice-2_2_1 tags. Note: Because the installer build checks out source code from the anoncvs.neooffice.org server, the following steps must be done to complete this task properly:
|
08/16/07 | pluby | Done |
Create releasable NeoOffice 2.2.1 and RetroOffice 2.2.1 builds for Intel. Note: the following steps are overkill, but they ensure that all recent changes to the NeoOffice custom code has been built:
|
08/16/07 | pluby | Done |
Create releasable NeoOffice 2.2.1 and RetroOffice 2.2.1 builds for PowerPC. Note: Use the same steps as used for the matching Intel task. |
08/16/07 | pluby | Done |
Create backup copy of releasable Intel binaries and upload them to staging server. The following steps are the steps that I used to create my backup copy:
sftp all 58 files up to staging server and chmod 444 *.dmg all of the files on the staging server. diff the md5 *Intel.dmg | sort' output of the files on the server and in local NeoOffice-2.2.1 directory. Repeat the above steps using RetroOffice-2.2.1 instead of NeoOffice-2.2.1 and install_X11/*.dmg instead of install/*.dmg. Put the NeoOffice-2.2.1 and RetroOffice-2.2.1 folders in a new empty directory and create a CD master NeoRetroOffice-2.2.1.cdr file of the new directory using the following command: hdiutil create -srcfolder /path/to/new/directory \ -format UDTO -ov -o /path/to/output/NeoRetroOffice-2.2.1.cdr |
08/16/07 | pluby | Done |
Create backup copy of releasable PowerPC binaries and upload them to staging server. Note: Use the same steps as used for the matching Intel task (except diff using md5 *PowerPC.dmg | sort'. |
08/16/07 | pluby | Done |
Verify that the releasable installers and one or more language packs install and run on Intel for the following Mac OS X versions:
|
08/16/07 | pluby | Done |
Verify that the releasable installers and one or more language packs install and run on PowerPC for the following Mac OS X versions:
|
08/16/07 | pluby | Done |
Pre-Release to Early Access Members
Task | Due Date | Assigned | Status |
Create 2.2.1 Early Access tag for the www.neooffice.org website to avoid modifying production web pages while we modify the web pages in the test website. Steps:
|
08/16/2007 | pluby | Done |
Copy the 116 NeoOffice 2.2.1 installer NeoOffice-2.2.1-*.dmg files from the staging area (see Builds section on this page for that task) into the URLs in listed in the www.neooffice.org website's /neojava/earlyaccessmirrors.php file and chmod 444 the files. | 08/17/2007 | pluby | Done |
Update all version names, file URLs, and patch version in all of the earlyaccess*.php files in the www-test.neooffice.org web pages. Note: I used the following steps to do this:
sh for i in `find . -name "earlyaccess*.php" -o -name "header.html"`; do sed 's#NeoOffice 2\.2\.1 Early Access#NeoOffice 2.2.1#g' $i | \ sed 's#_Early_Access##g' > $i.tmp mv $i.tmp $i done sh for i in `find . -name "earlyaccesspatch.php" -o -name "header.html"`; do sed 's#Patch 2#Patch 0#g' $i | \ sed 's#Patch-2#Patch-0#g' > $i.tmp mv $i.tmp $i done |
08/17/2007 | pluby | Done |
Update the 116 file sizes in all of the earlyaccessdownload.php and earlyaccesslangpackdownload.php files in the www-test.neooffice.org web pages. Note: I used the following steps to do this:
ls -l /directory/NeoOffice-2.2.1_Early_Access/binaries/NeoOffice-2.2.1_Early_Access-*.dmg | \ awk '{print $9 " " $5}' | \ sed 's#^.*NeoOffice-2.2.1_Early_Access#NeoOffice-2.2.1#' | \ sort > /path/to/a/new/file ls -l /directory/NeoOffice-2.2.1/binaries/NeoOffice-2.2.1-*.dmg | \ awk '{print $9 " " $5}' | \ sort > /path/to/a/new/file join /file/from/first/step /file/from/second/step | \ sed 's#^.*dmg ##' | \ sed 's# #\##' | \ sed 's#^#sed "s\##' | \ sed 's#$#\#g" | \\#' > /path/to/a/new/file for i in `find . -name "earlyaccessdownload.php" -o -name "earlyaccesslangpackdownload.php"`; do cat $i | \ cat > $i.tmp mv $i.tmp $i done sh /path/to/file/edited/in/last/step |
08/17/2007 | pluby | Done |
Make the NeoOffice 2.2.1 binaries downloadable from the www.neooffice.org website's Early Access download pages by updating the www.neooffice.org website's pages to match what is in the www-test.neooffice.org website's pages. Login into the www.neooffice.org server, cd to the its webroot directory, and invoke the following command: cvs update -Ad ; chmod -Rf ug+rw .htaccess *. | 08/19/2007 | pluby | Done |
Add "2.2.1" as a version in Bugzilla. | 08/19/2007 | pluby | Done |
Close all bugs with a status of "Resolved" by setting the following field values:
|
08/19/2007 | pluby | Done |
Post a release announcement to the NeoJUpdate mailing list. | 08/19/2007 | pluby | Done |
Delete the 116 obsolete NeoOffice 2.2.1 Early Access NeoOffice-2.2.1_Early_Access-*.dmg files from the URLs in listed in the www.neooffice.org website's /neojava/earlyaccessmirrors.php file. | 08/19/2007 | pluby | Done |
Delete the 2 obsolete NeoOffice 2.2.1 Early Access patch installer NeoOffice-2.2.1_Early_Access-Patch-*.dmg files from the URLs in listed in the www.neooffice.org website's /neojava/en/earlyaccesspatch.php file. | 08/19/2007 | pluby | Done |
Mirrors
NeoOffice's rsync server is hosted on [1] and our volunteer mirrors obtain the NeoOffice binaries by nightly runs of the following command on their mirrors:
rsync -r --delete rsync://rsync.neooffice.org/neojavadownloads/ /path/to/NeoOffice/mirror/directory
At this time, we do not mirror RetroOffice binaries.
Task | Due Date | Assigned | Status |
Upload the 116 RetroOffice installer RetroOffice-2.2.1-*.dmg to the www.planamesa.org server's /retro/downloads directory. | 08/16/2007 | pluby | Done |
Notify the mirror maintainers that we will be pushing new NeoOffice binaries out to them a few days before the 27 August 2007 release date so that they can prepare for the huge surge in bandwidth usage that their servers will get in the first month or so after release. | 08/20/2007 | pluby | Done |
Make room for the new NeoOffice binaries by removing the NeoOffice Aqua Beta 3 binaries from the www.planamesa.org and eap.neooffice.org mirror sites. Note: the following steps were used to complete this task:
|
08/20/2007 | pluby | Done |
3 business days before the release, copy the 116 NeoOffice installer NeoOffice-2.2.1-*.dmg files into the rsync.neooffice.org server's /neojava/downloads directory so that the files will be picked up by the mirrors in their next nightly run. | 08/21/2007 | pluby | Done |
Copy the 116 NeoOffice installer NeoOffice-2.2.1-*.dmg files from the rsync.neooffice.org server's /neojava/downloads directory to the www.planamesa.net and www.planamesa.org servers' /neojava/downloads directory. | 08/21/2007 | pluby | Done |
Website
Task | Due Date | Assigned | Status |
Create 2.2.1 Early Access branch for the www.neooffice.org website to avoid modifying production web pages while we modify the web pages in the test website. Steps:
|
08/20/2007 | pluby | Done |
Update all NeoOffice 2.2.1 version names, file URLs, and patch version in all of the non Early Access *.php files in the www-test.neooffice.org web pages. Note: I used the following steps to do this:
sh for i in `find . -name "features.php"`; do cp `dirname $i`/earlyaccess`basename $i` $i done <?php include('../earlyaccesslogincheck.php'); ?> if ($earlyaccessdownloadenabled && $_SESSION[DONATIONSUSERSESSIONKEY]) { printLogoutLink(); } sh for i in `find . -name "*.php" -o -name "header.html" | grep -v earlyaccess`; do sed 's#NeoOffice 2\.1#NeoOffice 2.2.1#g' $i | \ sed 's#NeoOffice-2\.1#NeoOffice-2.2.1#g' | \ sed 's#NeoOffice-2_1#NeoOffice-2_2_1#g' | \ sed 's# 2\.1 # 2.2.1 #g' | \ sed 's#\*2\.1\*#*2.2.1*#g' > $i.tmp mv $i.tmp $i done sh for i in `find . -name "patch.php" -o -name "header.html"`; do sed 's#Patch 7#Patch 0#g' $i | \ sed 's#Patch-7#Patch-0#g' > $i.tmp mv $i.tmp $i done $earlyaccessdownloadenabled = false; $earlyaccessredirectenabled = true; $earlyaccessproduct = ''; $earlyaccessproductfamily[0] = ''; $earlyaccesspatch = 'Patch 0'; $earlyaccesspatchpage = 'earlyaccesspatch.php'; $currentproduct = 'NeoOffice 2.2.1'; $currentproductfamily[0] = ''; $currentpatch = 'Patch 0'; $currentpatchpage = 'patch.php'; $currentpatchhidemirrors = true; |
08/21/2007 | pluby | Done |
Comment out all of the non-patch mirrors in the www-test.neooffice.org website's /neojava/mirrors.php file and invoke the following command to commit your changes: cvs commit ; chmod -Rf ug+rw .htaccess *. | 08/21/2007 | pluby | Done |
cvs remove the 2 obsolete NeoOffice-2.1-*.torrent files from the Comment out all of the non-patch mirrors in the www-test.neooffice.org website's /neojava/downloads directory and invoke the following command to commit your changes: cvs commit ; chmod -Rf ug+rw .htaccess *. | 08/21/2007 | pluby | Done |
Update the 116 NeoOffice 2.2.1 file sizes in all of the maindownload.php and langpackdownload.php files in the www-test.neooffice.org web pages. Note: I used the following steps to do this:
ls -l /directory/NeoOffice-2.1/binaries/NeoOffice-2.1-*.dmg | \ awk '{print $9 " " $5}' | \ sed 's#^.*NeoOffice-2.1#NeoOffice-2.2.1#' | \ sort > /path/to/a/new/file ls -l /directory/NeoOffice-2.2.1/binaries/NeoOffice-2.2.1-*.dmg | \ awk '{print $9 " " $5}' | \ sort > /path/to/a/new/file join /file/from/first/step /file/from/second/step | \ sed 's#^.*dmg ##' | \ sed 's# #\##' | \ sed 's#^#sed "s\##' | \ sed 's#$#\#g" | \\#' > /path/to/a/new/file for i in `find . -name "maindownload.php" -o -name "langpackdownload.php"`; do cat $i | \ cat > $i.tmp mv $i.tmp $i done sh /path/to/file/edited/in/last/step |
08/21/2007 | pluby | Done |
Create RetroOffice 2.2.1 page in the www-test.neooffice.org web pages. Note: I used the following steps to do this:
sh for i in `cd ../neojava ; find . -name "*.php*" -o -name "*.html*" | \ grep -v earlyaccess | grep -v featurereqs | grep -v press_releases`; do sed 's#NeoOffice#RetroOffice#g' ../neojava/$i > $i cvs add $i done |
pluby | ||
Obtain the 2 NeoOffice-2.2.1-*.torrent files from the mirrors.freesmug.org mirror maintainer, cvs add these 2 files in the www-test.neooffice.org website's /neojava/downloads directory, and invoke the following command to commit your changes: cvs commit ; chmod -Rf ug+rw .htaccess *. | pluby | ||
Obtain each localized version of the NeoOffice 2.2.1 press release in HTML format, save them in the www-test.neooffice.org website's /neojava/press_releases directory using the following naming format so that the webserver's language detection will serve the closest matching file, cvs add the files, and invoke the following command to commit your changes: cvs commit ; chmod -Rf ug+rw .htaccess *:
|
pluby | ||
When a mirror that has been commented out in the www-test.neooffice.org website's /neojava/mirrors.php file has mirrored the NeoOffice 2.2.1 binaries, uncomment and the mirror and invoke the following command to commit your changes: cvs commit ; chmod -Rf ug+rw .htaccess *. | pluby | ||
Release
Generally, we try to time the release when it is early morning of the release date in New Zealand which is the most populous country closest to the international date line. For this release, 27 August 2007 translates to anytime after 5:00 am on 26 August 2007 in California.
Task | Due Date | Assigned | Status |
Before the actual release time, create a new category in the donations database that has a start date and time that is a few hours before the planned release time to ensure that donors who donate after we make the NeoOffice 2.2.1 binaries downloadable get their donation credited to the next Early Access Program using the following steps:
|
08/20/2007 | pluby | Done |
Make the NeoOffice 2.2.1 binaries downloadable from the www.neooffice.org website's download pages by updating the www.neooffice.org website's pages to match what is in the www-test.neooffice.org website's pages. Login into the www.neooffice.org server, cd to the its webroot directory, and invoke the following command: cvs update -Ad ; chmod -Rf ug+rw .htaccess *. | pluby | ||
Post the press release as an article on trinity.neooffice.org. Note: be sure to change the language field from "English" to "All" in when submitting the article so that all Trinity users will see the article. | pluby | ||
Post a release announcement to the NeoJUpdate mailing list. | pluby | ||
Delete the 116 NeoOffice 2.2.1 NeoOffice-2.2.1-*.dmg files from the URLs in listed in the www.neooffice.org website's /neojava/earlyaccessmirrors.php file. | pluby | ||
Delete the 116 NeoOffice 2.1 NeoOffice-2.1-*.dmg files from the rsync.neooffice.org server's /neojava/downloads directory. | pluby | ||
Delete the 2 obsolete NeoOffice 2.1 NeoOffice-2.1-Patch-*.dmg patch installer files from the rsync.neooffice.org server's /neojava/downloads directory. | pluby | ||
After the files have been deleted from the rsync server, wait 48 hours and verify that these files have been deleted from the mirrors listed in the www.neooffice.org website's /neojava/mirrors.php file. Contact any mirror maintainers that still have these files to confirm that they are rsynching to the rsync server regularly. | pluby | ||
Synchronize the donation's database to PayPal's database to ensure that none of the donors' transactions are missing and to pick up any e-mail address changes made by donors during the Early Access period using the following steps:
|
pluby |