Skip to main content
Jump to: navigation, search

Gemini/Blueprint/Releasing

< Gemini‎ | Blueprint
Revision as of 11:04, 29 May 2012 by Gnormington.vmware.com (Talk | contribs) (Release Instructions)

Building Gemini Blueprint

Release Instructions

For example, for 1.0.1.M01:

Step 1:

  1. git checkout -b milestone-prep
  2. mvn versions:set -DnewVersion=1.0.1.M01
  3. find . -name "*.versionsBackup" -exec rm {} \;
  4. update changelog version/date
  5. find . -name "boot-bundles.properties" and update ignore.gemini.blueprint.version to 1.0.1.M01
  6. switch to Java 5?
  7. disconnect network?
  8. Build and test using: mvn clean install -Pit,equinox
  9. reconnect network?
  10. switch back to Java 6 or later?
  11. <work in progress>

The following are old notes for Spring DM. Need to update them for Gemini Blueprint!

Spring Dynamic Modules release procedure


Step 0:

  1. disable CI builds (trunk and NIGHTLY) // No need since CI builds do not interfere with local.

Step 1:

  1. double check doc // Not automatable. Skip.
  2. switch to Java5 // Need to get Java5 on Mac.
  3. change version from SNAPSHOT to stable inside poms // Done. mvn versions:set -DnewVersion=xxx then remove *.versionsBackup files
  4. update version in simple-web-app-sample/web-console config.ini // // Not found
  5. update version inside bundle-archetype target pom.xml // // Not found
  6. update version inside Eclipse .classpath bundle-archetype target // // Not found
  7. check spring.import.export osgi.versions in main pom. // Not found
  8. update changelog version/date// Done.
  9. update readme.txt version/date // Not versioned or dated.
  10. change AbstractDependencyManagerTests version // No hard-coded version.
  11. change test support boot bundles version in properties // Done.
  12. 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?
  13. update schema internal version (version attribute from schema header) // Not sure if this always needs doing. If so, which files need changing?
  14. update .schema files (especially the aliases) // Not sure if this always needs doing. If so, which files need changing?
  15. update xml files which contain the xsd + version // Depends on whether schema version has changed.
  16. disconnect network // Why?
  17. make sure tests work with it // What test targets need to be run? Is Maven 3 ok or must we use Maven 2?
  18. // Is this the point at which to reconnect the network?

Step 2: Generate release artifacts

  1. generate javadocs (connected to internet) - mvn javadoc:javadoc javadoc:jar
  2. add sources - mvn source:jar (outputDirectory doesn't work)
  3. add libs - mvn dependency:copy-dependencies -DoutputDirectory=../target/libs -P equinox,samples
    1. this allows duplicates to be removed
    2. assemble plugin will pick this location and include in the distributed artifacts
  4. switch to java 6
  5. generate documentation - cd docs; mvn clean pre-site (used to be docbkx:generate-html docbkx:generate-pdf)
  6. switch back to java 5

Public (NOT RC, Mx) releases: change distributionManagement to maven.springframework.org/release

mvn -P equinox -Dmaven.test.skip=true deploy -DperformRelease

 -DaltDeploymentRepository=local::default::file:/d:/work/study/osgi/repo during the deploy command.
              <maven-sync-root></maven-sync-root> is a checkout of https://springframework.svn.sourceforge.net/svnroot/springframework/repos/repo

Milestone releases: mvn -P equinox -Dmaven.test.skip=true deploy -DperformRelease

 -DaltDeploymentRepository=local::default::file:/e:/tmp/spring-osgi.dist/[version]/repo during the deploy command.
  1. run release project - cd release; rm -rf target; mvn -o -P equinox package -Dmaven.test.skip=true
    1. add cglib (2.2.0)
    2. add jetty/tomcat activator sources+jars
  2. check version and format on both javadocs & docs
  3. update maven archetype
  4. update readme.txt/readme-libraries.txt
  5. final search for XXX-SNAPSHOT to see whether it is referred to somewhere
  1. the assembly already created the artifacts under release/target. You just need to add the sources under src/ folder.
  2. add Incubator in the name
  3. commit sources with stable revisions
  4. 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)
  5. delete local maven repo
  6. try to build the project from the sources
  7. if everything works out okay, put the sources in the archive,make tag and increase version to 1.1.X-SNAPSHOT tag
  1. run the mvn deploy target above but this time w/o the altDeploymentRepository (for milestones)
    1. to get the same binaries in the zip and in the repo

Step 3: Upload artifacts

  1. create zip for javadocs and docs
  2. log into www.springframework.org
  3. go to static.spring/osgi/docs
  4. create XXX version
  5. unzip javadocs and docs
  6. update online schemas at static.spring/schema/osgi*
  1. put *.txt files in there
  2. verify links inside the docs
  1. put zip with and without dependencies on SF (as hidden artifact)
  2. download publish zip (normally wait 1-3 minutes for it)
  1. make SVN tag for the version
  2. increment project version back to SNAPSHOT and commit
  1. update 'current' symlink to the new version
  2. add versioned schema on internet
  1. update the home page
  2. announce forums and mailing list
  1. 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/

Copyright © Eclipse Foundation, Inc. All Rights Reserved.