Skip to content

MovingBlocks/joml-ext

Repository files navigation

JOML Extensions

JOML-Ext is a set of extensions based on JOML.

joml-geom is the initial module, consisting of geometric primitives moved from the core JOML project.

License and original attribution

Initial code was contributed by Kai 'httpdigest' Burjack and originally licensed under the MIT

Adopted by The Terasology Foundation January 2021 and re-licensed under Apache 2.0 with permission

Other contributions before the adoption by Dmitrii Ivaniusin and Sebastian Fellner, later contributions by the Terasology community

🚀 Release Management

A release denotes that an artifact for the associated commit is available for consumption. Our Jenkins CI/CD pipeline automatically builds and publishes releases for the main branch. The artifact is published to our Artifactory under the version specified in build.gradle.

Note: Whether an artifact should be published as release or snapshot is determined by whether or not there is a -SNAPSHOT in the version. Publishing will fail in case publishing the same non-snapshot version is attempted again.

The exact build steps for this library are defined in the Jenkinsfile.

🗄 SnapshotsReleases

🚧 TODO: how to consume joml-ext from the Terasology Artifactory (e.g., gradle dependency snippet)

Release Process

As releases are automatically triggered from main the required steps to make a non-snapshot release for any version is as follows:

  1. Decide on release version ▪ Which branch to publish, under which version?

    The version number MUST be a higher SemVer than the current version of the branch to release. The version bump SHOULD follow SemVer specifications, e.g., increase the major version for breaking changes, or do a patch release for bug fixes.

  2. Make the release commit ▪ Trigger a release via Jenkins

    Update the version in build.gradle and remove the -SNAPSHOT suffix. Commit the change with the following message:

    release: version {{version}}

    Until we have automatic tagging or a tag-based release process it is recommended to manually create and push an annotated tag for the respective version on master. For a library release v1.2.3 the tag process is:

    git tag -a v1.2.3 -m "Release version 1.2.3"
    git push --tags
  3. Prepare for next release ▪ Bump to next snapshot version

    Finally, we have to increase the version number to be able to get pre-release -SNAPSHOT builds for subsequent commits. Therefore, the version number MUST be a higher SemVer than the version just released. This will typically be a minor version bump. To do this, just update the version in build.gradle and commit the change with the following message:

    chore: prepare next snapshot for {{version}}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages