NeoOffice 3.4 Release Tasks

From NeoWiki

Jump to: navigation, search

This page is an attempt to document all of the tasks required to release NeoOffice 3.4. 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 done

Contents

Builds

TaskDate CompletedAssignedStatus

Rebuild all custom NeoOffice code using the existing NeoOffice 3.4 development builds. Perform a confirming checkout of the NeoOffice-3_3_branch branch and set the build to build with a new version and the NeoOffice trademarked product name.

This includes the following steps:

  • Do a cvs update -rNeoOffice-3_3_branch -d 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_BASE=3.4
    PRODUCT_VERSION=$(PRODUCT_VERSION_BASE)
    PRODUCT_DIR_VERSION=$(PRODUCT_VERSION_BASE)
    PREVIOUS_PRODUCT_VERSION=$(PRODUCT_VERSION)
    PREVIOUS_PRODUCT_VERSION_BASE=3.3
    PRODUCT_PATCH_VERSION=Patch 0
    PRODUCT_DIR_PATCH_VERSION=Patch-0
    NEO_TAG:=NeoOffice-3_4
    
  • 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_4 tag and changing the following macros to the respective values:

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

Tag the code in the NeoOffice-3_3_branch branch with the NeoOffice-3_4 tag using the following steps:

  • Do a cvs update -rNeoOffice-3_3_branch -d 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_4.
  • If there are any build errors, fix and commit them, retag the changed files by invoking cvs tag -F NeoOffice-3_4, and repeating the step.
10/17/13plubyDone

Create signed releasable NeoOffice 3.4 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 -rNeoOffice-3_3_branch -d and verify that none of the files are marked as updated, patched, modified, or have conflicts. If any such markings 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 diff -rNeoOffice-3_4 and verify that there are no differences for any of the files. If any differences 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.
  • Delete all build.neo_* files. This will force the installer to rebuild all of the NeoOffice custom code without causing any of the OpenOffice.org or ooo-build code to be rebuilt.
  • Invoke cp certs.neo.mk certs.mk ; make all to create the releasable installer and language packs. Note that by creating the certs.mk file, signing of the installer and the application will be enabled.
