Skip to main content
Jump to: navigation, search

Difference between revisions of "Gemini/Blueprint/Releasing"

m (Step 4 - publish the release (or drop it))
m
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
== Releasing Gemini Blueprint  2.x  ==
 
== Releasing Gemini Blueprint  2.x  ==
  
Pre-req's: JDK 1.7. Maven 3.0.x.  
+
Pre-requisites: JDK 1.8. Maven 3.3.x.  
  
=== Step 1 - update version ===
+
=== Step 1 - make sure artifacts are prepared ===
 +
The docs/ module is independent of the maven module structure any may have to be set to the release target version manually in the pom.xml. The docs module
 +
must then be build manually. The resulting generated documentation in target/site/reference must be copied to the gemini website.
  
#Switch to release branch, e.g. release-2.0.1
+
mvn docbkx:generate-html@single-page &&  
#update changelog and its version/date
+
mvn docbkx:generate-html@multi-page
#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
+
# branch the git repo
+
#mvn versions:set -DnewVersion=2.0.1.M1
+
#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
+
#check Spring version properties in main pom.xml: cat pom.xml | grep spring.*version
+
#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 ===
+
Make sure the changelog.txt is up to date regarding the included changes of the release.
  
#Build and test using:
 
##mvn clean install -Pit,felix
 
##mvn clean install -Pit,knopflerfish
 
##mvn clean install -Pit,equinox
 
  
=== Step 3 - stage release ===  
+
=== Step 2 - execute staging release ===
 +
Execute the Hudson release staging build (https://hudson.eclipse.org/gemini/view/blueprint/job/gemini-blueprint-stage-release/). After execution, test the staged artifacts.
 +
Go to https://oss.sonatype.org/ and switch to the nexus managed repositories:
  
#commit and push the changes to the release branch
+
[[File:gemini-blueprint-releasing-nexus-managed-repos.png]]
#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) ===
+
There, select the orgeclipsegemini-[NNN] repository created by the build. Download and test the artifacts contained therein:
 +
- Are all expected release artifacts contained?
 +
- Are the artifacts versioned as expected?
  
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.
+
=== Step 3 - 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 Publish Release Job (https://hudson.eclipse.org/gemini/job/gemini-blueprint-publish-release/). This will irrevocably release the artifacts to maven central. In case you want to discard the staged artifacts execute the Gemini Blueprint Discard Release Job (https://hudson.eclipse.org/gemini/job/gemini-blueprint-discard-release/) with the same repository ID and the staged release version.
  
 
[[Category:Gemini Blueprint|Blueprint]]
 
[[Category:Gemini Blueprint|Blueprint]]

Latest revision as of 18:38, 2 April 2018

Releasing Gemini Blueprint 2.x

Pre-requisites: JDK 1.8. Maven 3.3.x.

Step 1 - make sure artifacts are prepared

The docs/ module is independent of the maven module structure any may have to be set to the release target version manually in the pom.xml. The docs module must then be build manually. The resulting generated documentation in target/site/reference must be copied to the gemini website.

mvn docbkx:generate-html@single-page && mvn docbkx:generate-html@multi-page

Make sure the changelog.txt is up to date regarding the included changes of the release.


Step 2 - execute staging release

Execute the Hudson release staging build (https://hudson.eclipse.org/gemini/view/blueprint/job/gemini-blueprint-stage-release/). After execution, test the staged artifacts. Go to https://oss.sonatype.org/ and switch to the nexus managed repositories:

Gemini-blueprint-releasing-nexus-managed-repos.png

There, select the orgeclipsegemini-[NNN] repository created by the build. Download and test the artifacts contained therein: - Are all expected release artifacts contained? - Are the artifacts versioned as expected?

Step 3 - 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 Publish Release Job (https://hudson.eclipse.org/gemini/job/gemini-blueprint-publish-release/). This will irrevocably release the artifacts to maven central. In case you want to discard the staged artifacts execute the Gemini Blueprint Discard Release Job (https://hudson.eclipse.org/gemini/job/gemini-blueprint-discard-release/) with the same repository ID and the staged release version.

Back to the top