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.
Difference between revisions of "LDT/Developer Area/Development"
(37 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | = | + | = Git repositories = |
− | + | Koneki source code is available on the Git repositories of the Eclipse Foundation. There are several repositories:<br> | |
− | + | {| border="1" cellpadding="5" cellspacing="0" | |
− | + | |- | |
− | + | | [http://git.eclipse.org/c/koneki/org.eclipse.koneki.commons.git/ org.eclipse.koneki.commons.git] | |
− | + | | Contains plug-ins that aim at being re-used by other Koneki projects (generic UI components, helpers, ...) | |
+ | |- | ||
+ | | [http://git.eclipse.org/c/koneki/org.eclipse.koneki.ldt.git/ org.eclipse.koneki.ldt.git] | ||
+ | | Contains the Lua Development Tools source code | ||
+ | |- | ||
+ | | [http://git.eclipse.org/c/koneki/org.eclipse.koneki.protocols.git/ org.eclipse.koneki.protocols.git] | ||
+ | | Contains different sub-projects providing the core components enabling protocols (OMA-DM, ...) manipulation in the tools | ||
+ | |- | ||
+ | | [http://git.eclipse.org/c/koneki/org.eclipse.koneki.simulators.git/ org.eclipse.koneki.simulators.git] | ||
+ | | Contains different sub-projects providing the components enabling protocols (OMA-DM, ...) simulation in the tools | ||
+ | |} | ||
− | There is a composite repo | + | = Update sites organization = |
+ | The active [https://hudson.eclipse.org/hudson/search/?q=koneki 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 <tt>/home/data/httpd/download.eclipse.org/koneki</tt> on <tt>build.eclipse.org</tt> | ||
+ | |||
+ | === 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 <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> | ||
+ | *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) | ||
+ | *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 : <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 === | ||
+ | *"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: | ||
+ | <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. | ||
+ | |||
+ | === Major versions === | ||
+ | *Test the milestones version which is the releases candidate. | ||
+ | If tests are ok : | ||
+ | *execute script releases: | ||
+ | <tt>python erclt.py s -mv 0.9RC2 -sv 0.9 </tt> | ||
+ | |||
+ | 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 === | ||
+ | * 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 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 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