10/17/13plubyDone

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.4 directory outside of the workspace
  • Copy all 24 install/*.dmg files from your releasable build into the empty NeoOffice-3.4 directory and chmod 444 *.dmg in that directory

Put the NeoOffice-3.4 folder in a new empty directory and create a CD master NeoOffice-3.4.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.4.cdr
10/17/13plubyDone

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

  • 10.6.8
  • 10.7.5
  • 10.8.5
  • 10.9
10/17/13plubyDone

Mirrors

NeoOffice's rsync server is hosted on rsync.neooffice.org. Downloads of the current release are restricted to paying users but the previous version is requires no payment to download. Our volunteer mirrors obtain the previous version's binaries by nightly runs of the following command on their mirrors:

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

Upload the 24 NeoOffice NeoOffice-3.4-*.dmg main installer and language pack files to the www-primary.neooffice.org server's /neojava/downloads/donordownloads 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/donordownloads directory
  • Invoke bin/setpermissions.sh so that the files will be readable by all mirrors' webservers
10/17/13plubyDone

Push NeoOffice 3.3 files to the free download mirrors using the following steps:

  • Copy the 31 NeoOffice-3.3-*.dmg main installer and language pack files to the rsync.neooffice.org server's /neojava/downloads directory from the www-primary.neooffice.org server's /neojava/downloads/donordownloads directory
  • Copy the NeoOffice-3.3-Patch-*.dmg patch file to the rsync.neooffice.org server's /neojava/downloads/patches directory from the www-primary.neooffice.org server's /neojava/downloads/donordownloads/patches directory
  • Invoke bin/setpermissions.sh on the rsync.neooffice.org server so that the copied files will be readable by all mirrors' webservers
10/17/13plubyDone

Website

TaskDate CompletedAssignedStatus

Update the website's download cookie name and value in the www-test-primary.neooffice.org server's neojava directory.

Note: I used the following steps to do this:

  • Manually editing the download cookie name and value /neojava/donations/includes/config.php.
  • Manually edit the /neojava/downloads/donordownloads/.htaccess file and add a new RewriteCond line for the cookie. Do not remove any existing RewriteCond lines.
  • After you verify that the changes look correct, invoke the following command to commit your changes: bin/cvsplusperms.sh commit
  • Push the new download cookie name and value to the www.neooffice.org website by logging into the www.neooffice.org server, cd to the its webroot directory, and invoking the following command: bin/cvsplusperms.sh update -d.
10/18/13plubyDone
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 pre_NeoOffice-3_4 ; bin/cvsplusperms.sh update -rpre_NeoOffice-3_4 -d ; sudo chmod ug+x bin/*.sh ; bin/cvsplusperms.sh update -d 10/18/13plubyDone

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:
    $newproductdownloadenabled = false;
    $newproductminosxversion = '10.6';
    $newproductmaxosxversion = '10.9';
    $newproductversion = '3.4 Beta';
    $newproductfamily = array();
    $newpatch = '';
    $newpatchreleasenotesurl = '';
    $currentproductminosxversion = '10.6';
    $currentproductmaxosxversion = '10.9';
    $currentproductversion = '3.4';
    $currentproductfamily = array();
    $currentpatch = '';
    $currentpatchreleasenotesurl = '';
    $oldproductshowobsoletewarning = false;
    $oldproductencourageupgrade = true;
    $oldproductminosxversion = '10.6';
    $oldproductmaxosxversion = '10.8';
    $oldproductversion = '3.3';
    $oldproductfamily = array('3.3 Beta 2', '3.3 Beta');
    $oldpatch = 'Patch 10';
    $oldpatchreleasenotesurl = 'http://trinity.neooffice.org/modules.php?name=Forums
    &file=viewtopic&p=64478#64478';
    
  • Manually update the 24 NeoOffice 3.4 main installer and language pack file sizes and set the patch file size to 0 in the /neojava/includes/globals/filesizes.php file.</tt>
  • Manually update the 31 NeoOffice 3.3 main installer, language pack, and patch file sizes in the /neojava/includes/globals/oldfilesizes.php file.</tt>
  • Manually edit all of the *download.php files in the /neojava subdirectories to reflect language packs that have been added, removed, or bundled in the main installer.
  • Manually edit the isProductSupported() function in the /neojava/includes/globals.php to match the minimum and maximum versions changed above.
  • Manually edit the preg_match in the if ($oldproductencourageupgrade || ... ) line in /neojava/includes/patchcheckredirect.php file to match OS versions higher than NeoOffice 3.3's maximum version.
  • Manually edit all of the features.php pages in the /neojava directory, move the NeoOffice 3.3 features listed in the NeoOffice 3.4 section into the bottom section, and update the features in the NeoOffice 3.4 section.
  • Manually edit all of the header.php pages in the /neojava directory and update the text in the news banner section.
  • After you verify that the changes look correct, invoke the following command to commit your changes: bin/cvsplusperms.sh commit
10/20/13plubyDone

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

  • Test as NeoOffice 3.2.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 no new patches are available:
    UpdateURL=http://www-test-primary.neooffice.org/neojava/patchcheck.php?product=NeoOffice%203.1.2&patch=Patch%200&os=${_OS}&arch=${_ARCH}
  • Test as NeoOffice 3.2.1 Patch 8 on Mac OS X 10.5.8 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 no new patches are available:
    UpdateURL=http://www-test-primary.neooffice.org/neojava/patchcheck.php?product=NeoOffice%203.2.1&patch=Patch%200&os=${_OS}&arch=${_ARCH}&osversion=10.5.8
  • Test as NeoOffice 3.2.1 Patch 8 on Mac OS X 10.8.5 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.4 is available:
    UpdateURL=http://www-test-primary.neooffice.org/neojava/patchcheck.php?product=NeoOffice%203.2.1&patch=Patch%200&os=${_OS}&arch=${_ARCH}&osversion=10.8.5
  • Test as NeoOffice 3.3 Patch 10 on Mac OS X 10.6.8 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.4 is available:
    UpdateURL=http://www-test-primary.neooffice.org/neojava/patchcheck.php?product=NeoOffice%203.3&patch=Patch%2010&os=${_OS}&arch=${_ARCH}&osversion=10.6.8
  • Test as NeoOffice 3.3 Patch 10 on Mac OS X 10.9 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.4 is available:
    UpdateURL=http://www-test-primary.neooffice.org/neojava/patchcheck.php?product=NeoOffice%203.3&patch=Patch%2010&os=${_OS}&arch=${_ARCH}&osversion=10.9.0
  • Test as NeoOffice 3.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:
    http://www-test-primary.neooffice.org/neojava/patchcheck.php?product=NeoOffice%203.4&patch=Patch%200&os=${_OS}&arch=${_ARCH}&osversion=<OSVERSION>
10/20/13plubyDone

Release

TaskDate CompletedAssignedStatus
Verify that all mirrors listed for the NeoOffice 3.4 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 10/21/13plubyDone
Verify that all mirrors listed for the NeoOffice 3.3 main installer, language pack, and patch 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 10/21/13plubyDone
Make the NeoOffice 3.4 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-primary.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 ; sudo chmod ug+x bin/*.sh ; bin/cvsplusperms.sh update -d 10/22/13plubyDone
Post a release announcement to this Trinity forum topic so that the news is included in the RSS feed. 10/22/13plubyDone

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

10/22/13plubyDone
Add the NeoOffice 3.4 MD5 checksums to the NeoOffice MD5 checksums page. 10/17/13plubyDone
Remove the NeoOffice 3.2.1 MD5 checksums to the NeoOffice MD5 checksums page. 10/22/13plubyDone

Synchronize the payments database to PayPal's database to ensure that none of the users' transactions are missing and to pick up any e-mail address changes made by users during the last year using the following steps:

  • Login to PayPal, click on the History tab, click on Download My History link, select Custom Date Range, enter the date for a year ago in "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 user payment transactions.
10/22/13plubyDone
Delete the 31 obsolete NeoOffice-3.3-*.dmg main installer and language pack files from the /neojava/downloads/donordownloads directory on all of the mirrors listed in the rsync.neooffice.org server's /neojava/includes/mirrorfunctions.php file. 10/22/13plubyDone
Delete the obsolete NeoOffice-3.3-*.dmg patch installer files from the /neojava/downloads/donordownloads/patches directory on all of the mirrors listed in the rsync.neooffice.org server's /neojava/includes/mirrorfunctions.php file. 10/22/13plubyDone
Delete the 31 obsolete NeoOffice-3.2.1-*.dmg main installer and language pack files from the rsync.neooffice.org server's /neojava/downloads directory. 10/22/13plubyDone
Delete the obsolete NeoOffice-3.2.1-*.dmg patch installer files from the rsync.neooffice.org server's /neojava/downloads/patches directory. 10/22/13plubyDone
Manually edit the /neojava/downloads/donordownloads/.htaccess file and remove any RewriteCond lines for old download cookies. Do not remove the RewriteCond lines for the current download cookie. After you verify that the download site still works correctly, invoke the following command: bin/cvsplusperms.sh commit 10/22/13plubyDone
Personal tools