/kb-util

Assorted utility classes for use between multiple KB-projects

Primary LanguageJavaApache License 2.0Apache-2.0

KB-Util

Shared utility library for IT developers at the Royal Danish Library.

Available as a dependency

<dependency>
    <groupId>dk.kb.util</groupId>
    <artifactId>kb-util</artifactId>
    <version>VERSION</version>
<dependency>

Requirements

  • Maven 3
  • Java 11 (tested with OpenJDK 11)

Build

mvn package

Adding to the library

There are no set rules for what kb-util contains and no special group or person responsible for approving additions, changes or bug fixes. Standard procedure for developing software at the Royal Danish Library does apply: Please get someone to review your changes.

The content of kb-util is expected to be used across multiple projects and it is expected to be a light weight dependency: Please don't add an utility for OCRing of subtitles from video streams, requiring gigabytes of third party libraries.

Important: Refactoring or other changes that breaks backwards compatibility should be explicitly discussed with the reviewer.

Release procedure

The master-branch of kb-util is expected to be ready for release at all times. Releases can be done by any IT developer at the Royal Danish Library, whenever they see the need.

The practical steps are

  1. Review that the version in pom.xml is fitting. kb-util uses Semantic Versioning: The typical release will bump the MINOR version and set PATCH to 0. Keep the -SNAPSHOT-part as the Maven release plugin handles that detail.
  2. Ensure that CHANGELOG.md is up to date. git log is your friend. Ensure that the about-to-be-released version is noted in the changelog entry
  3. Ensure all local changes are committed and pushed.
  4. Ensure that your local .m2/settings.xml has a current sbforge-nexus-setup (contact Kim Christensen kb@ or another Maven-wrangler for help)
  5. Follow the instructions on Guide to using the release plugin which boils down to
    • Run mvn clean release:prepare
    • Check that everything went well, then run mvn clean release:perform
    • Run git push
      If anything goes wrong during release, rollback and delete tags using something like mvn release:rollback ; git tag -d kb-util-1.4.x ; git push --delete origin kb-util-1.4.x

Note that kb-util-1.4.x is not an existing tag and should be replaced with the version selected during mvn clean release:prepare.