NeoOffice 3.0 Release Tasks

From NeoWiki

Revision as of 15:12, 30 March 2009 by ( | contribs)
Jump to: navigation, search

This page is an attempt to document all of the tasks required to release NeoOffice 3.0. 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, we are including the fix for bug 3426 which cannot be bundled into a patch. As a result of this bug fix, so no upgrade patch will be released.

TaskDate CompletedAssignedStatus

Verify that OpenOffice.org does not have a newer tag for version 3.0.x than the OOO300_m14 tag.

03/23/2009plubyDone

Verify that ooo-build does not have a newer tag for version 3.0.x than the OOO_BUILD_3_0_1 branch.

03/23/2009plubyDone

Verify that Novell's patched odf-converter does not have a newer version than 2.5-2 in Novell's odf-converter source repository.

03/23/2009plubyDone

Rebuild all custom NeoOffice code using the existing NeoOffice 3.0 Early Access 2 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_FAMILY=3.0
    PRODUCT_VERSION=3.0
    PREVIOUS_PRODUCT_VERSION=$(PRODUCT_VERSION)
    PRODUCT_DIR_VERSION=3.0
    PRODUCT_PATCH_VERSION=Patch 0
    PRODUCT_DIR_PATCH_VERSION=Patch-0
    NEO_TAG:=-rNeoOffice-3_0
    
  • In makefile, reset the patch installer to include the minimum number of files by removing all files add to the build.patch_package_shared make target after the NeoOffice-3_0_Early_Access 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.
03/23/2009plubyDone

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
for i in `find . -name "*.dylib*" -o -name "*.bin"`; 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)
03/23/2009plubyDone

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.

03/23/2009plubyDone

Tag the code in the HEAD branch with the NeoOffice-3_0 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_0.
  • If there are any build errors, fix and commit them, retag the changed files by invoking cvs tag -F NeoOffice-3_0, and repeating the step.
03/23/2009plubyDone

Create releasable NeoOffice 3.0 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_0 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.
03/24/2009plubyDone

Create releasable NeoOffice 3.0 build for PowerPC.

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

03/24/2009plubyDone

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

Put the NeoOffice-3.0 folder in a new empty directory and create a CD master NeoOffice-3.0.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.0.cdr
03/24/2009plubyDone

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.

03/24/2009plubyDone

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.6
03/24/2009plubyDone

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.6
03/24/2009plubyDone

Verify that the releasable installer does not allow installation on PowerPC for the following Mac OS X versions:

  • 10.3.9
03/24/2009plubyDone

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 Program main installer binaries are only mirrored on neooffice.org servers so using the above command will only copy the language pack and patch binaries.

TaskDate CompletedAssignedStatus
Upload the 2 NeoOffice main installer NeoOffice-3.0-*.dmg files to the joe.neooffice.org server's /neojava/earlyaccessdownloads directory. 03/24/2009plubyDone
Copy the 2 NeoOffice main installer NeoOffice-3.0-*.dmg files from the joe.neooffice.org server's /neojava/earlyaccessdownloads directory to the /neojava/downloads directory on all of the mirrors listed in the joe.neooffice.org server's /neojava/includes/earlyaccessmirrors.php file. 03/24/2009plubyDone
Upload the 116 NeoOffice language pack installer NeoOffice-3.0-Language_Pack-*.dmg files to the rsync.neooffice.org server's /neojava/downloads directory. 03/24/2009plubyDone
Copy the 116 NeoOffice language pack installer NeoOffice-3.0-Language_Pack-*.dmg files from the rsync.neooffice.org server's /neojava/downloads directory to the www.planamesa.net server's /neojava/downloads directory. 03/25/2009plubyDone

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
TaskDate CompletedAssignedStatus
Copy the 2 NeoOffice main installer NeoOffice-3.0-*.dmg files from the joe.neooffice.org server's /neojava/earlyaccessdownloads directory to the rsync.neooffice.org server's /neojava/downloads directory. 03/28/2009plubyDone
Copy the 2 NeoOffice main installer NeoOffice-3.0-*.dmg files from the rsync.neooffice.org server's /neojava/downloads directory to the www.planamesa.net server's /neojava/downloads directory. 03/28/2009plubyDone

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: cvs tag NeoOffice-3_0_Early_Access ; cvs update -d -rNeoOffice-3_0_Early_Access ; chmod -Rf ug+rw .[ch]* * 03/24/2009plubyDone

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.0';
    $earlyaccessproductversion = '3.0';
    $earlyaccessproductfamily[0] = '3.0 Early Access';
    $earlyaccessproductfamily[1] = '3.0 Early Access 2';
    $earlyaccesslangpackfilebase = $earlyaccessproductfilebase;
    $earlyaccesspatch = '';
    
  • Manually edit all of the earlyaccessdownload.php pages in the /neojava directory and put the "not a production release" warning a "if ($earlyaccessfreeproduct != $earlyaccessproduct)" section.
  • After you verify that the changes look correct, invoke the following command to commit your changes: cvs commit ; chmod -Rf ug+rw .[ch]* *
03/24/2009plubyDone
Update the 118 NeoOffice 3.0 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: cvs commit ; chmod -Rf ug+rw .[ch]* * 03/24/2009plubyDone

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: cvs tag NeoOffice-3_0_Early_Access_2 ; cvs update -d -rNeoOffice-3_0_Early_Access_2 ; chmod -Rf ug+rw .[ch]* * 03/27/2009plubyDone

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 and delete all but the zero'th element of $earlyaccessproductfamily:
  • $earlyaccessdownloadenabled = false;
    $earlyaccessredirectenabled = true;
    $earlyaccessproductfamily[0] = '';
    $currentproductversion = '3.0';
    $currentoooversion = '3.0.1';
    $currentproductfamily[0] = '3.0 Early Access';
    $currentproductfamily[1] = '3.0 Early Access 2';
    $currentpatch = '';
    
  • Manually edit all of the header.html 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: cvs commit ; chmod -Rf ug+rw .[ch]* *
