Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Reviews/R4E/Release Howto"

< Reviews‎ | R4E
(Announce Release)
 
(32 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
{{:DocumentationGuidelines/DraftHeader}}
 
{{:DocumentationGuidelines/DraftHeader}}
  
 +
= General =
 
This document is based on [http://wiki.eclipse.org/Mylyn/Release_Howto Mylyn Release Howto]
 
This document is based on [http://wiki.eclipse.org/Mylyn/Release_Howto Mylyn Release Howto]
  
 
This document is targeting minor releases and needs to be completed to cover Major releases as R4E moves out of incubation.
 
This document is targeting minor releases and needs to be completed to cover Major releases as R4E moves out of incubation.
 +
 +
NOTE: In contrast to [http://wiki.eclipse.org/Mylyn/Release_Howto Mylyn Release Howto], this "Howto" document does not perform the actual source repository updates in a cloned copy at build.eclipse.org.  <br\>Any changes need to be performed in a local cloned source repository and pushed to the server before the actual build takes place.
  
 
= Before the Release =
 
= Before the Release =
 +
== Prepare Release Review ==
 +
Before performing the actual release, you will have to plan in advance for the Eclipse Release Review as part of the Eclipse Release process, you can find the details at [http://wiki.eclipse.org/Development_Resources/HOWTO/Release_Reviews Release Review] and [http://wiki.eclipse.org/SimRel/Simultaneous_Release_Requirements Release Requirements]
 +
 +
NOTE: Simultaneous releases may specify deviations of the general requirements for the scope of the review. In general is necessary to subscribe to the [https://dev.eclipse.org/mailman/listinfo/cross-project-issues-dev Eclipse cross project issues] mailing list to be aware of any changes.
 +
 +
See the following bug as an example of an earlier tracking bug to the activities performed for the release of R4E 0.11.0
 +
[https://bugs.eclipse.org/bugs/show_bug.cgi?id=383894 383894: Perform R4E 0.11 release]
  
 
== Prepare Build Environment ==
 
== Prepare Build Environment ==
TBD for Major releases
+
It's recommended to perform all build activities on a Linux environment in order to take advantage of the utility scripts available..
 +
Ideally this utility scripts can be converted to maven java utilities in order to make the build activities portable.
 +
 
 +
clone a fresh copy of the source repository:
 +
> git clone ssh://aUser@git.eclipse.org/gitroot/r4e/org.eclipse.mylyn.reviews.r4e.git r4e_build_version
 +
> cd r4e_build_version
  
 
== Create a Branch ==
 
== Create a Branch ==
Line 28: Line 43:
 
* Update the year in all feature.xml files to the current year for changed features
 
* Update the year in all feature.xml files to the current year for changed features
 
* Update the year in copyright notices of changed source files: Install platform releng tools, Project context menu > Fix Copyrights
 
* Update the year in copyright notices of changed source files: Install platform releng tools, Project context menu > Fix Copyrights
* Use the following script to find files without copyrights
+
* Use the following script (under the r4e source repository) to find files without copyrights
  #!/bin/ksh
+
  tools/findNotCopyRight
typeset -i mCnt
+
for mFile in `find . -name "*.java"`
+
do
+
  mCnt=`egrep -c 'Copyright' $mFile`
+
  if [ $mCnt -eq 0 ]; then
+
        echo "found"
+
        echo "File = "$mFile" does not contain 'copyright'"
+
  fi
+
done
+
  
 
=== Backport changes to the Platform Specific Branches ===
 
=== Backport changes to the Platform Specific Branches ===
Line 45: Line 51:
 
== Update Integration Repository ==
 
== Update Integration Repository ==
 
TBD (No subprojects under R4E)
 
TBD (No subprojects under R4E)
 +
 +
== Update Targets ==
 +
* Update target files in org.eclipse.mylyn.reviews.r4e-target to point to release sites of dependencies e.g. Mylyn, Egit/Jgit to ensure builds are reproducible in the future
  
 
== Run Tests ==
 
== Run Tests ==
TBD - This is covered in a later step I.e. when using a Hudson release build job.
+
Make sure all tests pass
 +
 
 +
== Push Updates ==
 +
Commit and push any updates performed during preparation to eclipse.org e.g. "origin"
  
 
= The Release =
 
= The Release =
 
== Update Targets ==
 
* Update target files in org.eclipse.mylyn.reviews.r4e-target to point to release sites of dependencies e.g. Mylyn, Egit/Jgit to ensure builds are reproducible in the future
 
  
 
== Build ==
 
== Build ==
 
* Release build (Hudson): [https://hudson.eclipse.org/hudson/job/mylyn-reviews-r4e-release/ https://hudson.eclipse.org/hudson/job/mylyn-reviews-r4e-release/]
 
* Release build (Hudson): [https://hudson.eclipse.org/hudson/job/mylyn-reviews-r4e-release/ https://hudson.eclipse.org/hudson/job/mylyn-reviews-r4e-release/]
 +
 
* Update configuration
 
* Update configuration
 
** Under Build-> Invoke Maven, update  the -DforceContextQualifier to reflect the time stamp associated to the release version
 
** Under Build-> Invoke Maven, update  the -DforceContextQualifier to reflect the time stamp associated to the release version
 +
 
* Build and make sure all tests pass
 
* Build and make sure all tests pass
  
Line 68: Line 79:
 
The build job will publish the update site to "build.eclipse.org" at /shared/download-staging.priv/r4e/staging/
 
The build job will publish the update site to "build.eclipse.org" at /shared/download-staging.priv/r4e/staging/
  
* Log into buld.eclipse.org i.e. using and SFTP or SCP client (such as WinSCP, CoreFTP) in SSH mode  
+
* Download the Release on your machine
 +
* Update artifacts.xml
 +
** Add the "p2.mirrorsURL" property to artifacts.xml (in artifacts.jar) and update the "properties size" to 3:
 +
  <properties size='3'>
 +
    <property name='p2.timestamp value='xxxxxxxxxxxx'/>
 +
    <property name='p2.compressed value='true'/>
 +
    <property name="p2.mirrorsURL value="http://www.eclipse.org/downloads/download.php?file=/r4e/drops/0.x.y.v.../&amp;format=xml"/>
 +
  </properties>
 +
 
 +
 
 +
 
 +
* Log into build.eclipse.org i.e. using and SFTP or SCP client (such as WinSCP, CoreFTP) in SSH mode  
 
** Copy the Release to /home/data/httpd/download.eclipse.org/r4e/staging
 
** Copy the Release to /home/data/httpd/download.eclipse.org/r4e/staging
 
** Test install from http://download.eclipse.org/r4e/staging/  
 
** Test install from http://download.eclipse.org/r4e/staging/  
Line 75: Line 97:
 
** Copy the Release to /home/data/httpd/download.eclipse.org/r4e/drops<br/>Remove any preliminary integration builds if any e.g.  /home/data/httpd/download.eclipse.org/r4e/drops/0.13.0.I*
 
** Copy the Release to /home/data/httpd/download.eclipse.org/r4e/drops<br/>Remove any preliminary integration builds if any e.g.  /home/data/httpd/download.eclipse.org/r4e/drops/0.13.0.I*
 
** Copy Release to archive.eclipse.org <br/> E.g. /home/data/httpd/archive.eclipse.org/r4e/drops/....v.../
 
** Copy Release to archive.eclipse.org <br/> E.g. /home/data/httpd/archive.eclipse.org/r4e/drops/....v.../
* Add mirror URLs
+
 
**Update the downloads update site to include the [http://wiki.eclipse.org/Equinox/p2/p2.mirrorsURL p2.mirrorsURL]  <br/>I.e. at /home/data/httpd/download.eclipse.org/r4e/drops/
+
* Make sure that the permissions are set correctly (644 for files, 2775 for directories)
** Check that the aritifacts.jar contains the following property:
+
* There is certainly a simpler way to do it, but here's a simple example of how to transfer the Release to a given folder:
   <property name="p2.mirrorsURL"  value="http://www.eclipse.org/downloads/download.php?file=/r4e/drops/....v..../&amp;format=xml"/>
+
 
 +
  > cd <local directory containing the Release>
 +
  > scp -r * user@build.eclipse.org
 +
  > Password:...
 +
  > lcd <local directory containing the Release>
 +
  > cd /home/data/httpd/download.eclipse.org/r4e/staging
 +
  > rm plugins/*
 +
  > rm features/*
 +
  > rmdir plugins
 +
  > rmdir features
 +
  > rm *
 +
   > put -r *
 +
  > chmod 664 *
 +
  > chmod 664 features/*
 +
  > chmod 664 plugins/*
 +
  > chmod 2775 features
 +
  > chmod 2775 plugins
  
 
== Test Install ==
 
== Test Install ==
Line 105: Line 143:
  
 
== Update Website ==
 
== Update Website ==
* Update the version number on download page
+
* The project documents are stored in "git.eclipse.org/gitroot/www.eclipse.org/r4e.git".
 +
 
 +
* Update the version number on download page (download/index.php)
 
* Create a new section on download archive page [TBD]
 
* Create a new section on download archive page [TBD]
* Create a new section in the [http://www.eclipse.org/r4e/ New &amp; Noteworthy]
+
* Create a new section in the New &amp; Noteworthy (news/index.php and new/new-n.nn.n.html)
 
* Archive [http://www.eclipse.org/projects/project-plan.php?projectid=mylyn.reviews.r4e project plan] in the r4e web repository under "plans"
 
* Archive [http://www.eclipse.org/projects/project-plan.php?projectid=mylyn.reviews.r4e project plan] in the r4e web repository under "plans"
 
* ''major releases'' Add a link to the new API baseline on the download archive page and update the developer page
 
* ''major releases'' Add a link to the new API baseline on the download archive page and update the developer page
Line 117: Line 157:
 
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-reviews-dev/ mylyn-reviews-dev]
 
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-reviews-dev/ mylyn-reviews-dev]
 
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]
 
* Send announcement to [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce]
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group]
+
* Post announcement to [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 news group] Adjust the document page "_index.html". Get the message info from "http://dev.eclipse.org/mhonarc/lists/mylyn-reviews-dev/"
* Post announcement to [http://r4e.blogspot.ca r4e blog]
+
* Post announcement to [http://r4eclipse.blogspot.ca r4e blog]
 
<!-- To be used at a later time
 
<!-- To be used at a later time
 
== Update http://eclipse.org/mylyn/updates.xml ==
 
== Update http://eclipse.org/mylyn/updates.xml ==
Line 135: Line 175:
  
 
== Update Versions ==
 
== Update Versions ==
* Bump up versions to next release using the following script available from the r4e source repository
+
* Bump up versions to next release using the following script available from the r4e source repository->tools/update-versions.sh
"tools/update-versions.sh"
+
To use this script, copy it to the root directory of the repository, change the permissions to make it executable, and edit it to change the base and target versions e.g. 0.13.0 0.20.0
  
 
<!-- To be used at a later time
 
<!-- To be used at a later time
Line 143: Line 183:
 
-->
 
-->
 
== Create New Download Area ==
 
== Create New Download Area ==
TBD - The following steps are not being used at the moment although might be needed as we maintain release branches see[[http://wiki.eclipse.org/Mylyn/Release_Howto base document] for details
+
TBD - The following steps are not being used at the moment although might be needed as we maintain release branches see [http://wiki.eclipse.org/Mylyn/Release_Howto base document] for details
 
* Create download directory (TBD)
 
* Create download directory (TBD)
 
* ''major release'' Create snapshot site
 
* ''major release'' Create snapshot site
Line 153: Line 193:
  
 
== Update Project Plan ==
 
== Update Project Plan ==
 +
[http://wiki.eclipse.org/Development_Resources/Project_Plan Project Plan Guide]
 
* ''major release'' Update versions and queries in all plan.xml documents (from web repository)
 
* ''major release'' Update versions and queries in all plan.xml documents (from web repository)
 
* ''major release'' Update release plans in [https://dev.eclipse.org/portal/myfoundation/portal/portal.php portal]
 
* ''major release'' Update release plans in [https://dev.eclipse.org/portal/myfoundation/portal/portal.php portal]
 +
 +
= References =
 +
[1] [http://wiki.eclipse.org/Mylyn/Release_Howto Mylyn Release Howto]<br\>
 +
[2] [http://wiki.eclipse.org/Development_Resources Development Resources]<br\>
 +
[3] [http://wiki.eclipse.org/Development_Resources/Project_Plan Project Plan Guide]<br\>
 +
[4] [https://dev.eclipse.org/portal/myfoundation/portal/portal.php Eclipse portal]<br\>
 +
[5] [http://wiki.eclipse.org/Equinox/p2/p2.mirrorsURL p2.mirrorsURL]<br\>
 +
[6] [https://hudson.eclipse.org/hudson/job/mylyn-reviews-r4e-release/ Hudson R4E Release Job]<br\>
 +
[7] [http://eclipse.org/projects/ip_log.php?projectid=mylyn.reviews.r4e R4E approved CQs / IP log]<br\>
 +
[8] [http://www.eclipse.org/projects/project-plan.php?projectid=mylyn.reviews.r4e R4E Project plan]<br\>
 +
[9] [http://www.eclipse.org/r4e/ R4E New &amp; Noteworthy]<br\>
 +
[10] [http://dev.eclipse.org/mhonarc/lists/mylyn-reviews-dev/ mylyn-reviews-dev mailing list]<br\>
 +
[11] [http://dev.eclipse.org/mhonarc/lists/mylyn-announce/maillist.html mylyn-announce mailing list]<br\>
 +
[12] [http://www.eclipse.org/forums/index.php?t=thread&frm_id=83 Mylyn news group forum]<br\>
 +
[13] [http://r4e.blogspot.ca R4E Blog]<br\>
 +
[14] [http://wiki.eclipse.org/Development_Resources Development Resources]<br\>
 +
[15] [http://wiki.eclipse.org/Development_Resources/HOWTO/Release_Reviews Release Review]<br\>

Latest revision as of 08:38, 22 July 2013

Warning2.png
Draft Content
This page is currently under construction. Community members are encouraged to maintain the page, and make sure the information is accurate.


General

This document is based on Mylyn Release Howto

This document is targeting minor releases and needs to be completed to cover Major releases as R4E moves out of incubation.

NOTE: In contrast to Mylyn Release Howto, this "Howto" document does not perform the actual source repository updates in a cloned copy at build.eclipse.org. <br\>Any changes need to be performed in a local cloned source repository and pushed to the server before the actual build takes place.

Before the Release

Prepare Release Review

Before performing the actual release, you will have to plan in advance for the Eclipse Release Review as part of the Eclipse Release process, you can find the details at Release Review and Release Requirements

NOTE: Simultaneous releases may specify deviations of the general requirements for the scope of the review. In general is necessary to subscribe to the Eclipse cross project issues mailing list to be aware of any changes.

See the following bug as an example of an earlier tracking bug to the activities performed for the release of R4E 0.11.0 383894: Perform R4E 0.11 release

Prepare Build Environment

It's recommended to perform all build activities on a Linux environment in order to take advantage of the utility scripts available.. Ideally this utility scripts can be converted to maven java utilities in order to make the build activities portable.

clone a fresh copy of the source repository:

> git clone ssh://aUser@git.eclipse.org/gitroot/r4e/org.eclipse.mylyn.reviews.r4e.git r4e_build_version
> cd r4e_build_version

Create a Branch

TBD for major releases

Prepare Source Code

Internationalize Messages

  • Run Source > Find Broken Externalized Strings over all bundles
  • Run Source > Externalize Strings over all bundles

Update User Guide

  • Adjust org.eclipse.mylyn.reviews.r4e.help/build-r4e-help.xml to set proxies as well as the plugin directory of the eclipse installation to use to find the Mylyn wikitext plug-ins
  • Run org.eclipse.mylyn.reviews.r4e.help/build-r4e-help.xml as an Ant Build
  • Review the user guide changes and then commit

Update Copyright Notices

  • Update the year in the about.ini to the current year
  • Update the year in all feature.xml files to the current year for changed features
  • Update the year in copyright notices of changed source files: Install platform releng tools, Project context menu > Fix Copyrights
  • Use the following script (under the r4e source repository) to find files without copyrights
tools/findNotCopyRight

Backport changes to the Platform Specific Branches

TBD

Update Integration Repository

TBD (No subprojects under R4E)

Update Targets

  • Update target files in org.eclipse.mylyn.reviews.r4e-target to point to release sites of dependencies e.g. Mylyn, Egit/Jgit to ensure builds are reproducible in the future

Run Tests

Make sure all tests pass

Push Updates

Commit and push any updates performed during preparation to eclipse.org e.g. "origin"

The Release

Build

  • Update configuration
    • Under Build-> Invoke Maven, update the -DforceContextQualifier to reflect the time stamp associated to the release version
  • Build and make sure all tests pass

Verify Update Site Contents

From the artifact(s) produced by the build

  • Check that only approved features are on the update site
  • Check that all Orbit bundles are tracked in r4e approved CQs

Prepare Download Area

The build job will publish the update site to "build.eclipse.org" at /shared/download-staging.priv/r4e/staging/

  • Download the Release on your machine
  • Update artifacts.xml
    • Add the "p2.mirrorsURL" property to artifacts.xml (in artifacts.jar) and update the "properties size" to 3:
 <properties size='3'>
   <property name='p2.timestamp value='xxxxxxxxxxxx'/>
   <property name='p2.compressed value='true'/>
   <property name="p2.mirrorsURL value="http://www.eclipse.org/downloads/download.php?file=/r4e/drops/0.x.y.v.../&format=xml"/>
 </properties>


  • Log into build.eclipse.org i.e. using and SFTP or SCP client (such as WinSCP, CoreFTP) in SSH mode
    • Copy the Release to /home/data/httpd/download.eclipse.org/r4e/staging
    • Test install from http://download.eclipse.org/r4e/staging/
    • Move /home/data/httpd/download.eclipse.org/r4e/updates to /home/data/httpd/download.eclipse.org/r4e/updates_prev
    • Copy the Release to /home/data/httpd/download.eclipse.org/r4e/updates
    • Copy the Release to /home/data/httpd/download.eclipse.org/r4e/drops
      Remove any preliminary integration builds if any e.g. /home/data/httpd/download.eclipse.org/r4e/drops/0.13.0.I*
    • Copy Release to archive.eclipse.org
      E.g. /home/data/httpd/archive.eclipse.org/r4e/drops/....v.../
  • Make sure that the permissions are set correctly (644 for files, 2775 for directories)
  • There is certainly a simpler way to do it, but here's a simple example of how to transfer the Release to a given folder:
 > cd <local directory containing the Release>
 > scp -r * user@build.eclipse.org
 > Password:...
 > lcd <local directory containing the Release>
 > cd /home/data/httpd/download.eclipse.org/r4e/staging
 > rm plugins/*
 > rm features/*
 > rmdir plugins
 > rmdir features
 > rm *
 > put -r *
 > chmod 664 *
 > chmod 664 features/*
 > chmod 664 plugins/*
 > chmod 2775 features
 > chmod 2775 plugins

Test Install

Tag Sources

  • Tag with the version as vx.y.z (e.g. v0.13.0):
org.eclipse.mylyn.reviews.r4e
  • Push tags
git push --tags

Update Release Repository Content

TBD - Not using composite repositories at the moment

Create API Baseline

  • major releases Create an API baseline zip

An API baseline is in essence a zip file of the release update site "plugins" folder excluding *source*.jar and documentation jar files.

See an example script at

git repo url = http://git.eclipse.org/gitroot/mylyn/org.eclipse.mylyn.git
path: org.eclipse.mylyn.releng/bin/create-api-profile.sh

Place the new API baselines at

/home/data/httpd/download.eclipse.org/r4e/drops/api_baseline/

Update Website

  • The project documents are stored in "git.eclipse.org/gitroot/www.eclipse.org/r4e.git".
  • Update the version number on download page (download/index.php)
  • Create a new section on download archive page [TBD]
  • Create a new section in the New & Noteworthy (news/index.php and new/new-n.nn.n.html)
  • Archive project plan in the r4e web repository under "plans"
  • major releases Add a link to the new API baseline on the download archive page and update the developer page

Update Babel

  • Make release available in Eclipse Babel for translation (major releases only)

Announce Release

Update Eclipse Info Center (major release)

After the Release

Update Versions

  • Bump up versions to next release using the following script available from the r4e source repository->tools/update-versions.sh

To use this script, copy it to the root directory of the repository, change the permissions to make it executable, and edit it to change the base and target versions e.g. 0.13.0 0.20.0

Create New Download Area

TBD - The following steps are not being used at the moment although might be needed as we maintain release branches see base document for details

  • Create download directory (TBD)
  • major release Create snapshot site

Add Bugzilla Versions and Milestones

From the Eclipse portal

  • Add Bugzilla Milestones for the next release
  • major release Add Bugzilla Version for the current release

Update Project Plan

Project Plan Guide

  • major release Update versions and queries in all plan.xml documents (from web repository)
  • major release Update release plans in portal

References

[1] Mylyn Release Howto<br\> [2] Development Resources<br\> [3] Project Plan Guide<br\> [4] Eclipse portal<br\> [5] p2.mirrorsURL<br\> [6] Hudson R4E Release Job<br\> [7] R4E approved CQs / IP log<br\> [8] R4E Project plan<br\> [9] R4E New & Noteworthy<br\> [10] mylyn-reviews-dev mailing list<br\> [11] mylyn-announce mailing list<br\> [12] Mylyn news group forum<br\> [13] R4E Blog<br\> [14] Development Resources<br\> [15] Release Review<br\>

Back to the top