Skip to content

Latest commit

 

History

History
78 lines (51 loc) · 2.24 KB

team-rules.md

File metadata and controls

78 lines (51 loc) · 2.24 KB

ScalikeJDBC Contributors' Guide

Versioning Policy

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

Coding Rules for Project Members

  • 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

  • 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

Release

Required

  • 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")

Operations

The release manager is @seratch. Currently, all the following operations should be done by @seratch.