Files
spring-data-dev-tools/release-tools
Oliver Gierke 4cd460fa98 #7 - Added support to update project information on spring.io.
This commit introduces a command "sagan update …" to take a comma-separated list of release train names that are supported. The implementation will find the latest releases by inspecting the Git tags and the creating the necessary project metadata information. The code will then wipe the existing metadata and PUT the current information to the server.
2017-07-26 17:25:00 +02:00
..
2016-02-10 12:01:06 +01:00
2017-07-25 18:23:28 +02:00
2017-05-09 14:11:23 +02:00

  1. Infrastructure requirements
  • Pivotal VPN account
  • User account (for SCP access) on docs.af.pivotal.io. Needs to be registered within local settings.xml for a server named static-dot-s2.
  • Credentials for buildmaster accounts on https://repo.spring.io.
  • Credentials for https://oss.sonatype.org (to deploy and promote GA and service releases, need deployment permissions for org.springframework.data) in settings.xml for server with id sonatype.
  1. Add an application-local.properties to the project root and add the following properties:
  • git.username - Your GitHub username.
  • git.password - Your GitHub password or API key.
  • git.author - Your full name (used for preparing commits).
  • git.email - Your email (used for preparing commits).
  • maven.mavenHome - Pointing to the location of your Maven installation.
  • deployment.api-key - The API key to use for artifact promotion.
  • deployment.password - The password of the deployment user (buildmaster).
  1. Run mvn package appassembler:assemble && sh target/appassembler/bin/spring-data-release-shell

  2. Pre-release checks

Make sure that:

  • Upgrade dependencies in Spring Data Build parent pom (mind minor/major version rules)
  • All release tickets are present ($ tracker releasetickets)
  • Review open tickets for release
  • Self-assign release tickets
  • Announce release preparations to mailing list
  1. Commands to execute
$ release prepare $trainIteration
$ release build $trainIteration
$ release conclude $trainIteration
$ git push $trainIteration
$ git push $trainIteration --tags
$ release distribute $trainIteration
$ git backport changelog $trainIteration --target $targets
$ foreach $target -> git push $target
  1. Post-release tasks
  • Create release tickets for next release $ tracker create releaseversions and $ tracker create releasetickets
  • Announce release (Blog, Twitter) and notify downstream dependency projects as needed