Difference between revisions of "Koneki/Development"

From Eclipsepedia

Jump to: navigation, search
(Major version :)
(Increment version Process)
(17 intermediate revisions by 3 users not shown)
Line 34: Line 34:
 
All the path in this section are relative to <tt>/home/data/httpd/download.eclipse.org/koneki</tt> on <tt>build.eclipse.org</tt>
 
All the path in this section are relative to <tt>/home/data/httpd/download.eclipse.org/koneki</tt> on <tt>build.eclipse.org</tt>
  
=== Maintenance version : ===
+
=== Maintenance version ===
 
*"Commit freeze" on all maintenance branches.
 
*"Commit freeze" on all maintenance branches.
 
*Be sure the last version build corresponds to the last commit wanted.  
 
*Be sure the last version build corresponds to the last commit wanted.  
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 version : ===
+
=== Milestones versions ===
 
*"Commit freeze" on all master branches.
 
*"Commit freeze" on all master branches.
 
*Be sure the last version build corresponds to the last commit wanted.  
 
*Be sure the last version build corresponds to the last commit wanted.  
 
*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>.
+
*Copy all directories from <tt>updates-nightly</tt> to <tt>releases/milestones/${MILESTONES.VERSION}</tt>.
 +
*Modify repo to enable statistic
 
*Check the files permissions.
 
*Check the files permissions.
 
*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/lastSuccessful/archive/product/target/products/* products/current-milestone</tt>
 +
** check the files permissions.
  
=== Major version : ===
+
=== 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 :  
Line 70: Line 85:
 
*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.
 
*Deliver new products.
** archive current version : <tt>cp products/* /home/data/httpd/archive.eclipse.org/koneki/products/${CURRENT.NUM.VERSION}/</tt>
+
** 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/</tt>
+
** deliver new version : <tt>cp /shared/jobs/koneki-ldt-maintenance/lastSuccessful/archive/product/target/products/* products/stable</tt>
 +
**Check the files permissions.
  
=== Simultaneous Release : ===
+
=== Simultaneous Release ===
* To be Completed
+
* see http://wiki.eclipse.org/Simrel/Contributing_to_Simrel_Aggregation_Build
  
=== Increment version Process : ===
+
=== Increment version Process ===
* Increment feature version (pom.xml)
+
* Increment feature version (+ pom.xml)
* Increment product feature version (pom.xml)
+
* Increment product feature version (+ pom.xml)
 
* Increment product version and its dependencies version
 
* Increment product version and its dependencies version
 
* Increment feature version includes in category.xml
 
* 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 ===
 +
* 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)
  
=== Simultaneous Release migration : ===
+
=== Simultaneous Release migration ===
 
*Update target platform (.target)
 
*Update target platform (.target)
 
*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)

Revision as of 14:04, 9 November 2012

Contents

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:

  • Copy all directories from updates-nightly to releases/milestones/${MILESTONES.VERSION}.
  • Modify repo to enable statistic
  • Check the files permissions.
  • Tag the last commit of the master branches.
  • Deliver new products.
    • archive current version : cp products/current-milestone/* /home/data/httpd/archive.eclipse.org/koneki/products/milestones/${CURRENT.NUM.VERSION.MILESTONE_NUM}/
    • deliver new version : cp /shared/jobs/koneki-ldt/lastSuccessful/archive/product/target/products/* products/current-milestone
    • check the files permissions.

Major versions

  • Test the milestones version which is the releases candidate.

If tests are ok :

  • Copy all the directories from releases/stable/${NUM.VERSION} to /home/data/httpd/archive.eclipse.org/koneki/releases/${NUM.VERSION}
  • Delete all directories in releases/stable/${NUM.VERSION}
  • Copy all directories from releases/milestones/${MILESTONES.VERSION} in releases/stable/${NUM.VERSION}
  • Delete all directories in releases/milestones/${MILESTONES.VERSION}
  • Check the files permissions.
  • 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.
  • 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
    • Check the files permissions.

Simultaneous Release

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

  • 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)

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)