"{major}.{minor}.{fix}"
- major: Change only when the supported Scala major version changes:
- Version 1 supports Scala 2.9 & 2.10
- Version 2 supports Scala 2.10, Scala 2.11 and Scala 2.12
- Version 3 supports Scala 2.10, Scala 2.11 and Scala 2.12
- minor: Change to indicate functionality and API compatibility changes, the same minor version must provide the same functionality and APIs
- fix: For releasing smaller improvements, bug fixes and new features
- Push "feature/xxx" branch first
- Create a "feature/xxx" branch and create a pull request when you need code review
- Compatibility always must be kept as far back as possible
- scalariform must be applied to all Scala source code
- Prefer creating separate Scala source files for each class/object/trait (except, of course, for sealed traits)
- Testing with default settings is required when pushing changes:
sbt library/test
sbt interpolation/test
./scripts/run_tests.sh h2
- Testing with H2/HSQLDB/MySQL/PostgreSQL (latest versions) is required before release:
./scripts/run_all_tests.sh
See the required settings here:
scalikejdbc-library/src/test/resources/*.properties
- Sonatype release account
How to add a new Sonatype account for release maintainers:
https://issues.sonatype.org/browse/OSSRH-14350
If you're already allowed to release ScalikeJDBC libs, use your own Sonatype account:
- $HOME/.sbt/0.13/sonatype.sbt
credentials += Credentials("Sonatype Nexus Repository Manager", "oss.sonatype.org", "xxx", "yyy")
- $HOME/.sbt/0.13/plugins/gpg.sbt
// Use latest version
addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.0.0")
The release manager is @seratch. Currently, all the following operations should be done by @seratch.
- Create release note under notes.
- Fix _version in project/Build.scala
- Run all the
./scripts/release_*.sh
and close/publish on the sonatype console - Post to http://notes.implicit.ly/ by using herald
- Post to ScalikeJDBC Users Group
- Twitter account: @scalikejdbc