Skip to main content
Jump to: navigation, search

Difference between revisions of "Gemini/Blueprint/Releasing"

(Added more links to the publish information)
(Updated with regard to new release infrastructure)
Line 1: Line 1:
== Building Gemini Blueprint ==
+
== Releasing Gemini Blueprint 2.x  ==
  
== Release Instructions for 2.0.x ==
+
Pre-req's: JDK 1.7. Maven 3.0.x.
  
Pre-req's: Java 6. Maven 3.0.3.
+
=== Step 1 - update version ===
 
+
For example, for 2.0.0.M01:
+
 
+
Step 1 - update version:
+
  
 +
#Switch to release branch, e.g. release-2.0.1
 
#update changelog and its version/date
 
#update changelog and its version/date
 
#if blueprint schema needs to be changed:  
 
#if blueprint schema needs to be changed:  
Line 16: Line 13:
 
##update xml files in META-INF/spring which refer to the latest version of the eclipse-gemini-blueprint.xsd schema
 
##update xml files in META-INF/spring which refer to the latest version of the eclipse-gemini-blueprint.xsd schema
 
# branch the git repo
 
# branch the git repo
#mvn versions:set -DnewVersion=2.0.0.M01
+
#mvn versions:set -DnewVersion=2.0.1.M1
 
#find . -name "*.versionsBackup" -exec rm {} \;  
 
#find . -name "*.versionsBackup" -exec rm {} \;  
 
#manually edit version in release/pom.xml docs/pom.xml integration-tests/bundles/embedded.ns.bundle/pom.xml and test-support/dependency-reduced-pom.xml
 
#manually edit version in release/pom.xml docs/pom.xml integration-tests/bundles/embedded.ns.bundle/pom.xml and test-support/dependency-reduced-pom.xml
Line 22: Line 19:
 
#find . -name "boot-bundles.properties" and update ignore.gemini.blueprint.version to 2.0.0.M01: e.g. find . -name "boot-bundles.properties" | grep -v target | xargs subl
 
#find . -name "boot-bundles.properties" and update ignore.gemini.blueprint.version to 2.0.0.M01: e.g. find . -name "boot-bundles.properties" | grep -v target | xargs subl
  
Step 2 - build and test:
+
=== Step 2 - build and test ===
  
 
#Build and test using:  
 
#Build and test using:  
Line 29: Line 26:
 
##mvn clean install -Pit,equinox
 
##mvn clean install -Pit,equinox
  
Step 3 - generate release artifacts, tag, increment version:
+
=== Step 3 - stage release ===  
 
+
#generate javadocs - mvn javadoc:aggregate javadoc:jar - aggregated javadoc in target/site/apidocs/
+
#collect sources into JARs - mvn source:jar (outputDirectory doesn't work)
+
#generate documentation - cd docs; mvn clean pre-site; cd .. (used to be docbkx:generate-html docbkx:generate-pdf) // output in docs/target/site/
+
#generate Maven repo (when the Gemini maven repo is open for business):
+
##For full releases (not milestone or RC) may be necessary to change distributionManagement repository to point at release repository
+
##mvn -Pequinox -Dmaven.test.skip=true deploy -DperformRelease -DaltDeploymentRepository=local::default::file:/tmp/gemini-blueprint/2.0.0.M01/repo
+
#run release project - cd release; rm -rf target; mvn -P equinox package -Dmaven.test.skip=true; cd ..
+
#commit the changes
+
#tag the git repo
+
#push the changes and the tag
+
# checkout master
+
# delete the branch
+
 
+
Step 4 - publish:
+
 
+
#upload ZIP to Eclipse
+
##For full releases, Zip/upload/unzip the Maven repository - see [http://wiki.eclipse.org/Gemini/mvn Gemini Maven Repository]
+
#update the project website
+
##Updates to https://www.eclipse.org/gemini/blueprint/ are done via git (http://git.eclipse.org/c/www.eclipse.org/gemini/blueprint.git/)
+
##update the downloads page
+
##update the documentation in the Gemini Blueprint web site
+
##update the documentation page
+
#announce on the forum and mailing list
+
 
+
== Release Instructions for 1.0.x ==
+
 
+
Pre-req's: Java 5 in addition to preferred Java version. Maven 2.0.x has worked in the past; now using 3.0.3.
+
 
+
For example, for 1.0.1.M01:
+
 
+
Step 1 - update version:
+
# mvn versions:set -DnewVersion=1.0.1.M01
+
# find . -name "*.versionsBackup" -exec rm {} \;
+
# manually edit version in release/pom.xml, docs/pom.xml, and integration-tests/bundles/embedded.ns.bundle/pom.xml
+
# check Spring version properties in main pom.xml
+
# update changelog and its version/date
+
# find . -name "boot-bundles.properties" and update ignore.gemini.blueprint.version to 1.0.1.M01
+
# if blueprint schema needs to be changed:
+
## add the file gemini-blueprint-<version>.xsd to core/src/main/resources/org/eclipse/gemini/blueprint/config
+
## update the version attribute of the xsd:schema element of the above file
+
## update core/src/resources/main/resources/META-INF/schema (especially the aliases)
+
## update xml files in META-INF/spring which refer to the latest version of the eclipse-gemini-blueprint.xsd schema
+
  
