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

From Eclipsepedia

< LDT
Jump to: navigation, search
(Increment version Process)
(6 intermediate revisions by one user not shown)
Line 62: 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>updates-nightly</tt> to <tt>releases/milestones/${MILESTONES.VERSION}</tt>.
+
*execute script releases:
*Modify repo to enable statistic
+
<tt>python erclt.py m -mv 0.9RC2</tt>
*Check the files permissions.
+
 
 +
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/lastSuccessful/archive/product/target/products/* products/current-milestone</tt>
 
** check the files permissions.
 
  
 
=== 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 84: 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>
 
**Check the files permissions.
 
  
 
=== Simultaneous Release ===
 
=== Simultaneous Release ===
 
* see http://wiki.eclipse.org/Simrel/Contributing_to_Simrel_Aggregation_Build
 
* see http://wiki.eclipse.org/Simrel/Contributing_to_Simrel_Aggregation_Build
 +
 +
=== 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 version Process ===
Line 98: Line 108:
 
* 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)
 
* 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 ===
 
=== Enable Statistic ===
 +
Done automatically now by the release script.
 
* Move in repo
 
* Move in repo
 
** <tt> cd releases/stable/${NUM.VERSION}/${repo} </tt>
 
** <tt> cd releases/stable/${NUM.VERSION}/${repo} </tt>
Line 130: Line 143:
  
 
(see : http://wiki.eclipse.org/Equinox_p2_download_stats)
 
(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)
 

Revision as of 07:10, 18 December 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:

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