Skip to main content

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.

Jump to: navigation, search

Difference between revisions of "Gemini/Blueprint/Releasing"

m
m
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Building Gemini Blueprint ==
+
== Releasing Gemini Blueprint 2.x  ==
  
== Release Instructions for 2.0.x ==
+
Pre-requisites: JDK 1.8. Maven 3.3.x.
  
Pre-req's: Java 6. Maven 3.0.3.  
+
=== 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.
  
For example, for 2.0.0.M01:  
+
mvn docbkx:generate-html@single-page &&
 +
mvn docbkx:generate-html@multi-page
  
Step 1 - update version:
+
Make sure the changelog.txt is up to date regarding the included changes of the release.
  
#update changelog and its version/date
 
#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.0.M01
 
#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:  
+
=== 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:
  
#Build and test using:  
+
[[File:gemini-blueprint-releasing-nexus-managed-repos.png]]
##mvn clean install -Pit,felix
+
##mvn clean install -Pit,knopflerfish
+
##mvn clean install -Pit,equinox
+
  
Step 3 - generate release artifacts, tag, increment version:  
+
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?
  
#generate javadocs - mvn javadoc:aggregate javadoc:jar - aggregated javadoc in target/site/apidocs/
+
=== Step 3 - publish the release (or drop it) ===  
#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:
+
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.
 
+
#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 downloads page
+
#store 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:
+
# switch to Java 5 (see http://www.s-seven.net/java_15_mountain_lion if you are on a Mac)
+
# 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:
+
# 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:
+
# 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]]

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