Project

General

Profile

New Release Check-List

Efficiently upgrading AF3 sources from version a.b.c to d.e.f

Upgrading AF3 (and TK2 version) involves changing about 400 places (plugin versions, plugin dependencies, feature dependencies, product files, about dialog, ...).
This procedure ensures that this can be done manually, but efficiently by using the Eclipse multi-file search and replace function.

This procedure was tested on Feb 16th, 2016 without any problems both in the local and Jenkins build.
See enumeration point 7 for possible pitfalls.

1. Make sure You have all the build related projects in your workspace, e.g. for continuous build and manual release build,

  • org.fortiss.kernel.latest.build
  • org.fortiss.kernel.latest.feature
  • org.fortiss.kernel.latest.p2site
  • org.fortiss.af3.phoenix.latest.build
  • org.fortiss.af3.phoenix.latest.feature
  • org.fortiss.af3.phoenix.latest.p2site
  • org.fortiss.af3.phoenix.product.release.build
  • org.fortiss.af3.phoenix.product.release.feature
  • org.fortiss.af3.phoenix.product.release.product

2. Execute an Eclipse File Search with the following settings (enter UI field values without the quotes!)

  • Containing text = "a.b.c"
  • File name patterns = "*.product, MANIFEST.MF, category.xml, feature.xml, pom.xml, plugin.xml"
  • No other search option active.
  • Scope = "Workspace" (unless You want to run the replace incrementally, then use "Selected Projects")

3. You may want to inspect the results of this search before launching the replace action.

4. Execute the File Search again, but use the wizard's "Replace ..." button instead of the "Search" button.

5. Add the new version number into the upcoming dialog and hit "OK":

  • Replace: "a.b.c"
  • With: "d.e.f"

This should update every AF3 plugin, fragment, feature and product version to the new version.

6. Commit the changes. Start by committing all the files outside of the "jenkins" (or "hudson") plugin. Then update this plugin and commit it.

7. However, if the immediate local build shows any compile errors, chances are that one of the following two things happened:

  • A newly introduced plugin was not correctly versioned and therefore was not hit by the search. Correct this problem now, so the next version upgrade will work smoothly.
  • The search accidentally changed the required version of some non-AF3 plugin (currently very unlikely since Eclipse is 3.8.+, while AF3 is 2.5.+). Correct this before checking in.
8. Update "What's new" page
  1. (Manually) filter the previously created "Release Notes" for changes, that a user would experience.
  2. Open https://source.fortiss.org/svn/af3/org.fortiss.af3.rcp.application/trunk/intro/newFeatures.html in a Text Editor.
  3. Update version number.
  4. Remove old Entries.
  5. Add entries for the filtered changes in the respective sections.
  6. Commit.

9. Update all the Jenkins projects to use e.f.g instead of a.b.c (continuous & nightly, AF3 & kernel). Check both the 'Copy artifacts from' section as well as the post-build shell scripts doing the product patching.

10. Run continuous and nightly builds and product builds to see if anything fails on Jenkins.

Downloads page

  1. On Jenkins, build af3-phoenix-continuous (rebuild manually if you want to get the latest updates)
  2. Build af3-phoenix-product-release
  3. Download the 5 "Latest Successful Artifacts"
  4. Change their name, write the correct version number (i.e., the new one)
  5. Copy them on downloads.fortiss.org
  6. Update the webpage with TYPO3 to refer to these artifacts

Help page on the website

  1. Empty the smb://fs01/download/public/projects/af3/help directory
  2. Copy the contents of the org.fortiss.af3.rcp.application/html directory into smb://fs01/download/public/projects/af3/help
  3. Rename getting_started.html into index.html

Release Notes: detailed list of issues

To insert the detailed list of issues in the release notes:
  1. Display the relevent issues in Redmine (using the various filtering options of Redmine)
  2. Down the page, to the right, there's a field "Also available in:": click on "CSV"
  3. Select "only the selected columns" and export to CSV
  4. Import the CSV file in LibreOffice or any other Office suite of your choice
  5. Delete the columns you don't want, format the alignment how you want, etc. (do not care about the colors or fonts)
  6. Copy-paste into GVim or any serious text editor of your choice
  7. Replace all the spaces between columns by "|"
  8. Copy/paste the content in typo3

Announcements

Announce the release on:
  1. AF3 main page
  2. Mailing lists af_user and af_devel
  3. fortiss main page
  4. contacts in the following file of the SVN: https://source.fortiss.org/svn/af3/publication/contactList.xls
  5. Twitter

Jenkins security: use mask password to avoid plaintext output of passwords

If a Jenkins build script needs a password, e.g. in order to perform an SVN tag command after a successful build, you MUST use the "mask password plugin" to avoid having the password printed in the build log.
See the "test-mask-password" test build here on how this works: https://jenkins.fortiss.org:8080/job/test-mask-password/
Note that anyone who can change the job configuration can also recover the password, so MAKE sure you set the access rights correctly.
And never make the IT to include someone in the hudson_admins group, who does not belong there.
You have been warned !