NeoOffice 3.1.1 Release Tasks

From NeoWiki

Revision as of 19:53, 9 May 2010 by ( | contribs)
Jump to: navigation, search

This page is an attempt to document all of the tasks required to release NeoOffice 3.1.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, the total size of the binaries that have bug fixes since we released NeoOffice 3.1.1 Beta is quite large. So, in order to make room available for any NeoOffice 3.1.1 patches, no upgrade patch will be released.

TaskDate CompletedAssignedStatus

Commit and test updated icon files in your workspace's NeoOffice 3.1.1 etc/package directory.

  • cd etc/package
  • Execute the following shell script:
    #!/bin/csh
    #
    # execute within etc/package directory
    
    setenv PKGDIR `pwd`
    
    pushd ~
    curl -C - -O http://files.me.com/punto_mac/9qlzn8
    popd
    
    setenv VOL `hdiutil mount ~/9qlzn8 | perl -ne 'if ( /(\/Volumes.*)$/ ) { print $1; }'`
    if ( "$VOL" != "" ) then
            mkdir "Akua_2010Q1_Release"
            pushd "$VOL"
            cp -rf * "$PKGDIR/Akua_2010Q1_Release"
            popd
            pushd "Akua_2010Q1_Release"
            find . -type f -name \.\* -print0 | xargs -0 -n 1 rm -f
            popd
    
            if ( -e AkuaIcons.zip ) then
                    rm AkuaIcons.zip
            endif
            zip -r AkuaIcons.zip "Akua_2010Q1_Release"
            hdiutil unmount "$VOL"
            rm -rf "Akua_2010Q1_Release"
    endif
    
  • Execute the following shell script:
    #!/bin/csh
    #
    # execute within etc/package directory
    
    setenv PKGDIR `pwd`
    
    pushd ~
    curl -C - -O http://www.pimley.net/projects/downloads/NeoOfficeAquaElements.zip
    popd
    
    mkdir "NeoOffice Aqua Elements 3"
    pushd "NeoOffice Aqua Elements 3"
    unzip ~/NeoOfficeAquaElements.zip
    find . -exec touch {} \;
    find . -type f -name \.\* -print0 | xargs -0 -n 1 rm -f
    popd
    
    if ( -e NeoOfficeAquaElements.zip ) then
            rm NeoOfficeAquaElements.zip
    endif
    pushd "NeoOffice Aqua Elements 3"
    zip -r ../NeoOfficeAquaElements.zip "NeoOffice Aqua Elements 3"
    popd
    rm -rf "NeoOffice Aqua Elements 3"
    
  • Rebuild NeoOffice installers with new icon zip files and verify proper build.
  • Reinstall both builds and check that updated icons are available.
04/20/2010plubyDone

Rebuild all custom NeoOffice code using the existing NeoOffice 3.1.1 Beta development builds. Perform a confirming checkout of the HEAD branch and set build to build with a new version and the NeoOffice trademarked product name.

This includes the following steps:

  • Do a cvs update -Ad to ensure that you have the latest code in your workspace, verify that none of the files are marked as updated, patched, modified, or have conflicts, and verify that the latest code actually builds through the installer.
  • Copy custom.neo.mk file to custom.mk so that the clean checkout will build with the trademarked product names.
  • In makefile, change the following macros to the respective values:

    PRODUCT_VERSION=3.1.1
    PRODUCT_DIR_VERSION=3.1.1
    PREVIOUS_PRODUCT_VERSION=$(PRODUCT_VERSION)
    PRODUCT_PATCH_VERSION=Patch 0
    PRODUCT_DIR_PATCH_VERSION=Patch-0
    NEO_TAG:=-rNeoOffice-3_1_1
    
  • In makefile, reset the patch installer to include the minimum number of files by removing all files added to the build.patch_package_shared make target after the NeoOffice-3_1_1_Beta tag and changing the following macros to the respective values:

    PRODUCT_COMPONENT_PATCH_MODULES=
    
  • Delete all build.neo_* files so that all custom NeoOffice and RetroOffice code will be rebuilt.
  • Commit makefile changes and invoke make all to rebuild all applicable code and installers.
04/30/2010plubyDone

Tag the code in the HEAD branch with the NeoOffice-3_1_1 tag using the following:

  • Do a cvs update -Ad to ensure that you have the latest code in your workspace, verify that none of the files are marked as updated, patched, modified, or have conflicts, and verify that the latest code actually builds through the installer.
  • Tag all files in your workspace by invoking cvs tag NeoOffice-3_1_1.
  • If there are any build errors, fix and commit them, retag the changed files by invoking cvs tag -F NeoOffice-3_1_1, and repeating the step.
