This document describes the practices we use when developing and maintaining Apso.
We encourage contributions to be in the form of pull requests. We keep track of a Changelog but it's not expected for pull requests to eagerly update it. The Changelog should instead be updated prior to a release.
We try to adopt MAJOR.MINOR.PATCH Semantic Versioning 2.0.0:
- PATCH version Z (x.y.Z) is incremented if only backwards compatible bug fixes are introduced.
- MINOR version Y (x.Y.z) is incremented if new, binary backwards compatible functionality is introduced to the public API. A source breaking but binary compatible change is allowed between MINOR versions.
- MAJOR version X (X.y.z) is incremented if new binary backward breaking changes are introduced.
Before releasing, create, if it doesn't exist yet, a Changelog entry for the version you're releasing, following the template.
It's recommended to open a PR with the Changelog changes so that they can be reviewed by someone else from the team.
To release the artifacts in the Sonatype's release repository, which eventually gets synced to
Maven Central, simply use sbt
to run release
.
This will result in the releasing of all the apso-*
libraries. Please ensure you are using Java 11 when releasing
new versions.