|
| 1 | +# Releasing |
| 2 | + |
| 3 | +Step 🚢: Create a [new issue][issues/new] with the following checklist to the track the release! |
| 4 | + |
| 5 | +See the [prerequisites](#prerequisites) if this is your first release. |
| 6 | + |
| 7 | +* [ ] [Check Travis CI][travis-ci] passes against the latest Scala versions. |
| 8 | +* [ ] [Create a new milestone][milestones/new] for the release you are about to perform, if one [doesn't exist][milestones/list]. |
| 9 | +* [ ] [Create a new milestone][milestones/new] for the release after this one. |
| 10 | +* [ ] [Draft a new release][releases/new] for the release, by [comparing changes][compare/view]. |
| 11 | +* [ ] Bump the version in the `README.md` and `git commit -m 'Release 0.x.y` |
| 12 | +* [ ] Run `clean` in sbt, particularly if you've recently bumped `scalaVersion`. |
| 13 | +* [ ] Run `git tag -a -s 0.x.y -m 'Version 0.x.y` and `git push --follow-tags`. The name of the tag should NOT have a 'v' prefix. Run `reload` and `show version` in sbt to verify the version. |
| 14 | +* [ ] Run `^publishSigned` in sbt. You should start seeing "published mima-.. to https://oss.sonatype.org/service/local/staging/deploy/maven2/.." |
| 15 | +* [ ] [Find and close][sonatype/staging-repos] your stating repository. (See Sonatype's [Releasing the Deployment][sonatype/guide] guide.) |
| 16 | +* [ ] Test the release by adding `resolvers ++= Seq("Sonatype OSS Staging" at "https://oss.sonatype.org/content/repositories/staging", Resolver.bintrayRepo("typesafe", "sbt-plugins"))` to a project |
| 17 | +* [ ] [Find and release][sonatype/staging-repos] your stating repository. |
| 18 | +* [ ] Run `sbtplugin/bintrayRelease` in sbt (or use the [Web UI](https://bintray.com/typesafe/sbt-plugins/sbt-mima-plugin/view) to publish the sbt plugin artifacts. |
| 19 | +* [ ] [Close][milestones/list] the milestone |
| 20 | +* [ ] Wait for the artifacts to show up on Maven Central, either by: |
| 21 | + * successfully resolving the sbt plugin jar and dependent jars with sbt |
| 22 | + * successfully resolving the virtual directory: <https://repo1.maven.org/maven2/com/typesafe/mima-core_2.12/0.5.0/> (note the trailing slash) |
| 23 | +* [ ] [Hit "Publish Release"][releases/list] on GitHub. |
| 24 | + |
| 25 | +You are done! |
| 26 | + |
| 27 | +[compare/view]: https://github.com/lightbend/mima/compare/0.4.0...master |
| 28 | +[issues/new]: https://github.com/lightbend/mima/issues/new |
| 29 | +[milestones/list]: https://github.com/lightbend/mima/milestones?direction=asc |
| 30 | +[milestones/new]: https://github.com/lightbend/mima/milestones/new |
| 31 | +[releases/list]: https://github.com/lightbend/mima/releases |
| 32 | +[releases/new]: https://github.com/lightbend/mima/releases/new |
| 33 | + |
| 34 | +[sonatype/guide]: https://central.sonatype.org/pages/releasing-the-deployment.html |
| 35 | +[sonatype/staging-repos]: https://oss.sonatype.org/#stagingRepositories |
| 36 | +[travis-ci]: https://travis-ci.org/lightbend/mima |
| 37 | + |
| 38 | +## Prerequisites |
| 39 | + |
| 40 | +* repo push rights |
| 41 | +* publishing crendentials for Sonatype and Bintray, typically in `~/.sbt/1.0/credentials.sbt`: |
| 42 | + |
| 43 | +```scala |
| 44 | + credentials += Credentials("Sonatype Nexus Repository Manager", "oss.sonatype.org", <username>, <password>) |
| 45 | + credentials += Credentials("Bintray API Realm", "api.bintray.com", <username>, <password>) |
| 46 | +``` |
| 47 | + |
| 48 | +(Make sure you're not using an ancient version of sbt-pgp in `~/.sbt/1.0/plugins`.) |
0 commit comments