05/05/2010plubyDone

Create releasable NeoOffice 3.1.1 build for Intel.

Note: the following steps are overkill, but they ensure that all recent changes to the NeoOffice custom code has been built:

  • Do a cvs update -d -rNeoOffice-3_1_1 and verify that none of the files are marked as updated, patched, modified, or have conflicts. If any such errors appear, the previous task (tagging of the workspace) has not been done properly and it needs to done properly before you can proceed with this task.
  • Do a cvs update -Ad so that you can do bug fixing and release patches after you create your releasable build
  • Delete all build.neo_* and build.odf-converter* files. This will force the installer to rebuild the odf-converter code and all of the NeoOffice custom code without causing any of the OpenOffice.org or ooo-build code to be rebuilt.
  • Invoke make all to create the releasable installer and language packs.
05/05/2010plubyDone

Create releasable NeoOffice 3.1.1 build for PowerPC.

Note: Use the same steps as used for the matching Intel task.

05/05/2010plubyDone

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:

  • Create an empty NeoOffice-3_1_1 directory outside of the workspace
  • Copy all 34 install/*.dmg files from your releasable build into the empty NeoOffice-3.1.1 directory and chmod 444 *.dmg in that directory

Put the NeoOffice-3.1.1 folder in a new empty directory and create a CD master NeoOffice-3.1.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/NeoOffice-3.1.1.cdr
pluby

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.

pluby

Verify that the releasable installer and one or more language packs install and run on Intel for the following Mac OS X versions:

  • 10.4.11
  • 10.5.8
  • 10.6.3
05/05/2010plubyDone

Verify that the releasable installer and one or more language packs install and run on PowerPC for the following Mac OS X versions:

  • 10.4.11
  • 10.5.8
05/05/2010plubyDone

Mirrors for Early Access Program Release

NeoOffice's rsync server is hosted on rsync.neooffice.org and our volunteer mirrors obtain the NeoOffice binaries by nightly runs of the following command on their mirrors:

rsync --archive --delete rsync://rsync.neooffice.org/neojavadownloads/ \
/path/to/NeoOffice/mirror/directory

Note that the NeoOffice 3.1.1 Beta main installer binaries are only mirrored on neooffice.org servers so using the above command will only copy the language pack installers until near the end of the current NeoOffice Early Access Program on 11 May 2010.

TaskDate CompletedAssignedStatus

Upload the 2 main installer NeoOffice-3.1.1-*.dmg files to the rsync.neooffice.org server's /neojava/earlyaccessdownloads directory using the following steps:

  • Upload the files to your home directory on the server using the sftp command
  • Use the md5 command to verify that the MD5 checksums of the source file and the uploaded file are the same
  • Move the file from your home directory to the server's /neojava/earlyaccessdownloads directory
  • Invoke bin/setpermissions.sh so that the files will be readable by all mirrors' webservers
05/05/2010plubyDone

Upload the 66 NeoOffice language pack installer NeoOffice-3.1.1-Language_Pack_*.dmg files to the rsync.neooffice.org server's /neojava/downloads directory using the following steps:

  • Upload the files to your home directory on the server using the sftp command
  • Use the md5 command to verify that the MD5 checksums of the source file and the uploaded file are the same
  • Move the file from your home directory to the server's /neojava/downloads directory
  • Invoke bin/setpermissions.sh so that the files will be readable by all mirrors' webservers
05/05/2010plubyDone

Mirrors

NeoOffice's rsync server is hosted on rsync.neooffice.org and our volunteer mirrors obtain the NeoOffice binaries by nightly runs of the following command on their mirrors:

rsync --archive --delete rsync://rsync.neooffice.org/neojavadownloads/ \
/path/to/NeoOffice/mirror/directory

Note that since we already mirrored the language pack installers, we only need to mirror the main installers.

TaskDate CompletedAssignedStatus

Copy the 2 main installer NeoOffice-3.1.1-*.dmg files to the rsync.neooffice.org server's /neojava/downloads directory using the following steps:

  • Copy the files to your home directory from the server's /neojava/earlyaccessdownloads directory
  • Use the md5 command to verify that the MD5 checksums of the source file and the copied file are the same
  • Move the file from your home directory to the server's /neojava/downloads directory
  • Invoke bin/setpermissions.sh so that the files will be readable by all mirrors' webservers
05/09/2010plubyDone

Website for Early Access Program Release

TaskDate CompletedAssignedStatus
Tag the www.neooffice.org website to avoid modifying production web pages while we modify the web pages in the test website by logging into the www.neooffice.org server, cd to the its webroot directory, and set the tag by invoking the following commands: bin/cvsplusperms.sh tag NeoOffice-3_1_1_Beta_2 ; bin/cvsplusperms.sh update -rNeoOffice-3_1_1_Beta_2 -d 05/06/2010plubyDone

Update all NeoOffice and version names, file URLs, and patch version names in all of the files in the www-test.neooffice.org server's neojava directory.

Note: I used the following steps to do this:

  • Manually edit the /neojava/includes/globals.php page and set the following variables to the following values:
  • $earlyaccessdownloadenabled = true;
    $earlyaccessredirectenabled = false;
    $earlyaccessfreeproduct = 'NeoOffice 3.1.1';
    $earlyaccessproductversion = '3.1.1';
    $earlyaccessproductfamily[0] = '3.1.1 Beta';
    $earlyaccesspatch = '';
    
  • After you verify that the changes look correct, invoke the following command to commit your changes: bin/cvsplusperms.sh commit
05/06/2010plubyDone
Update the NeoOffice 3.1.1 main installer and language pack file sizes and set the 2 patch file sizes to 0 in the /neojava/includes/globals/earlyaccessfilesizes.php file and if the changes look correct, invoke the following command to commit your changes: bin/cvsplusperms.sh commit 05/06/2010plubyDone

Verify that patch checking works properly by doing the following steps in a NeoOffice 3.1.1 installation:

  • Test as NeoOffice 3.0.2 Patch 4 by opening the installation's Contents/MacOS/versionrc file, changing the UpdateURL line to the following, restarting NeoOffice, and selecting the Help :: Check for Updates menu. The dialog that appears should say that NeoOffice is up to date:
    UpdateURL=http://www-test.neooffice.org/neojava/patchcheck.php?product=NeoOffice%203.0.2&patch=Patch%204&os=${_OS}&arch=${_ARCH}
  • Test as NeoOffice 3.1.1 Beta Patch 0 by opening the installation's Contents/MacOS/versionrc file, changing the UpdateURL line to the following, restarting NeoOffice, and selecting the Help :: Check for Updates menu. The dialog that appears should say that NeoOffice 3.1.1 is available:
    UpdateURL=http://www-test.neooffice.org/neojava/patchcheck.php?product=NeoOffice%203.1.1%20Beta&patch=Patch%200&os=${_OS}&arch=${_ARCH}
  • Test as NeoOffice 3.1.1 by opening the installation's Contents/MacOS/versionrc file, changing the UpdateURL line to the following, restarting NeoOffice, and selecting the Help :: Check for Updates menu. The dialog that appears should say that NeoOffice is up to date.
    UpdateURL=http://www-test.neooffice.org/neojava/patchcheck.php?product=NeoOffice%203.1.1&patch=Patch%200&os=${_OS}&arch=${_ARCH}
05/06/2010plubyDone

Website

TaskDate CompletedAssignedStatus
Tag the www.neooffice.org website to avoid modifying production web pages while we modify the web pages in the test website by logging into the www.neooffice.org server, cd to the its webroot directory, and set the tag by invoking the following commands: bin/cvsplusperms.sh tag NeoOffice-3_1_1 ; bin/cvsplusperms.sh update -rNeoOffice-3_1_1 -d 05/09/2010plubyDone

Update all NeoOffice and version names, file URLs, and patch version names in all of the files in the www-test-primary.neooffice.org server's neojava directory.

Note: I used the following steps to do this:

  • Manually edit the /neojava/includes/globals.php page and set the following variables to the following values and delete all but the zero'th element:
  • $earlyaccessdownloadenabled = false;
    $earlyaccessredirectenabled = true;
    $earlyaccessproductfamily[0] = '';
    $earlyaccesspatch = '';
    $currentproductversion = '3.1.1';
    $currentoooversion = '3.1.1';
    $currentproductfamily[0] = '';
    $currentpatch = '';
    $oldproductshowobsoletewarning = false;
    $oldproductversion = '3.0.2';
    $oldoooversion = '3.0.1';
    $oldproductfamily[0] = '';
    $oldpatch = 'Patch 4';
    
  • Manually edit all of the header.html pages in the /neojava directory and update the text in the news banner section.
  • Manually edit all of the oldfeatures.php pages in the /neojava directory and copy any NeoOffice 3.0.2 features listed in the features.php pages.
  • Manually edit all of the features.php pages in the /neojava directory and add any new features listed in the earlyaccessfeatures.php pages.
  • Manually edit all of the index.php pages in the /neojava directory and update the content to highlight any new features.
  • After you verify that the changes look correct, invoke the following command to commit your changes: bin/cvsplusperms.sh commit
05/09/2010plubyDone
Copy the 70 NeoOffice 3.1.1 file sizes from the /neojava/includes/earlyaccesfilesizes.php file to the /neojava/includes/filesizes.php file. Also, set the /neojava/includes/filesizes.php to zero. If the changes look correct, invoke the following command to commit your changes: bin/cvsplusperms.sh commit 05/09/2010plubyDone

Enable the BitTorrent links using the following steps:

  • Delete and cvs remove all of the *.torrent files in the www-test-primary.neooffice.org website's /neojava/downloads directory.
  • Obtain the 2 NeoOffice-3.1.1-*.torrent files from the mirrors.freesmug.org mirror maintainer and bin/cvsplusperms.sh cvs add these 2 files in the www-test-primary.neooffice.org website's /neojava/downloads directory.
  • After you verify the that changes look correct, invoke the following command to commit your changes: bin/cvsplusperms.sh commit
pluby
Prepare the NeoOffice_3.1.1.html press release file, save it in the www-test-primary.neooffice.org website's /press_releases directory using the following naming format, bin/cvsplusperms.sh add the file, and invoke the following command to commit the new file: bin/cvsplusperms.sh commit pluby

Verify that patch checking works properly by doing the following steps in a NeoOffice 3.1.1 installation:

  • Test as NeoOffice 3.0.2 Patch 4 by opening the installation's Contents/MacOS/versionrc file, changing the UpdateURL line to the following, restarting NeoOffice, and selecting the Help :: Check for Updates menu. The dialog that appears should say that NeoOffice 3.1.1 is available:
    UpdateURL=http://www-test.neooffice.org/neojava/patchcheck.php?product=NeoOffice%203.0.2&patch=Patch%204&os=${_OS}&arch=${_ARCH}
  • Test as NeoOffice 3.1.1 Beta Patch 0 by opening the installation's Contents/MacOS/versionrc file, changing the UpdateURL line to the following, restarting NeoOffice, and selecting the Help :: Check for Updates menu. The dialog that appears should say that NeoOffice 3.1.1 is available:
    UpdateURL=http://www-test.neooffice.org/neojava/patchcheck.php?product=NeoOffice%203.1.1%20Beta&patch=Patch%200&os=${_OS}&arch=${_ARCH}
  • Test as NeoOffice 3.1.1 by opening the installation's Contents/MacOS/versionrc file, changing the UpdateURL line to the following, restarting NeoOffice, and selecting the Help :: Check for Updates menu. The dialog that appears should say that NeoOffice is up to date.
    UpdateURL=http://www-test.neooffice.org/neojava/patchcheck.php?product=NeoOffice%203.1.1&patch=Patch%200&os=${_OS}&arch=${_ARCH}
pluby

Release for Early Access Program

Generally, we release the new version to Early Access Program members through the Early Access Program download site a few days before we release the new version to the general public. In this release, we plan to make the release available on the Early Access Program download site in the afternoon on 6 May 2010 in California.

TaskDate CompletedAssignedStatus

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:

  • Login to PayPal, click on the History tab, click on Download My History link, select Custom Date Range, enter the day before the start of the Early Access period as the "From" date and the current date as the "To" date, and "Comma Delimited - All Activity" as the "File Types to Download".
  • It will take some time for PayPal to prepare the file. Once the file is ready, download it and use sftp to copy it to the www.neooffice.org server. Note: be sure to delete your local copy.
  • Once the history file is on the www.neooffice.org server, login to the server, cd to the /donationsadmin directory, and execute the following command to import the history file:
    sh
    ./import_paypal_transaction_history.php /path/to/history/file 2>/path/to/error/file
    
  • Inspect the entries in the error file created in the previous command and verify that none of the rejected lines from the file are donor transactions.
05/06/2010plubyDone
Verify that all mirrors listed for the NeoOffice 3.1.1 main installer and language pack links work in the www-test.neooffice.org website's Early Access Program download pages. If any do not work, comment them out in the /neojava/includes/earlyaccessmirrors.php file (for the main installer) and in the neojava/includes/mirror.php (for the language packs) and invoke the following command: bin/cvsplusperms.sh commit 05/06/2010plubyDone
Replace the NeoOffice 3.1.1 Beta MD5 checksums with the NeoOffice 3.1.1 MD5 checksums. 05/06/2010plubyDone
Add "3.1.1" version in Bugzilla. 05/06/2010plubyDone
Make the NeoOffice 3.1.1 binaries downloadable from the www.neooffice.org website's Early Access Program 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 each of the www.neooffice.org servers, cd to the its webroot directory, and invoke the following command: bin/cvsplusperms.sh update -Ad 05/06/2010plubyDone

Close all bugs with a status of "Resolved" by setting the following field values:

  • Set "Status" field to "Closed"
  • Set "Resolution" field to "Fixed"
  • Set "Target Version" field to "3.1.1"
  • Set "Closed in Version" field to "3.1.1"
05/06/2010plubyDone

Close any bugs with a status of "Assigned" or "Reopened" and resolution of "Fixed" by setting the following field values:

  • Set "Status" field to "Closed"
  • Set "Resolution" field to "Fixed"
  • Set "Target Version" field to "3.1.1"
  • Set "Closed in Version" field to "3.1.1"
05/06/2010plubyDone
Delete the 2 obsolete NeoOffice-3.1.1_Beta-*.dmg main installer files from the /neojava/earlyaccessdownloads directory on all of the mirrors listed in the rsync.neooffice.org server's /neojava/includes/earlyaccessmirrors.php file. 05/06/2010plubyDone
Delete the 66 obsolete NeoOffice-3.1.1_Beta-Language_Pack_*.dmg language pack installer files from the rsync.neooffice.org server's /neojava/downloads directory. 05/06/2010plubyDone
Post a release announcement to this Trinity forum topic and this Trinity forum topic so that the news is included in the RSS feed. 05/06/2010plubyDone

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. So for this release, 11 May 2010 translates to the afternoon on 10 May 2010 in California.

TaskDate CompletedAssignedStatus

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 3.1.1 binaries downloadable get their donation credited to the next Early Access Program using the following steps:

  • Login to the www.neooffice.org server, cd to the /neojava/donationsadmin directory, and execute the following command to add a new category:
    ./manage_categories.php -a
    
  • Set the category_name to Next Planned NeoOffice Early Access Program Membership, the mc_gross_USD amount to the same amount that was used for the current NeoOffice 3.1.1 Early Access Program Membership category, the other mc_gross_* amounts to the exchange rate used by the trinity.neooffice.org website, start_date to 2010-05-10, end date to 2010-12-31, and enabled to 1
  • Run the command again and set the category_name to Next Planned NeoOffice 3.x Early Access Program Subscription, the mc_gross_USD amount to the same amount that were used for the current NeoOffice 3.x Early Access Program Subscription category, the other mc_gross_* amounts to the exchange rate used by the trinity.neooffice.org website, start_date to 2010-05-10, end date to 2010-12-31, and enabled to 1
  • Repeat the above steps for the www-test.neooffice.org server.
pluby
Verify that all mirrors listed for the NeoOffice 3.1.1 main installer and language pack links work in the www-test-primary.neooffice.org website's download pages. If any do not work, comment them out in the /neojava/includes/mirrors.php file and invoke the following command: bin/cvsplusperms.sh commit pluby
Make the NeoOffice 3.1.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: bin/cvsplusperms.sh update -Ad pluby

Make NeoOffice 3.1.1 the current version in the NeoWiki using the following steps:

pluby
Post the press release as an article on the Trinity news page. 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 this Trinity forum topic and this Trinity forum topic so that the news is included in the RSS feed. pluby
Delete the 2 obsolete NeoOffice-3.0.2-*.dmg main installer files from the /neojava/earlyaccessdownloads directory on all of the mirrors listed in the rsync.neooffice.org server's /neojava/includes/earlyaccessmirrors.php file. pluby
Delete the 118 obsolete NeoOffice-3.0.2-*.dmg main installer and language pack files from the /neojava/downloads directory on all of the mirrors listed in the rsync.neooffice.org server's /neojava/includes/mirrors.php file. pluby
Delete the 2 obsolete NeoOffice-3.0.2-Patch-4-*.dmg patch files from the /neojava/downloads/patches directory on all of the mirrors listed in the rsync.neooffice.org server's /neojava/includes/mirrors.php file. 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:

  • Login to PayPal, click on the History tab, click on Download My History link, select Custom Date Range, enter one year and one day before the current date as the "From" date and the current date as the "To" date, and "Comma Delimited - All Activity" as the "File Types to Download".
  • It will take some time for PayPal to prepare the file. Once the file is ready, download it and use sftp to copy it to the www.neooffice.org server. Note: be sure to delete your local copy.
  • Once the history file is on the www.neooffice.org server, login to the server, cd to the /donationsadmin directory, and execute the following command to import the history file:
    sh
    ./import_paypal_transaction_history.php /path/to/history/file 2>/path/to/error/file
    
  • Inspect the entries in the error file created in the previous command and verify that none of the rejected lines from the file are donor transactions.
pluby
Personal tools