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",

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:// --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
  • 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


git add .
git commit -a -m "Preparing for $TO release"
git checkout -b $TO
scripts/ $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=)

> +test    
> project scalariform
> +publish-signed

Close and then release at: (username = mattrussell)

Check at

Publish to

cd scalariform

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

Build and upload CLI tool


Then upload to:

Push new branch to Github

git push -u origin $TO

Update master

git co master
scripts/ $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