03/27/2009plubyDone
Copy the /neojava/includes/globals/earlyaccessfilesizes.php file to /neojava/includes/globals/filesizes.php and replace all occurrences of earlyaccess with current. If the changes look correct, invoke the following command to commit your changes: cvs commit ; chmod -Rf ug+rw .[ch]* * 03/27/2009plubyDone

Merge the NeoOffice 3.0 language pack changes. Note: I used the following steps to do this:

  • Manually replace the Language Pack Downloads section in each of the langpackdownload.php files in the /neojava directory with the section from the matching earlyaccesslangpackdownload.php file and replace any occurrences of earlyaccess with current and any occurrences of langpackfilebase with productfilebase.
  • Manually edit all of the download.php and maindownload.php pages in the /neojava directory and change the number of language packs from 56 to 58.
  • Update the minimum required Mac OS X version by manually editing all of the download.php pages in the /neojava directory and change all occurrences of Mac OS X 10.3 to Mac OS X 10.4.
  • Manually edit all of the feature.php</tt. pages in the <tt>/neojava directory and merge any unique wording in the matching earlyaccessfeatures.php pages.
  • After you verify that the changes look correct, invoke the following command to commit your changes: cvs commit ; chmod -Rf ug+rw .[ch]* *
03/29/2009plubyDone

Enable the BitTorrent links using the following steps:

  • Obtain the 2 NeoOffice-3.0-*.torrent files from the mirrors.freesmug.org mirror maintainer and cvs add these 2 files in the www-test.neooffice.org website's /neojava/downloads directory.
  • After you verify the that changes look correct, invoke the following command to commit your changes: cvs commit ; chmod -Rf ug+rw .htaccess *
03/30/2008plubyDone
Prepare the NeoOffice_3.0.html press release file, save it in the www-test.neooffice.org website's /press_releases directory using the following naming format, cvs add the file, and invoke the following command to commit the new file: cvs commit ; chmod -Rf ug+rw .[ch]* * pluby

Release for Early Access Program

Generally, we release the new version to Early Access Members through the Early Access Program download site a few days before we release the new version to the general public.

TaskDate CompletedAssignedStatus
Verify that all mirrors listed for the NeoOffice 3.0 main installer and language pack links work in the www-test.neooffice.org website's Early Access Program download pages. 03/25/2009plubyDone
Append the NeoOffice MD5 checksums page with the NeoOffice 3.0 MD5 checksums. 03/25/2009plubyDone
Make the NeoOffice 3.0 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 the www.neooffice.org server, cd to the its webroot directory, and invoke the following command: cvs update -Ad ; chmod -Rf ug+rw .[ch]* *. 03/26/2009plubyDone
Remove the NeoOffice 3.0 Early Access MD5 checksums from the NeoOffice MD5 checksums page. 03/26/2009plubyDone
Delete the 2 obsolete NeoOffice 3.0 Early Access 2 NeoOffice-3.0-Early_Access_2-*.dmg main installer files from the /neojava/earlyaccessdownloads directory on all of the mirrors listed in the joe.neooffice.org server's /neojava/includes/earlyaccessmirrors.php file. 03/26/2009plubyDone
Delete the 116 obsolete NeoOffice 3.0 Early Access NeoOffice-3.0_Early_Access-Language_Pack-*.dmg language pack installer files from the rsync.neooffice.org server's /neojava/downloads directory. 03/26/2009plubyDone
Delete the 2 obsolete NeoOffice 3.0 Early Access 2 NeoOffice-3.0_Early_Access_2-Patch-*.dmg patch installer files from the rsync.neooffice.org server's /neojava/downloads directory. 03/26/2009plubyDone
Add "3.0" as a version in Bugzilla. 03/25/2009plubyDone

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.0"
  • Set "Closed in Version" field to "3.0"
03/26/2009plubyDone

Close any bugs with a status of "Assigned" or "Reopened" and resolution of "Fixed" (bugs fixed in the release build after the final patch) by setting the following field values:

  • Set "Status" field to "Closed"
  • Set "Resolution" field to "Fixed"
  • Set "Target Version" field to "3.0"
  • Set "Closed in Version" field to "3.0"
03/26/2009plubyDone
Post a release announcement to the NeoJUpdate mailing list. pluby
Post a release announcement to the Trinity forum topic so that the news is included in the RSS feed. 03/26/2009plubyDone
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/include/mirrors.php file. Contact any mirror maintainers that still have these files to confirm that they are rsynching to the rsync server regularly. 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. So for this release, 31 March 2009 translates to in the afternoon on 30 March 2009 in California.

TaskDate CompletedAssignedStatus
Verify that all mirrors listed for the NeoOffice 3.0 main installer and language pack links work in the www-test.neooffice.org website's 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: cvs commit ; chmod -Rf ug+rw .[ch]* *. pluby
Verify that all mirrors listed for the NeoOffice 2.2.5 main installer, language pack, and patch installer links work in the www-test.neooffice.org website's 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: cvs commit ; chmod -Rf ug+rw .[ch]* *. pluby
Post a release announcement to the NeoJUpdate mailing list. 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 Trinity forum topic so that the news is included in the RSS feed. pluby
Delete the 2 obsolete NeoOffice 3.0 NeoOffice-3.0-*.dmg main installer files from the /neojava/earlyaccessdownloads directory on all of the mirrors listed in the joe.neooffice.org server's /neojava/includes/earlyaccessmirrors.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 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 current Early Access Program 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