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 "OCL/Dev/Releng/Quiet Week"

< OCL
(Prepare the downloadable zips area)
(Update Eclipse Market Entry)
 
(16 intermediate revisions by the same user not shown)
Line 1: Line 1:
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 [[ Juno/Final_Daze | Simultaneous Release Final Daze]] documentation (Juno, for the time of writing).
+
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 ''quiet week'' in the [[ Juno/Final_Daze | 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 | Quite Week]] and those tasks which must be done the [[#Final Release Day | Final Release Day]].
 
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 | Quite Week]] and those tasks which must be done the [[#Final Release Day | Final Release Day]].
Line 5: Line 5:
 
=Quiet Week=
 
=Quiet Week=
  
The following are the Eclipse OCL usual releng tasks to be accomplished during the ''quiet week''.  
+
The following are the Eclipse OCL usual releng tasks to be accomplished during what was once the ''quiet week''. Since moving to a four release per year cadence, the ''quiet week'' is at best a couple of days. Now that ssh access to build.eclipse.org is more restricted, many of the former ''quiet week'' activities are imporactiocal and what is practical should be performed as late as possible in the final SimRel Release Candidate.
  
==Hide the new release in the downloads web page==
+
==Build the final release==
 
+
Perform an R-build with an alias of the release name. Do this as late as practical before the final SimRel build so that the R-build can be contributed to the SimRel aggregator. Do this as late as practical before the final SimRel build so that the R-build can be contributed to the SimRel aggregator. Once built and promoted, disable the Promoter job to prevent any accidental re-builds until the project moves on to a new version number. Then the Promoter Job can be re-enabled.
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:
+
 
+
*Clone the OCL www repository using the following GIT repository URL: '''ssh://git.eclipse.org/gitroot/www.eclipse.org/modeling/mdt.git'''
+
*Import the '''mdt''' project into the workspace
+
*Edit the '''/mdt/downloads/hidden.txt''' file and include an entry for the new release to hide, for instance '''modeling/mdt/4.0.2/R201301281158'''
+
    '''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==
+
We usually will want our last published Release Candidate (''RC'') to be our final version of the release which will be present in the downloads area. To do that we will have to follow the following steps:
+
 
+
* Copy the '''last''' ''RC'' (''Sxxxxxxxxxxxx'') from the downloads area taking into account that a release distribution should start with '''R'''. For instance, for the ''2018-09'' release you should do the following:
+
 
+
~/downloads/modeling/mdt/ocl/downloads/drops/6.5.0> cp -rf S201809100900 R201809100900
+
 
+
The following scripts are available from org.eclipse.ocl.releng/scripts.
+
 
+
* Given that the zips usually have the ''RCx'' suffix of the last built Release Candidate, we need to manually remove them. The following bash script does it automatically:
+
#!/bin/bash
+
# Copyright (c) 2013 Willink Transformations, University of York and others.
+
# All rights reserved. This program and the accompanying materials
+
# are made available under the terms of the Eclipse Public License v1.0
+
# which accompanies this distribution, and is available at
+
# http://www.eclipse.org/legal/epl-v10.html
+
#
+
# Contributors:
+
#              Adolfo Sanchez-Barbudo Herrera (Univerisity of York) - Initial API and implementation
+
if [ $# -ne 1 ]
+
then
+
    echo "usage example: ./renameZips.sh RC1"
+
    exit;
+
fi
+
+
for i in *.zip
+
do
+
  newName=${i/$1/}
+
  echo "Renaming $i to $newName"
+
  mv "$i" "$newName"
+
done
+
 
+
* Similarly, the ''MD5'' files need to be changed:
+
#!/bin/bash
+
# Copyright (c) 2013 Willink Transformations, University of York and others.
+
# All rights reserved. This program and the accompanying materials
+
# are made available under the terms of the Eclipse Public License v1.0
+
# which accompanies this distribution, and is available at
+
# http://www.eclipse.org/legal/epl-v10.html
+
#
+
# Contributors:
+
#              Adolfo Sanchez-Barbudo Herrera (Univerisity of York) - Initial API and implementation
+
if [ $# -ne 1 ]
+
then
+
    echo "usage example: ./renameMD5.sh RC1"
+
    exit;
+
fi
+
+
for i in *.md5
+
do
+
  iContent=`cat $i`
+
  newName=${i/$1/}
+
  newContent=${iContent/$1/}
+
  echo "Introducing $newContent into $newName"
+
  echo "$newContent" > "$newName"
+
  rm $i
+
done
+
* Finally, a small script to verify the ''MD5'' checksum
+
#!/bin/bash
+
# Copyright (c) 2013 Willink Transformations, University of York and others.
+
# All rights reserved. This program and the accompanying materials
+
# are made available under the terms of the Eclipse Public License v1.0
+
# which accompanies this distribution, and is available at
+
# http://www.eclipse.org/legal/epl-v10.html
+
#
+
# Contributors:
+
#              Adolfo Sanchez-Barbudo Herrera (Univerisity of York) - Initial API and implementation
+
for i in *.md5
+
do
+
  md5sum -c $i
+
done
+
* Similarly, the ''SHA'' files need to be changed.
+
Typically it is sufficient to have a copy of the scripts in ~ then cd to the 'R' folder and
+
~/renameZips.sh RC4
+
~/renameMD5.sh RC4
+
~/renameSHA.sh RC4
+
~/checkMD5.sh
+
~/checkSHA.sh
+
  
 
==Archive old releases==
 
==Archive old releases==
  
Older releases are moved to archive:
+
Older download ZIPs are moved to archive:
  
 
*Edit the '''/mdt/downloads/extras-ocl.php''' file to add the redirections for archived releases
 
*Edit the '''/mdt/downloads/extras-ocl.php''' file to add the redirections for archived releases
 
*Copy the releases to archive
 
*Copy the releases to archive
 
  cd ~/downloads/modeling/mdt/ocl/downloads/drops
 
  cd ~/downloads/modeling/mdt/ocl/downloads/drops
  mv 3.1.2 /home/data/httpd/archive.eclipse.org/modeling/mdt/ocl/downloads/drops
+
  mv 5.0.5 /home/data/httpd/archive.eclipse.org/modeling/mdt/ocl/downloads/drops
*Make sure the archive is useable
+
<del>*Make sure the archive is useable
For each new archived R folder that doesn't have an index.php
+
For each new archived R folder that doesn't have an index.php</del>
cp ../../3.1.0/R201106061427/index.php .
+
  
==Prepare the releases p2 repository==
+
<del> cp ../../3.1.0/R201106061427/index.php .</del>
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
+
The default Eclipse Foundation archive.eclipse.org 404 page has a "Show Directory Contents." that provides similar/better functionality than the traditional project index.php.
  
(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:
+
Older P2 repos are moved to archive:
  
  <property name='org.eclipse.equinox.p2.name' value='OCL-4.0.2RC4'/>
+
*Copy the repo to archive
  <property name='org.eclipse.equinox.p2.description' value='Eclipse OCL-4.0.2RC4 features.'/>
+
  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/archive.eclipse.org/modeling/mdt/ocl/updates/releases
 +
  cd /home/data/httpd/archive.eclipse.org/modeling/mdt/ocl/updates/releases
 +
ant -f /shared/modeling/tools/promotion/manage-composite.xml add -Dchild.repository=5.0.5
  
(Obsolete) Simply edit the values and remove the ''RC4'' bits.
+
==Update the Help Info Center==
'''note:''' Remember that the category name pattern is ''Eclipse OCL-x.y.z''
+
The Help Info Center is now populated automatically.
  
* The automatically generated [[Equinox/p2/p2.mirrorsURL | ''p2.mirrorsURL'']] and [[Equinox_p2_download_stats | ''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.
+
<del>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 [https://bugs.eclipse.org/bugs/show_bug.cgi?id=379598 379598] , you may find different examples about how to provide the required information.</del>
To fix that, we have access to the ''artifact.xml'' (in the same way we did with the ''content.xml'' one) and set the URL of the '''new location''' of the releases repository, for instance for the Kepler final release:
+
 
+
<property name="p2.statsURI" value="http://download.eclipse.org/stats/modeling/mdt/ocl/updates/releases/4.1.0"/>
+
<property name="p2.mirrorsURL" value="http://www.eclipse.org/downloads/download.php?file=/modeling/mdt/ocl/updates/releases/4.1.0&amp;amp;format=xml&amp;amp;protocol=http"/>
+
 
+
NB. The above is entered with a nested & amp ; for correct display. The XML should have a single encoded ampersand character.
+
 
+
* Finally, verify that the content is properly accessible by an Eclipse installation. You could check that by trying to install new software and using the corresponding new releases repository. For the ''Juno SR2'' release you'd use the following URL: http://download.eclipse.org/modeling/mdt/ocl/updates/releases/4.0.2
+
 
+
==Update the Help Info Center==
+
With every release a bugzilla is created so that every project can publish where the doc plugi 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 [https://bugs.eclipse.org/bugs/show_bug.cgi?id=379598 379598] , you may find different examples about how to provide the required information.
+
  
 
=Final Release Day=
 
=Final Release Day=
In the final release day, as it's specified by the [[Kepler/Simultaneous_Release_Plan#Milestones_and_Release_Candidates | 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.
+
The R-build is automatically published, so no immediate action is required.
  
==Show the new release in the downloads web page==
+
==Update Eclipse Market Entry==
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 the OCL www GIT repository, the steps to do are the following:
+
The Eclipse OCL entry in the Eclipse MarketPlace requires to be updated with the final R-build:
*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 be available==
+
[http://marketplace.eclipse.org/content/eclipse-ocl#.UT2sXhzJT2s Eclipse OCL at Market Place]
During the ''quite week'', we prepared the p2 repository under the ''updates/releases'' folder. However the new release repository needs to be activated by including it as a children of our public ''updates/releases'' (composite) repository. To do that we will simply have to use the [[Modeling_Project_Builds/Utilities#manage-composite.xml | Manage Composite Utility]]. For instance for the Juno SR2 release:
+
  
~/downloads/modeling/mdt/ocl/updates/releases> ant -f /shared/modeling/tools/promotion/manage-composite.xml add -Dchild.repository=4.0.2
+
Note that the Marketplace does not appear to allow more than 10 solutions, so adding a new solution requires removing / replacing an old one. Tentative policy is recent quarterly releases and annual *-06 releases.
  
==Update Eclipse Market Entry==
+
==Next Version==
The Eclipse OCL entry in the Eclipse MarketPlace requires to be updated:
+
The Eclipse OCL entry in the Eclipse MarketPlace requires to be updated with the final R-build:
 
+
The project should be moved onto the next release number by editing the many version numbers in MANIFEST.MF, pom.xml, feature.xml. Once this has been debugged using a local Tycho build, the Promoter job can be re-enabled.  
[http://marketplace.eclipse.org/content/eclipse-ocl#.UT2sXhzJT2s Eclipse OCL at Market Place]
+
  
 
==Announcement==
 
==Announcement==
 
Remember to announce the new release in our public [http://www.eclipse.org/forums/index.php?t=thread&frm_id=26 forum].
 
Remember to announce the new release in our public [http://www.eclipse.org/forums/index.php?t=thread&frm_id=26 forum].

Latest revision as of 03:57, 30 March 2022

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 quiet 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 what was once the quiet week. Since moving to a four release per year cadence, the quiet week is at best a couple of days. Now that ssh access to build.eclipse.org is more restricted, many of the former quiet week activities are imporactiocal and what is practical should be performed as late as possible in the final SimRel Release Candidate.

Build the final release

Perform an R-build with an alias of the release name. Do this as late as practical before the final SimRel build so that the R-build can be contributed to the SimRel aggregator. Do this as late as practical before the final SimRel build so that the R-build can be contributed to the SimRel aggregator. Once built and promoted, disable the Promoter job to prevent any accidental re-builds until the project moves on to a new version number. Then the Promoter Job can be re-enabled.

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/archive.eclipse.org/modeling/mdt/ocl/downloads/drops

*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 archive.eclipse.org 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/archive.eclipse.org/modeling/mdt/ocl/updates/releases
cd /home/data/httpd/archive.eclipse.org/modeling/mdt/ocl/updates/releases
ant -f /shared/modeling/tools/promotion/manage-composite.xml add -Dchild.repository=5.0.5

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

The R-build is automatically published, so no immediate action is required.

Update Eclipse Market Entry

The Eclipse OCL entry in the Eclipse MarketPlace requires to be updated with the final R-build:

Eclipse OCL at Market Place

Note that the Marketplace does not appear to allow more than 10 solutions, so adding a new solution requires removing / replacing an old one. Tentative policy is recent quarterly releases and annual *-06 releases.

Next Version

The Eclipse OCL entry in the Eclipse MarketPlace requires to be updated with the final R-build: The project should be moved onto the next release number by editing the many version numbers in MANIFEST.MF, pom.xml, feature.xml. Once this has been debugged using a local Tycho build, the Promoter job can be re-enabled.

Announcement

Remember to announce the new release in our public forum.

Back to the top