-
Notifications
You must be signed in to change notification settings - Fork 0
How to make a release
- Pre-reqs
- Before starting
- Perform release build
- Update for released version reference
- Final Checks
- Announcements
Follow Sonatype setup, this includes :
- Setup JIRA account, link, and request write access to repository (example).
- Create a GPG key set and upload (example)
- Setup ~/.m2/settings.xml to include the servers (instructions). Follow Maven guide on how to encrypt passwords
<settings>
.....
<servers>
<server>
<id>sonatype-nexus-snapshots</id>
<username>romanivanov</username>
<password>password</password>
</server>
<server>
<id>sonatype-nexus-staging</id>
<username>romanivanov</username>
<password>password</password>
</server>
<server>
<id>sourceforge-new-site</id>
<username>romanivanov</username>
<password>password</password>
</server>
</servers>
<profiles>
<profile>
<!-- "mvn release:prepare .... -Pgpg"
and it is possible to skip " -Dgpg.passphrase=xxxx" at "-Darguments"
Use "gpg \-\-list-keys", "pub 1024D/C6EED57A 2010-01-13"
to get "gpg.keyname" in example it is value "C6EED57A"
-->
<id>gpg</id>
<properties>
<gpg.passphrase>your_passphase</gpg.passphrase>
<gpg.keyname>C6EED57A</gpg.keyname>
</properties>
</profile>
</profiles>
.....
<settings>
- verify that all CI are green, all CI badges should be green - https://github.com/checkstyle/checkstyle
- Verify that test release works fine on Travis: https://travis-ci.org/checkstyle/checkstyle/builds, search for “release dry run”.
- Ensure your work space is in sync with Git.
- Ensure that repository is cloned by ssh protocol.
- Recheck that copyright is updated to recent year at checkstyle and sevntu-checkstyle project (depends by config) :
find . -type f \( -name *.java -o -name *.header \) -exec sed -i \
"s/\/\/ Copyright (C) 2001-2015 the original author or authors./\/\/ Copyright (C) 2001-2016 the original author or authors./g" \
{} +
- Next version. Review all changes and if where is no new Checks or new options in Checks or any new functionality that might require updated in some Checkstyle plugins and integrations - please bump only 3rd digit of release number:
mvn versions:set -DnewVersion=6.4.1-SNAPSHOT && mvn versions:commit
git add pom.xml && git commit -m "update to 6.4.1-SNAPSHOT" && git push
- Admin need to prepare Release notes at web site template. Content of release notes is taken from Travis build item example for 6.14 release, generated by releasenotes-builder
- Ensure that after all changes are done, nothing is left un-pushed.
git status
ATTENTION: before providing password for SSH , verify that previous version and next versions are what you expect.
- Run:
.../checkstyle [master|✔] $ ./release.sh
- Close previous milestone and create new milestone https://github.com/checkstyle/checkstyle/milestones
ATTENTION: Verify that the artifacts are automatically synchronized to the Maven Central Repository, Maven Search Engine. (beware that artifact appearance on maven central could take from 10 min to 2 hours) Syncing to Maven Central could take some time, do not proceed further till artifact appear in Maven Central Repository.
curl http://repo1.maven.org/maven2/com/puppycrawl/tools/checkstyle/
curl "http://search.maven.org/solrsearch/select/?q=com.puppycrawl.tools&a=checkstyle&wt=json"
update to point to new version of Checkstyle (WE need to recheck why “RELEASE” as version does not help us):
- checkstyle-samples/ant-project/ivy.xml
- checkstyle-samples/maven-project/pom.xml
- checkstyle-samples/gradle-project/build.gradle
- https://github.com/checkstyle/contribution/edit/master/checkstyle-tester/pom.xml#L15
- https://github.com/sevntu-checkstyle/sevntu.checkstyle/edit/master/sevntu-checks/pom.xml#L9
- https://github.com/checkstyle/checkstyle/edit/master/pom.xml#L473
- https://github.com/checkstyle/contribution/edit/master/releasenotes-builder/pom.xml#L25
- https://github.com/checkstyle/contribution/edit/master/patch-diff-report-tool/pom.xml#L12
.
- MANDATORY!!: Verify that build statuses are green
https://github.com/sevntu-checkstyle/checkstyle-samples ,
https://github.com/sevntu-checkstyle/sevntu.checkstyle ,
https://github.com/checkstyle/contribution,
https://github.com/checkstyle/checkstyle
- if Google’s config is changed or some Check are updated that are referenced in Google Style Guide , report against Guava project need to be regenerated. Follow instructions on how to generate Chekcstyle report for Guava.
- update Description for release https://github.com/checkstyle/checkstyle/releases/ , select tag, press “Edit Tag” put a link to release notes.
TODO: automate by https://developer.github.com/v3/repos/releases/#edit-a-release
- Send email announcement to the Checkstyle Announce mailing list.
- Submit SourceForge news.
- put news in twitter: @checkstyle_java, or from any other account with tag #checkstyle .
- put news to Google+ checkstyle account
- put news in private social networks accounts to spread the news.