Step 2 - build and test:
+
#commit and push the changes to the release branch
# switch to Java 5 (see http://www.s-seven.net/java_15_mountain_lion if you are on a Mac)
+
#go to https://hudson.eclipse.org/gemini/view/blueprint/job/gemini-blueprint-stage-release/ and run the build, this will also run all integration tests for all environments. After a successful build, the release artifacts are located in a _stagin repository_ in maven central. This gives you the opportunity to take a look at the very artifacts that make up the release prior to releasing them. You can find the staging repo via a search in the sonatype oss nexus (https://oss.sonatype.org/).
# Build and test using:
+
## mvn clean install -Pit,felix
+
## mvn clean install -Pit,knopflerfish // a few integration tests currently fail, but this could be KF setup problem
+
## mvn clean install -Pit,equinox
+
# switch back to Java 6 or later
+
  
Step 3 - generate release artifacts, tag, increment version:
+
=== Step 4 - publish the release (or drop it) ===  
# generate javadocs - mvn javadoc:aggregate javadoc:jar - aggregated javadoc in target/site/apidocs/
+
# collect sources into JARs - mvn source:jar (outputDirectory doesn't work)
+
# generate documentation - cd docs; mvn clean pre-site; cd .. (used to be docbkx:generate-html docbkx:generate-pdf) // output in docs/target/site/
+
# switch to Java 5
+
# generate Maven repo (when the Gemini maven repo is open for business):
+
## For full releases (not milestone or RC) may be necessary to change distributionManagement repository to point at release repository
+
## mvn -Pequinox -Dmaven.test.skip=true deploy -DperformRelease -DaltDeploymentRepository=local::default::file:/tmp/gemini-blueprint/1.0.1.M01/repo
+
# run release project - cd release; rm -rf target; mvn -P equinox package -Dmaven.test.skip=true; cd ..
+
# switch back to Java 6 or later
+
# commit the changes
+
# tag the git repo
+
# push the changes and tag
+
# increase version to 1.0.1.BUILD-SNAPSHOT
+
## mvn versions:set -DnewVersion=1.0.1.BUILD-SNAPSHOT
+
## find . -name "*.versionsBackup" -exec rm {} \;
+
## manually edit version in release/pom.xml, docs/pom.xml, and integration-tests/bundles/embedded.ns.bundle/pom.xml
+
## find . -name "boot-bundles.properties" and update ignore.gemini.blueprint.version to 1.0.1.BUILD-SNAPSHOT
+
  
Step 4 - publish:
+
IF you are satisfied with the staged artifacts, copy the staging repo id (e.g., "orgeclipsegemini-1001" in /service/local/repositories/orgeclipsegemini-1001/content/). Provide this as a parameter to the Gemini Blueprint Release job (https://hudson.eclipse.org/gemini/view/blueprint/job/gemini-blueprint-release/). This will irrevocably release the artifacts to maven central.
# upload ZIP to Eclipse
+
# update the downloads page
+
# store the documentation in the Gemini Blueprint web site
+
# update the documentation page
+
# announce on the forum and mailing list
+
  
 
[[Category:Gemini Blueprint|Blueprint]]
 
[[Category:Gemini Blueprint|Blueprint]]

Revision as of 15:20, 7 May 2016

Releasing Gemini Blueprint 2.x

Pre-req's: JDK 1.7. Maven 3.0.x.

Step 1 - update version

  1. Switch to release branch, e.g. release-2.0.1
  2. update changelog and its version/date
  3. if blueprint schema needs to be changed:
    1. add the file gemini-blueprint-<version>.xsd to core/src/main/resources/org/eclipse/gemini/blueprint/config
    2. update the version attribute of the xsd:schema element of the above file
    3. update core/src/resources/main/resources/META-INF/schema (especially the aliases)
    4. update xml files in META-INF/spring which refer to the latest version of the eclipse-gemini-blueprint.xsd schema
  4. branch the git repo
  5. mvn versions:set -DnewVersion=2.0.1.M1
  6. find . -name "*.versionsBackup" -exec rm {} \;
  7. manually edit version in release/pom.xml docs/pom.xml integration-tests/bundles/embedded.ns.bundle/pom.xml and test-support/dependency-reduced-pom.xml
  8. check Spring version properties in main pom.xml: cat pom.xml | grep spring.*version
  9. find . -name "boot-bundles.properties" and update ignore.gemini.blueprint.version to 2.0.0.M01: e.g. find . -name "boot-bundles.properties" | grep -v target | xargs subl

Step 2 - build and test

  1. Build and test using:
    1. mvn clean install -Pit,felix
    2. mvn clean install -Pit,knopflerfish
    3. mvn clean install -Pit,equinox

Step 3 - stage release

  1. commit and push the changes to the release branch
  2. go to https://hudson.eclipse.org/gemini/view/blueprint/job/gemini-blueprint-stage-release/ and run the build, this will also run all integration tests for all environments. After a successful build, the release artifacts are located in a _stagin repository_ in maven central. This gives you the opportunity to take a look at the very artifacts that make up the release prior to releasing them. You can find the staging repo via a search in the sonatype oss nexus (https://oss.sonatype.org/).

Step 4 - publish the release (or drop it)

IF you are satisfied with the staged artifacts, copy the staging repo id (e.g., "orgeclipsegemini-1001" in /service/local/repositories/orgeclipsegemini-1001/content/). Provide this as a parameter to the Gemini Blueprint Release job (https://hudson.eclipse.org/gemini/view/blueprint/job/gemini-blueprint-release/). This will irrevocably release the artifacts to maven central.

Back to the top