From af79c5dc4443f599fac29b7123113ef399e9c01e Mon Sep 17 00:00:00 2001 From: jdrueckert Date: Fri, 19 Apr 2024 21:27:08 +0200 Subject: [PATCH 1/3] doc: add release instructions and general info --- README.md | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 59 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index dd94fec4e..9d7cfce6b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,9 @@ # TeraBullet (Terasology Version) -TeraBullet is a version of bullet with extensions for direct interactions for voxel worlds. Written for use with Terasology. this is an implementation of bullet wraps around native bullet using SWIG. +_TeraBullet is a version of [bullet](https://github.com/bulletphysics/bullet3) with extensions for direct interactions for voxel worlds, written for use with Terasology. +Bullet is a real-time collision detection and multi-physics simulation, for instance intended for use in games. +In Terasology, we use it, for instance, for simulating gravity for player and object movements as well as for collisions between players and/or objects. +This is an implementation of bullet wraps around native bullet using SWIG._ ## Prerequisites @@ -39,9 +42,62 @@ To build only the Java library part of bullet, simply run ./gradlew build ``` -## Publishing +## Release Management -... +A _release_ denotes that an artifact for the associated commit is available for consumption. Our +[GitHub action](https://github.com/MovingBlocks/JNBullet/actions) automatically builds and publishes releases for the main `master` branch. +The artifact is published to our [Artifactory] under the version specified in [`gradle.properties`](./gradle.properties). + +> ⚠ **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 [GitHub action workflow](./.github/workflows/allInOne.yml). + +🗄 [**Snapshots**](https://artifactory.terasology.io/ui/repos/tree/General/libs-snapshot-local/org/terasology/jnbullet) ▪ [**Releases**](https://artifactory.terasology.io/ui/repos/tree/General/libs-release-local/org/terasology/jnbullet) + +### Release Process + +As releases are automatically triggered from `master` 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._ + +1. **Make the release commit** ▪ Trigger a release via the [GitHub Action] + + _Update the version in [gradle.properties](./gradle.properties) and remove the `-SNAPSHOT` suffix. Commit the change with the + following message and push it:_ + + > `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][git-tag] for the respective version on `master`. For a library release v1.2.3 + the tag process is:_ + + ```sh + git tag -a v1.2.3 -m "Release version 1.2.3" + git push --tags + ``` + +1. **Prepare for next release** ▪ Bump to next snapshot version + + _Next, 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 [gradle.properties](./gradle.properties), commit the + change with the following message and push it:_ + + > `chore: prepare next snapshot for {{version}}` + +1. **Make the release visible** ▪ Create the GitHub Release + + _Finally, we need to create the GitHub release to make the new release visible. + Navigate to [JNBullet Releases](https://github.com/MovingBlocks/JNBullet/releases) and "Draft a new release". + Select the tag you created earlier and name the release as "v{{version}}", optionally with a descriptive suffix like " - Initial Release". + "Generate release notes" to have GitHub automatically add a list of new changes and contributors since the last release and publish the release._ ## Testing From c9dc7e00637c1457ca72cc6af1aeddc2045d5756 Mon Sep 17 00:00:00 2001 From: jdrueckert Date: Fri, 19 Apr 2024 21:28:54 +0200 Subject: [PATCH 2/3] chore: update name in README --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9d7cfce6b..afed105dd 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# TeraBullet (Terasology Version) +# JNBullet (Terasology Version) -_TeraBullet is a version of [bullet](https://github.com/bulletphysics/bullet3) with extensions for direct interactions for voxel worlds, written for use with Terasology. +_JNBullet is a version of [bullet](https://github.com/bulletphysics/bullet3) with extensions for direct interactions for voxel worlds, written for use with Terasology. Bullet is a real-time collision detection and multi-physics simulation, for instance intended for use in games. In Terasology, we use it, for instance, for simulating gravity for player and object movements as well as for collisions between players and/or objects. This is an implementation of bullet wraps around native bullet using SWIG._ From bc00a453f2f38c8b6b9f0acaa93d763e4380501d Mon Sep 17 00:00:00 2001 From: jdrueckert Date: Wed, 15 May 2024 22:16:24 +0200 Subject: [PATCH 3/3] chore: apply review suggestions Co-authored-by: BenjaminAmos <24301287+BenjaminAmos@users.noreply.github.com> --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index afed105dd..159b83bad 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ _JNBullet is a version of [bullet](https://github.com/bulletphysics/bullet3) with extensions for direct interactions for voxel worlds, written for use with Terasology. Bullet is a real-time collision detection and multi-physics simulation, for instance intended for use in games. -In Terasology, we use it, for instance, for simulating gravity for player and object movements as well as for collisions between players and/or objects. -This is an implementation of bullet wraps around native bullet using SWIG._ +In Terasology we use it for simulating gravity for player and object movements as well as for collisions between players and/or objects. +This is an implementation of bullet wrapped around native bullet using SWIG._ ## Prerequisites