Skip to content

Latest commit

 

History

History
52 lines (35 loc) · 2.13 KB

File metadata and controls

52 lines (35 loc) · 2.13 KB

Process

This document describes the practices we use when developing and maintaining Apso.

Pull requests

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.

Versioning

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.

Releasing

Prepare the release

Before releasing, create, if it doesn't exist yet, a Changelog entry for the version you're releasing, following the template.

To figure out what to include in the Changelog, you can check the timestamp of the last tag like the following (replacing the actual tag name):

$ git show -s --format=%ci v0.23.0 | cat
tag v0.23.0
Tagger: Beatriz Magalhães <bmagalhaes@kevel.com>

Release 0.23.0
2025-06-09 16:32:51 +0100

Then, you can use the GitHub CLI to list the actual PRs (replacing the timestamp with the timestamp of the tag obtained above):

$ gh pr list --limit 100 --state merged --search "base:master merged:>2025-06-09T16:32:51+0100" --json title,url,number --template '{{range .}}- {{.title}} ([#{{.number}}]({{.url}})).{{"\n"}}{{end}}' | tac

It's recommended to open a PR with the Changelog changes so that they can be reviewed by someone else from the team.

Releasing artifacts

To release the artifacts in the Sonatype's release repository, which eventually gets synced to Maven Central, simply use sbt to run release from the master branch. This will result in the releasing of all the apso-* libraries.