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)
m
 
(54 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== Building Gemini Blueprint ==
+
== Releasing Gemini Blueprint 2.x  ==
  
== Release Instructions ==
+
Pre-requisites: JDK 1.8. Maven 3.3.x.
  
The following are old notes for Spring DM. Need to update them for Gemini Blueprint!
+
=== 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.
  
Spring Dynamic Modules release procedure
+
mvn docbkx:generate-html@single-page &&
-----
+
mvn docbkx:generate-html@multi-page
Step 0:
+
# disable CI builds (trunk and NIGHTLY)
+
  
Step 1:
+
Make sure the changelog.txt is up to date regarding the included changes of the release.
# double check doc
+
# switch to Java5
+
# change version from SNAPSHOT to stable inside poms
+
# update version in simple-web-app-sample/web-console config.ini
+
# update version inside bundle-archetype target pom.xml
+
# update version inside Eclipse .classpath bundle-archetype target
+
# check spring.import.export osgi.versions in main pom.
+
# update changelog version/date
+
# update readme.txt version/date
+
# change AbstractDependencyManagerTests version
+
# change test support boot bundles version in properties
+
# change schema name from spring-osgi.xsd to spring-osgi-<version>.xsd
+
# update schema internal version (version attribute from schema header)
+
# update .schema files (especially the aliases)
+
# update xml files which contain the xsd + version
+
# disconnect network
+
# make sure tests work with it
+
  
Step 2: Generate release artifacts
 
# generate javadocs (connected to internet) - mvn javadoc:javadoc javadoc:jar
 
# add sources - mvn source:jar (outputDirectory doesn't work)
 
# add libs - mvn dependency:copy-dependencies -DoutputDirectory=../target/libs -P equinox,samples
 
## 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 2 - execute staging release ===
change distributionManagement to maven.springframework.org/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:
  
mvn -P equinox -Dmaven.test.skip=true deploy -DperformRelease
+
[[File:gemini-blueprint-releasing-nexus-managed-repos.png]]
  -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:
+
There, select the orgeclipsegemini-[NNN] repository created by the build. Download and test the artifacts contained therein:
mvn -P equinox -Dmaven.test.skip=true deploy -DperformRelease
+
- Are all expected release artifacts contained?
  -DaltDeploymentRepository=local::default::file:/e:/tmp/spring-osgi.dist/[version]/repo during the deploy command.
+
- Are the artifacts versioned as expected?
  
# run release project - cd release; rm -rf target; mvn -o -P equinox package -Dmaven.test.skip=true
+
=== Step 3 - publish the release (or drop it) ===
## add cglib (2.2.0)
+
## add jetty/tomcat activator sources+jars
+
# check version and format on both javadocs & docs
+
# update maven archetype
+
# update readme.txt/readme-libraries.txt
+
# 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.
+
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.
# 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)
+
## to get the same binaries in the zip and in the repo
+
 
+
Step 3: Upload artifacts
+
# 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
+
# verify links inside the docs
+
 
+
# put zip with and without dependencies on SF (as hidden artifact)
+
# download publish zip (normally wait 1-3 minutes for it)
+
 
+
# make SVN tag for the version
+
# increment project version back to SNAPSHOT and commit
+
 
+
# update 'current' symlink to the new version
+
# add versioned schema on internet
+
 
+
# update the home page
+
# announce forums and mailing list
+
 
+
# 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/
+
  
 
[[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