Skip to main content
Jump to: navigation, search

OCL/Dev/Releng/Quiet Week

Revision as of 05:46, 10 September 2019 by (Talk | contribs) (Prepare the downloadable zips area)

In this wiki entry we explain the releng bits that may be done during the quiet week, particularly to the Eclipse OCL project. You may find some general information about the quite week in the Simultaneous Release Final Daze documentation (Juno, for the time of writing).

The main purpose of the quite week activities is preparing the downloadable zips and the release p2 repository in its final location so that they are properly mirrored across the different mirror servers prior to the final release date, taking into account that the content can't be available for download until that date. The releng tasks to be done are explained in two blocks, the tasks during the Quite Week and those tasks which must be done the Final Release Day.

Quiet Week

The following are the Eclipse OCL usual releng tasks to be accomplished during the quiet week.

Hide the new release in the downloads web page

Prior to prepare the downloadable zips of the imminent release in the downloads area, we should ensure that it's not available for downloading. To do that you must follow the following steps:

   note: see the hidden.txt file history to find examples of previous modifications
  • Commit and push the change to the remote repository

Prepare the downloadable zips area

The former practice contributed the final RC-build to SimRel and performed a number of manual rename activities once the build was successful and ready to be published. These manual activities are hard now that the remote access to is more restricted.

There is now no need to prepare a downloads area. Just perform an R-build with an alias of the release name.

Archive old releases

Older download ZIPs are moved to archive:

  • Edit the /mdt/downloads/extras-ocl.php file to add the redirections for archived releases
  • Copy the releases to archive
cd ~/downloads/modeling/mdt/ocl/downloads/drops
mv 5.0.5 /home/data/httpd/

*Make sure the archive is useable For each new archived R folder that doesn't have an index.php

cp ../../3.1.0/R201106061427/index.php .

The default Eclipse Foundation 404 page has a "Show Directory Contents." that provides similar/better functionality than the traditional project index.php.

Older P2 repos are moved to archive:

  • Copy the repo to archive
cd ~/downloads/modeling/mdt/ocl/updates/releases
ant -f /shared/modeling/tools/promotion/manage-composite.xml remove -Dchild.repository=5.0.5
mv 5.0.5 /home/data/httpd/
cd /home/data/httpd/
ant -f /shared/modeling/tools/promotion/manage-composite.xml add -Dchild.repository=5.0.5

Prepare the releases p2 repository

Likewise, the p2 repository corresponding to the new release needs to be in place to further be composed by the updates/releases composite repo. To do that we will have to follow the following steps:

  • Copy the last p2 repository contributed to the simultaneous release train (the last milestones/x.y.z/Sxxxx repository for SR0 or the last ' maintenance/x.y.z/Sxxx repository for SR1 and SR2) into the corresponding updates/releases/x.y.z repository.
cd ~/downloads/modeling/mdt/ocl/updates
mkdir releases/5.0.0
cp -pr milestones/5.0.0/S201406091420/* releases/5.0.0

* (Obsolete following removal of M/RC in suffixes to conform to other project practices) The contributed repository usually specifies a category name for the repository content which contains the alias of the build, hence, some undesirable RCx information. To remove that simply edit the content.jar/content.xml file and look for the specific RCx string. For the Juno SR2 p2 repository:

~/downloads/modeling/mdt/ocl/updates/releases/4.0.2> vi content.jar

(Obsolete) Select the content.xml file and look for the RC4 string using the vi editor search (:/RC). You should find two entries like the following:

<property name='' value='OCL-4.0.2RC4'/> <property name='org.eclipse.equinox.p2.description' value='Eclipse OCL-4.0.2RC4 features.'/>

(Obsolete) Simply edit the values and remove the RC4 bits. note: Remember that the category name pattern is Eclipse OCL-x.y.z

  • The automatically generated p2.mirrorsURL and p2.statsURI repository properties will also have information about the Release Candidate build. Extreme importance has the p2.mirrorsURL, because if the this property refers to an incorrect S-build related URL (whose location may not have the repository content if the milestones repository is cleared), clients won't be able to find the expected content in the mirrored servers provoking errors while trying to install our component.

To fix that, we have access to the artifacts.xml by editing artifacts.jar and set the URL of the new location of the releases repository, for instance for the Kepler final release:

<property name="p2.statsURI" value=""/>
<property name="p2.mirrorsURL" value=";format=xml&amp;protocol=http"/>

NB. The above is entered with a nested & amp ; for correct display. The XML should have a single encoded ampersand character.

Using vi

  • start the edit with vi artifacts.jar
  • enter to tunnel diwn to artifacts.xml
  • i to start insert edit
  • cursor down to the three propeties
  • change the count to 5
  • cursor down to the </properties>
  • cut paste the two extra properties
  • navigate to correct URLs and prettify formating
  • escape to exit the insert
  • :w to save the artifacts.xml edit
  • :q to exit the artifacts.xml edit
  • :q to exit the artifacts.jar edit

Result, within vi should look something like

 <properties size='5'>
   <property name='publishPackFilesAsSiblings' value='true'/>
   <property name='p2.compressed' value='true'/>
   <property name='p2.timestamp' value='1536571194150'/>
   <property name="p2.statsURI" value=""/>
   <property name="p2.mirrorsURL" value=";format=xml&amp;protocol=http"/>

Update the Help Info Center

The Help Info Center is now populated automatically.

With every release a bugzilla is created so that every project can publish where the doc plugin is located in the new release repository. We will usually need to keep an eye to the cross-project-issues mailing list to catch the proper bugzilla up (Following the cross-project dot inbox @at eclipse dot org bugzilla account may also help). In the corresponding Juno release bugzilla 379598 , you may find different examples about how to provide the required information.

Final Release Day

In the final release day, as it's specified by the Simulatenous Release Planning (Kepler by the time of writing), we need to activate our final release to be downloaded from our public downloads area and from our public updates/releases p2 repository. To accomplish that, the following tasks need to be undertaken.

Show the new release in the downloads web page

Basically, we have to follow similar steps to those we did to hide the release. Providing you have previously imported the mdt project from the cloned GIT repository, the steps to do are the following:

  • Edit the /mdt/downloads/hidden.txt file and remove the entry for the new release to make it visible.
  • Commit and push the change to the remote repository

Make the new release p2 repository available

During the quiet week, we prepared the p2 repository under the updates/releases folder. However the new release repository needs to be published by including it in our public updates/releases (composite) updates/releases/latest (composite) repositories. To do that we will simply have to use the Manage Composite Utility to add the new release (twice) and remove the previous latest release (once). For instance for the Juno SR2 release:

cd ~/downloads/modeling/mdt/ocl/updates/releases
~/downloads/modeling/mdt/ocl/updates/releases> ant -f /shared/modeling/tools/promotion/manage-composite.xml add -Dchild.repository=4.0.2
cd latest
~/downloads/modeling/mdt/ocl/updates/releases> ant -f /shared/modeling/tools/promotion/manage-composite.xml add -Dchild.repository=../4.0.2
~/downloads/modeling/mdt/ocl/updates/releases> ant -f /shared/modeling/tools/promotion/manage-composite.xml remove -Dchild.repository=../4.0.1

Update Eclipse Market Entry

The Eclipse OCL entry in the Eclipse MarketPlace requires to be updated:

Eclipse OCL at Market Place


Remember to announce the new release in our public forum.

Back to the top