Release process

Matt Russell edited this page Aug 14, 2013 · 26 revisions

Prepare machine (one-time)

Edit ~/.sbt/sonatype.sbt:

credentials += Credentials("Sonatype Nexus Repository Manager",
                           "oss.sonatype.org",
                           "mattrussell",
                           "XXXXXXXX")

Edit ~/.m2/settings.xml: sonatype-nexus-snapshots mattrussell XXXXXXX sonatype-nexus-staging mattrussell XXXXXXXXX

Also create a GPG key and upload it:

gpg gen-key
gpg --list-keys
gpg --keyserver hkp://keyserver.ubuntu.com --send-keys 8412D1BB

Prepare trunk

export FROM=0.1.1
export TO=0.1.2
export NEW=0.1.3
sed -i s/$FROM/$TO/g README.rst
  • Add date to CHANGELOG.
  • Create scalariform/notes/$TO.markdown, check at http://www.ctrlshift.net/project/markdowneditor/
  • Check tests locally.
  • Do a deploy-local against Scala 2.9.2 and then check that the Maven plugin compiles (change the version in plugin pom.xml)
  • See if there any new Scala build versions to add

Branch

git add .
git commit -a -m "Preparing for $TO release"
git checkout -b $TO
scripts/update-version.sh $TO-SNAPSHOT $TO
git grep -n $TO-SNAPSHOT # $FROM etc

git commit -a -m "Update versions for $TO release"

Publish to Sonatype staging

(May need to up -XX:ReservedCodeCacheSize=)

sbt
> +test    
> project scalariform
> +publish-signed

Close and then release at: https://oss.sonatype.org/index.html#stagingRepositories (username = mattrussell)

Check at https://oss.sonatype.org/content/groups/public/org/scalariform/

Publish to implicit.ly

https://github.com/n8han/herald

cd scalariform
herald

(Click on publish link after preview. username = MattRussellUK)

Build and upload CLI tool

one-jar

Then upload to:

https://github.com/mdr/scalariform/downloads

Push new branch to Github

git push -u origin $TO

Update master

git co master
scripts/update-version.sh $TO-SNAPSHOT $NEW-SNAPSHOT
scripts/update-version.sh $TO.qualifier $NEW.qualifier
git commit -a -m "Update versions for $NEW-SNAPSHOT"

Publish maven plugin

Update to use latest version of Scalariform (may have to wait for it to sync up to Maven central). Then,

cd scalariform-maven-plugin
mvn release:clean
mvn release:prepare
mvn release:perform

Then close, release at https://oss.sonatype.org/index.html#stagingRepositories