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"

(Release Instructions)
(40 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
== Building Gemini Blueprint ==
 
== Building Gemini Blueprint ==
  
== Release Instructions ==
+
== Release Instructions for 2.0.x  ==
  
For example, for 1.0.1.M01:
+
Pre-req's: Java 6. Maven 3.0.3.  
  
Step 1:
+
For example, for 2.0.0.M01:  
# git checkout -b milestone-prep
+
# mvn versions:set -DnewVersion=1.0.1.M01
+
# find . -name "*.versionsBackup" -exec rm {} \;
+
# update changelog version/date
+
# find . -name "boot-bundles.properties" and update ignore.gemini.blueprint.version to 1.0.1.M01
+
# switch to Java 5?
+
# disconnect network?
+
# Build and test using: mvn clean install -Pit,equinox
+
# reconnect network?
+
# switch back to Java 6 or later?
+
# <work in progress>
+
  
The following are old notes for Spring DM. Need to update them for Gemini Blueprint!
+
Step 1 - update version:
  
Spring Dynamic Modules release procedure
+
#update changelog and its version/date
-----
+
#if blueprint schema needs to be changed:
Step 0:
+
##add the file gemini-blueprint-&lt;version&gt;.xsd to core/src/main/resources/org/eclipse/gemini/blueprint/config
# disable CI builds (trunk and NIGHTLY) // No need since CI builds do not interfere with local.
+
##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
 +
#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 1:
+
Step 2 - build and test:
# double check doc // Not automatable. Skip.
+
# switch to Java5 // Need to get Java5 on Mac.
+
# change version from SNAPSHOT to stable inside poms // Done. mvn versions:set -DnewVersion=xxx then remove *.versionsBackup files
+
# update version in simple-web-app-sample/web-console config.ini // // Not found
+
# update version inside bundle-archetype target pom.xml // // Not found
+
# update version inside Eclipse .classpath bundle-archetype target // // Not found
+
# check spring.import.export osgi.versions in main pom. // Not found
+
# update changelog version/date// Done.
+
# update readme.txt version/date // Not versioned or dated.
+
# change AbstractDependencyManagerTests version // No hard-coded version.
+
# change test support boot bundles version in properties // Done.
+
# change schema name from spring-osgi.xsd to spring-osgi-<version>.xsd // Not sure if this always needs doing. If so, which files need changing?
+
# update schema internal version (version attribute from schema header) // Not sure if this always needs doing. If so, which files need changing?
+
# update .schema files (especially the aliases) // Not sure if this always needs doing. If so, which files need changing?
+
# update xml files which contain the xsd + version // Depends on whether schema version has changed.
+
# disconnect network // Why?
+
# make sure tests work with it // What test targets need to be run? Is Maven 3 ok or must we use Maven 2?
+
# // Is this the point at which to reconnect the network?
+
  
Step 2: Generate release artifacts
+
#Build and test using:  
# generate javadocs (connected to internet) - mvn javadoc:javadoc javadoc:jar
+
##mvn clean install -Pit,felix
# add sources - mvn source:jar (outputDirectory doesn't work)
+
##mvn clean install -Pit,knopflerfish
# add libs - mvn dependency:copy-dependencies -DoutputDirectory=../target/libs -P equinox,samples
+
##mvn clean install -Pit,equinox
## this allows duplicates to be removed
+
## assemble plugin will pick this location and include in the distributed artifacts
+
# switch to java 6
+
# generate documentation - cd docs; mvn clean pre-site (used to be docbkx:generate-html docbkx:generate-pdf)
+
# switch back to java 5
+
  
Public (NOT RC, Mx) releases:
+
Step 3 - generate release artifacts, tag, increment version:  
change distributionManagement to maven.springframework.org/release
+
  
mvn -P equinox -Dmaven.test.skip=true deploy -DperformRelease  
+
#generate javadocs - mvn javadoc:aggregate javadoc:jar - aggregated javadoc in target/site/apidocs/
  -DaltDeploymentRepository=local::default::file:/d:/work/study/osgi/repo during the deploy command.
+
#collect sources into JARs - mvn source:jar (outputDirectory doesn't work)
              <maven-sync-root></maven-sync-root> is a checkout of https://springframework.svn.sourceforge.net/svnroot/springframework/repos/repo
+
#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
  
Milestone releases:
+
Step 4 - publish:  
mvn -P equinox -Dmaven.test.skip=true deploy -DperformRelease
+
  -DaltDeploymentRepository=local::default::file:/e:/tmp/spring-osgi.dist/[version]/repo during the deploy command.
+
  
# run release project - cd release; rm -rf target; mvn -o -P equinox package -Dmaven.test.skip=true
+
#upload ZIP to Eclipse
## add cglib (2.2.0)
+
#For full releases, Zip/upload/unzip the Maven repository - see [http://wiki.eclipse.org/Gemini/mvn Gemini Maven Repository]
## add jetty/tomcat activator sources+jars
+
#update the downloads page
# check version and format on both javadocs & docs
+
#store the documentation in the Gemini Blueprint web site
# update maven archetype
+
#update the documentation page
# update readme.txt/readme-libraries.txt
+
#announce on the forum and mailing list
# final search for XXX-SNAPSHOT to see whether it is referred to somewhere
+
  
# the assembly already created the artifacts under release/target. You just need to add the sources under src/ folder.
+
== Release Instructions for 1.0.x ==
# add Incubator in the name
+
# commit sources with stable revisions
+
# do SVN export to provide the sources (should find a better way) and add them to the with-dependencies archive. Check what modules should be excluded (docs/release/lib) - archive the sources into a zip (since building causes leftovers)
+
# delete local maven repo
+
# try to build the project from the sources
+
# if everything works out okay, put the sources in the archive,make tag and increase version to 1.1.X-SNAPSHOT tag
+
  
# run the mvn deploy target above but this time w/o the altDeploymentRepository (for milestones)
+
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.
## to get the same binaries in the zip and in the repo
+
  
Step 3: Upload artifacts
+
For example, for 1.0.1.M01:
# create zip for javadocs and docs
+
# log into www.springframework.org
+
# go to static.spring/osgi/docs
+
# create XXX version
+
# unzip javadocs and docs
+
# update online schemas at static.spring/schema/osgi*
+
  
# put *.txt files in there
+
Step 1 - update version:
# verify links inside the docs
+
# mvn versions:set -DnewVersion=1.0.1.M01
 
+
# find . -name "*.versionsBackup" -exec rm {} \;
# put zip with and without dependencies on SF (as hidden artifact)
+
# manually edit version in release/pom.xml, docs/pom.xml, and integration-tests/bundles/embedded.ns.bundle/pom.xml
# download publish zip (normally wait 1-3 minutes for it)
+
# check Spring version properties in main pom.xml
 
+
# update changelog and its version/date
# make SVN tag for the version
+
# find . -name "boot-bundles.properties" and update ignore.gemini.blueprint.version to 1.0.1.M01
# increment project version back to SNAPSHOT and commit
+
# 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
  
# update 'current' symlink to the new version
+
Step 2 - build and test:
# add versioned schema on internet
+
# 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
  
# update the home page
+
Step 3 - generate release artifacts, tag, increment version:
# announce forums and mailing list
+
# 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
 
# upload ZIP to Eclipse
C:\tools\putty>pscp.exe -scp -v e:\tmp\spring-osgi.dist\gemini\1.0.0.M1\gemini-blueprint-incubation-1.0.0.M1.zip cleau@download1.eclipse.org:downloads/blueprint/
+
# 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 11:55, 20 March 2013

Building Gemini Blueprint

Release Instructions for 2.0.x

Pre-req's: Java 6. Maven 3.0.3.

For example, for 2.0.0.M01:

Step 1 - update version:

  1. update changelog and its version/date
  2. 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
  3. branch the git repo
  4. mvn versions:set -DnewVersion=2.0.0.M01
  5. find . -name "*.versionsBackup" -exec rm {} \;
  6. manually edit version in release/pom.xml docs/pom.xml integration-tests/bundles/embedded.ns.bundle/pom.xml
  7. check Spring version properties in main pom.xml: cat pom.xml | grep spring.*version
  8. 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 - generate release artifacts, tag, increment version:

  1. generate javadocs - mvn javadoc:aggregate javadoc:jar - aggregated javadoc in target/site/apidocs/
  2. collect sources into JARs - mvn source:jar (outputDirectory doesn't work)
  3. generate documentation - cd docs; mvn clean pre-site; cd .. (used to be docbkx:generate-html docbkx:generate-pdf) // output in docs/target/site/
  4. generate Maven repo (when the Gemini maven repo is open for business):
    1. For full releases (not milestone or RC) may be necessary to change distributionManagement repository to point at release repository
    2. mvn -Pequinox -Dmaven.test.skip=true deploy -DperformRelease -DaltDeploymentRepository=local::default::file:/tmp/gemini-blueprint/2.0.0.M01/repo
  5. run release project - cd release; rm -rf target; mvn -P equinox package -Dmaven.test.skip=true; cd ..
  6. commit the changes
  7. tag the git repo
  8. push the changes and the tag
  9. checkout master
  10. delete the branch

Step 4 - publish:

  1. upload ZIP to Eclipse
  2. For full releases, Zip/upload/unzip the Maven repository - see Gemini Maven Repository
  3. update the downloads page
  4. store the documentation in the Gemini Blueprint web site
  5. update the documentation page
  6. 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:

  1. mvn versions:set -DnewVersion=1.0.1.M01
  2. find . -name "*.versionsBackup" -exec rm {} \;
  3. manually edit version in release/pom.xml, docs/pom.xml, and integration-tests/bundles/embedded.ns.bundle/pom.xml
  4. check Spring version properties in main pom.xml
  5. update changelog and its version/date
  6. find . -name "boot-bundles.properties" and update ignore.gemini.blueprint.version to 1.0.1.M01
  7. 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

Step 2 - build and test:

  1. switch to Java 5 (see http://www.s-seven.net/java_15_mountain_lion if you are on a Mac)
  2. Build and test using:
    1. mvn clean install -Pit,felix
    2. mvn clean install -Pit,knopflerfish // a few integration tests currently fail, but this could be KF setup problem
    3. mvn clean install -Pit,equinox
  3. switch back to Java 6 or later

Step 3 - generate release artifacts, tag, increment version:

  1. generate javadocs - mvn javadoc:aggregate javadoc:jar - aggregated javadoc in target/site/apidocs/
  2. collect sources into JARs - mvn source:jar (outputDirectory doesn't work)
  3. generate documentation - cd docs; mvn clean pre-site; cd .. (used to be docbkx:generate-html docbkx:generate-pdf) // output in docs/target/site/
  4. switch to Java 5
  5. generate Maven repo (when the Gemini maven repo is open for business):
    1. For full releases (not milestone or RC) may be necessary to change distributionManagement repository to point at release repository
    2. mvn -Pequinox -Dmaven.test.skip=true deploy -DperformRelease -DaltDeploymentRepository=local::default::file:/tmp/gemini-blueprint/1.0.1.M01/repo
  6. run release project - cd release; rm -rf target; mvn -P equinox package -Dmaven.test.skip=true; cd ..
  7. switch back to Java 6 or later
  8. commit the changes
  9. tag the git repo
  10. push the changes and tag
  11. increase version to 1.0.1.BUILD-SNAPSHOT
    1. mvn versions:set -DnewVersion=1.0.1.BUILD-SNAPSHOT
    2. find . -name "*.versionsBackup" -exec rm {} \;
    3. manually edit version in release/pom.xml, docs/pom.xml, and integration-tests/bundles/embedded.ns.bundle/pom.xml
    4. find . -name "boot-bundles.properties" and update ignore.gemini.blueprint.version to 1.0.1.BUILD-SNAPSHOT

Step 4 - publish:

  1. upload ZIP to Eclipse
  2. update the downloads page
  3. store the documentation in the Gemini Blueprint web site
  4. update the documentation page
  5. announce on the forum and mailing list

Back to the top