Jump to: navigation, search

Difference between revisions of "LDT/Developer Area/Development"

< LDT
(Milestones versions)
(20 intermediate revisions by 3 users not shown)
Line 40: Line 40:
 
If tests are ok:
 
If tests are ok:
 
*Copy all directories from <tt>updates-nightly-maintenance/</tt> to <tt>releases/stables/${NUM.VERSION}</tt>.  
 
*Copy all directories from <tt>updates-nightly-maintenance/</tt> to <tt>releases/stables/${NUM.VERSION}</tt>.  
 +
** <tt>mkdir releases/stable/${NUM.VERSION}/</tt>
 
** <tt>cp -r updates-nightly-maintenance/* releases/stable/${NUM.VERSION}/</tt>
 
** <tt>cp -r updates-nightly-maintenance/* releases/stable/${NUM.VERSION}/</tt>
 
*Rename the repository name in <tt>compositeArtifacts.xml</tt> and <tt>compositeContent.xml</tt> in <tt>releases/stables/${NUM.VERSION}</tt> (increment timestamp too)
 
*Rename the repository name in <tt>compositeArtifacts.xml</tt> and <tt>compositeContent.xml</tt> in <tt>releases/stables/${NUM.VERSION}</tt> (increment timestamp too)
 +
** <tt>sed -i -e "s/(nightly-maintenance)/(${NUM.VERSION})/g" releases/stable/${NUM.VERSION}/compositeArtifacts.xml</tt>
 +
** <tt>sed -i -e "s/(nightly-maintenance)/(${NUM.VERSION})/g" releases/stable/${NUM.VERSION}/compositeContent.xml</tt>
 +
** (increment timestamp)
 +
*Modify repo to enable statistic
 
*Add child <tt>${NUM.VERSION}</tt> in the repository name in <tt>compositeArtifacts.xml</tt> and <tt>compositeContent.xml</tt> in <tt>releases/stables/</tt> (increment timestamp too)
 
*Add child <tt>${NUM.VERSION}</tt> in the repository name in <tt>compositeArtifacts.xml</tt> and <tt>compositeContent.xml</tt> in <tt>releases/stables/</tt> (increment timestamp too)
*Check the files permissions.
+
*Check the files permissions. (all repo should have directory with right  drwxrwsr-x and artifacts.jar and content.jar in -rw-rw-r--)
 
*Tag the last commit of the maintance branches.
 
*Tag the last commit of the maintance branches.
 +
** name ${NUM.VERSION}, description : Releases ${NUM.VERSION} version
 
*Increment version to the next maintenance version then commit it.
 
*Increment version to the next maintenance version then commit it.
 +
** commit comment : Increment version (${OLD.VERSION} => ${NUM.VERSION})
 +
*Deliver new products.
 +
** archive current version : <tt>cp products/stable/* /home/data/httpd/archive.eclipse.org/koneki/products/stable/${CURRENT.NUM.VERSION}/</tt>
 +
** deliver new version : <tt>cp /shared/jobs/koneki-ldt-maintenance/lastSuccessful/archive/product/target/products/* products/stable</tt>
  
 
=== Milestones versions ===
 
=== Milestones versions ===
Line 52: Line 62:
 
*Test the last nightly build.
 
*Test the last nightly build.
 
If tests are ok:
 
If tests are ok:
*Copy all directories from <tt>nightly</tt> to <tt>releases/milestones/${MILESTONES.VERSION}</tt>.
+
*execute script releases:
*Check the files permissions.
+
<tt>python erclt.py m -mv 0.9RC2</tt>
 +
 
 +
which do :
 +
  Deliver repo.
 +
  Deliver new products.
 +
 
 +
If script execution is ok:
 +
 
 
*Tag the last commit of the master branches.
 
*Tag the last commit of the master branches.
*Deliver new products.
 
** archive current version : <tt>cp products/current-milestone/* /home/data/httpd/archive.eclipse.org/koneki/products/milestones/${CURRENT.NUM.VERSION.MILESTONE_NUM}/</tt>
 
** deliver new version : <tt>cp /shared/jobs/koneki-ldt-maintenance/lastSuccessful/archive/product/target/products/* products/current-milestone</tt>
 
  
 
=== Major versions ===
 
=== Major versions ===
 
*Test the milestones version which is the releases candidate.
 
*Test the milestones version which is the releases candidate.
If tests are ok :  
+
If tests are ok :
*Copy all the directories from <tt>releases/stable/${NUM.VERSION}</tt> to <tt>/home/data/httpd/archive.eclipse.org/koneki/releases/${NUM.VERSION}</tt>
+
*execute script releases:
*Delete all directories in <tt>releases/stable/${NUM.VERSION}</tt>
+
<tt>python erclt.py s -mv 0.9RC2 -sv 0.9 </tt>
*Copy all directories from <tt>releases/milestones/${MILESTONES.VERSION}</tt> in <tt>releases/stable/${NUM.VERSION}</tt>
+
 
*Delete all directories in <tt>releases/milestones/${MILESTONES.VERSION}</tt>
+
which do :
*Check the files permissions.
+
  Archive stable repo.
 +
  Deliver stable repo.
 +
  Archive milestones repo.
 +
  Archive stable products.
 +
  Deliver stable products.
 +
  Archive milestones products.
 +
 
 +
If script execution is ok:
 
*Tag the master branches.
 
*Tag the master branches.
 
*Create maintenance branches.
 
*Create maintenance branches.
Line 72: Line 93:
 
*Increment version to the next maintenance version then commit it.
 
*Increment version to the next maintenance version then commit it.
 
*Change hudson configuration of maintenance builds to build the new one.
 
*Change hudson configuration of maintenance builds to build the new one.
*Deliver new products.
 
** archive current version : <tt>cp products/stable/* /home/data/httpd/archive.eclipse.org/koneki/products/stable/${CURRENT.NUM.VERSION}/</tt>
 
** deliver new version : <tt>cp /shared/jobs/koneki-ldt-maintenance/lastSuccessful/archive/product/target/products/* products/stable</tt>
 
  
 
=== Simultaneous Release ===
 
=== Simultaneous Release ===
* To be Completed
+
* see http://wiki.eclipse.org/Simrel/Contributing_to_Simrel_Aggregation_Build
 
+
=== Increment version Process ===
+
* Increment feature version (pom.xml)
+
* Increment product feature version (pom.xml)
+
* Increment product version and its dependencies version
+
* Increment feature version includes in category.xml
+
  
 
=== Simultaneous Release migration ===
 
=== Simultaneous Release migration ===
Line 89: Line 101:
 
*Add the new plaform profile in root pom.xml
 
*Add the new plaform profile in root pom.xml
 
*Change the default repo use to build in root pom.xml (<eclipse-site> property)
 
*Change the default repo use to build in root pom.xml (<eclipse-site> property)
 +
 +
=== Increment version Process ===
 +
* Increment feature version (+ pom.xml)
 +
* Increment product feature version (+ pom.xml)
 +
* Increment product version and its dependencies version
 +
* Increment feature version includes in category.xml
 +
* Increment documentation version (org.eclipse.koneki.ldt.doc.user/build-help.xml and org/eclipse/koneki/ldt/debug/ui/DocumentationLinksConstants.java)
 +
* deploy User guide (wiki)
 +
 +
 +
=== Enable Statistic ===
 +
Done automatically now by the release script.
 +
* Move in repo
 +
** <tt> cd releases/stable/${NUM.VERSION}/${repo} </tt>
 +
* Unzip artifacts.jar
 +
** <tt>unzip artifacts.jar</tt>
 +
* Modify artifacts.xml (add p2.statsURI and download.stats property)
 +
<pre>
 +
<properties size="3">
 +
    <property name="p2.timestamp" value="1339531652273"/>
 +
    <property name="p2.compressed" value="true"/>
 +
    <property name="p2.statsURI" value="http://download.eclipse.org/stats/koneki"/>
 +
 +
....
 +
 +
<artifact classifier="org.eclipse.update.feature" id="org.eclipse.koneki.ldt" version="0.8.0.201206122001">
 +
      <properties size="6">
 +
        <property name="artifact.size" value="20464"/>
 +
        <property name="download.size" value="20464"/>
 +
        <property name="maven-groupId" value="org.eclipse.koneki.ldt-features"/>
 +
        <property name="maven-artifactId" value="org.eclipse.koneki.ldt"/>
 +
        <property name="maven-version" value="0.8.0-SNAPSHOT"/>
 +
        <property name="download.contentType" value="application/zip"/>
 +
        <property name='download.stats' value='org.eclipse.koneki.ldt_0.8.0.201206122001'/>
 +
      </properties>
 +
</pre>
 +
* Zip it
 +
** <tt>zip artifacts.jar artifacts.xml</tt>
 +
* remove artifacts.xml
 +
** <tt>rm artifacts.xml</tt>
 +
 +
(see : http://wiki.eclipse.org/Equinox_p2_download_stats)

Revision as of 06:10, 18 December 2012

Git repositories

Koneki source code is available on the Git repositories of the Eclipse Foundation. There are several repositories:

org.eclipse.koneki.commons.git Contains plug-ins that aim at being re-used by other Koneki projects (generic UI components, helpers, ...)
org.eclipse.koneki.ldt.git Contains the Lua Development Tools source code
org.eclipse.koneki.protocols.git Contains different sub-projects providing the core components enabling protocols (OMA-DM, ...) manipulation in the tools
org.eclipse.koneki.simulators.git Contains different sub-projects providing the components enabling protocols (OMA-DM, ...) simulation in the tools

Update sites organization

The active Hudson jobs perform the continuous integration of Koneki projects and deploy signed p2 repos to the nightly update sites.

There are 2 kind of nightly updates sites (repositories) :

  • nightly: /home/data/httpd/download.eclipse.org/koneki/updates-nightly, which is a composite repo of the last successful builds of the 'master' branch of each Koneki projects.
  • nightly-maintenance: /home/data/httpd/download.eclipse.org/koneki/updates-nightly-maintenance, which is the same one but for the active maintenance branch.

All the last releases are stored in /home/data/httpd/download.eclipse.org/koneki/releases repository which is composed of :

  • stable: /home/data/httpd/download.eclipse.org/koneki/releases/stable which contains all the last stable releases.
  • milestones: /home/data/httpd/download.eclipse.org/koneki/releases/milestones which contains all the last milestones.

All the old releases can be found in /home/data/httpd/archive.eclipse.org/koneki/releases. (with the same structure)

Delivery Process

All the path in this section are relative to /home/data/httpd/download.eclipse.org/koneki on build.eclipse.org

Maintenance version

  • "Commit freeze" on all maintenance branches.
  • Be sure the last version build corresponds to the last commit wanted.
  • Test the last nightly-maintenance build.

If tests are ok:

  • Copy all directories from updates-nightly-maintenance/ to releases/stables/${NUM.VERSION}.
    • mkdir releases/stable/${NUM.VERSION}/
    • cp -r updates-nightly-maintenance/* releases/stable/${NUM.VERSION}/
  • Rename the repository name in compositeArtifacts.xml and compositeContent.xml in releases/stables/${NUM.VERSION} (increment timestamp too)
    • sed -i -e "s/(nightly-maintenance)/(${NUM.VERSION})/g" releases/stable/${NUM.VERSION}/compositeArtifacts.xml
    • sed -i -e "s/(nightly-maintenance)/(${NUM.VERSION})/g" releases/stable/${NUM.VERSION}/compositeContent.xml
    • (increment timestamp)
  • Modify repo to enable statistic
  • Add child ${NUM.VERSION} in the repository name in compositeArtifacts.xml and compositeContent.xml in releases/stables/ (increment timestamp too)
  • Check the files permissions. (all repo should have directory with right drwxrwsr-x and artifacts.jar and content.jar in -rw-rw-r--)
  • Tag the last commit of the maintance branches.
    • name ${NUM.VERSION}, description : Releases ${NUM.VERSION} version
  • Increment version to the next maintenance version then commit it.
    • commit comment : Increment version (${OLD.VERSION} => ${NUM.VERSION})
  • Deliver new products.
    • archive current version : cp products/stable/* /home/data/httpd/archive.eclipse.org/koneki/products/stable/${CURRENT.NUM.VERSION}/
    • deliver new version : cp /shared/jobs/koneki-ldt-maintenance/lastSuccessful/archive/product/target/products/* products/stable

Milestones versions

  • "Commit freeze" on all master branches.
  • Be sure the last version build corresponds to the last commit wanted.
  • Test the last nightly build.

If tests are ok:

  • execute script releases:

python erclt.py m -mv 0.9RC2

which do :

 Deliver repo.
 Deliver new products.
 

If script execution is ok:

  • Tag the last commit of the master branches.

Major versions

  • Test the milestones version which is the releases candidate.

If tests are ok :

  • execute script releases:

python erclt.py s -mv 0.9RC2 -sv 0.9

which do :

 Archive stable repo.
 Deliver stable repo.
 Archive milestones repo.
 Archive stable products.
 Deliver stable products.
 Archive milestones products.

If script execution is ok:

  • Tag the master branches.
  • Create maintenance branches.
  • Increment version on master branches then commit it.
  • Increment version to the next maintenance version then commit it.
  • Change hudson configuration of maintenance builds to build the new one.

Simultaneous Release

Simultaneous Release migration

  • Update target platform (.target)
  • Add the new plaform profile in root pom.xml
  • Change the default repo use to build in root pom.xml (<eclipse-site> property)

Increment version Process

  • Increment feature version (+ pom.xml)
  • Increment product feature version (+ pom.xml)
  • Increment product version and its dependencies version
  • Increment feature version includes in category.xml
  • Increment documentation version (org.eclipse.koneki.ldt.doc.user/build-help.xml and org/eclipse/koneki/ldt/debug/ui/DocumentationLinksConstants.java)
  • deploy User guide (wiki)


Enable Statistic

Done automatically now by the release script.

  • Move in repo
    • cd releases/stable/${NUM.VERSION}/${repo}
  • Unzip artifacts.jar
    • unzip artifacts.jar
  • Modify artifacts.xml (add p2.statsURI and download.stats property)
<properties size="3">
    <property name="p2.timestamp" value="1339531652273"/>
    <property name="p2.compressed" value="true"/>
    <property name="p2.statsURI" value="http://download.eclipse.org/stats/koneki"/>

....

<artifact classifier="org.eclipse.update.feature" id="org.eclipse.koneki.ldt" version="0.8.0.201206122001">
      <properties size="6">
        <property name="artifact.size" value="20464"/>
        <property name="download.size" value="20464"/>
        <property name="maven-groupId" value="org.eclipse.koneki.ldt-features"/>
        <property name="maven-artifactId" value="org.eclipse.koneki.ldt"/>
        <property name="maven-version" value="0.8.0-SNAPSHOT"/>
        <property name="download.contentType" value="application/zip"/>
        <property name='download.stats' value='org.eclipse.koneki.ldt_0.8.0.201206122001'/>
      </properties>
  • Zip it
    • zip artifacts.jar artifacts.xml
  • remove artifacts.xml
    • rm artifacts.xml

(see : http://wiki.eclipse.org/Equinox_p2_download_stats)