Orbital is currently developed on Gitlab (for historic reasons), and mirrored to Github.
This makes it difficult for us to accept contributions on Github. Please reach out on Slack if you'd like to contribute.
Orbital used to be called Vyne, so you'll see that in many places throughout the code. We're progressively moving this from Vyne to Orbital.
Commit messages follow the Conventional Commits specification that allows them to be readable both by humans and machines easily.
The available types and scopes have been listed out in .commitlintrc.json and a plugin called Commitlint Conventional Commit for IntelliJ IDEA adds a nice UI and checks the usage of the proper types and scopes when committing.
This repo uses a tag-driven release flow. You set the Maven project version, create a Git tag with the same version, and (optionally) push. Our CI will detect the tag and publish artifacts.
- Clean working tree (no uncommitted changes)
- Java + Maven available locally
- Ability to push to the default remote (
origin) - Versioning rule: do not prefix versions with
v(use1.2.3, notv1.2.3)
Use the tag-release helper script at the repo root:
./tag-release [-f] [-p] <release-version>
- Verifies your working tree is clean.
- Ensures the tag
<release-version>doesn’t already exist (unless-f). - Sets
project.versionin all POMs to<release-version>viamvn versions:set. - Runs the Maven Enforcer rule
requireReleaseDepsto fail if any dependency is a-SNAPSHOT. - Commits the version bump.
- Creates an annotated git tag
<release-version>(or moves it if-f). - If
-pis used, pushes the commit and tag toorigin.
-
Local tag only (no push yet):
./tag-release 1.4.0 -
Create and push:
./tag-release -p 1.4.0 -
Move an existing tag to the new commit and push (use sparingly):
./tag-release -f -p 1.4.0
Pushing a tag triggers the pipeline. On tag pipelines, CI will:
- Build with the
releaseprofile - Publish Maven artifacts (and Docker images where configured)
If CI fails, do not delete and recreate tags casually—prefer fixing the issue and re-running. If a tag must be moved, use -f and communicate with the team.
-
Tag must exactly match the Maven
project.version(novprefix). -
The script enforces:
- No
vprefix on the version you provide. - No
-SNAPSHOTdependencies after the version bump.
- No
-
“Working tree has uncommitted changes” Commit or stash changes before running the script.
-
“Tag already exists” Use a new version or run with
-f(only if you are absolutely sure). -
Enforcer fails with SNAPSHOT deps Update dependencies to released versions, or move SNAPSHOT usage behind non-release profiles. Re-run the script.
-
CI didn’t publish Confirm the tag was pushed (
git push origin <tag>). Check pipeline logs for failures.
If you created a tag/commit locally but haven’t pushed:
git tag -d 1.4.0
git reset --hard HEAD~1
If you already pushed (and truly need to undo), coordinate with the team:
git push --delete origin 1.4.0
# or, if moving a tag:
git tag -fa 1.4.0 -m "Move tag due to fix"
git push --force-with-lease origin refs/tags/1.4.0
Questions or edge cases? Ask in the team channel before force-moving tags.
What it does Verifies your working tree is clean.
Ensures the tag doesn’t already exist (unless -f).
Sets project.version in all POMs to via mvn versions:set.
Runs the Maven Enforcer rule requireReleaseDeps to fail if any dependency is a -SNAPSHOT.
Commits the version bump.
Creates an annotated git tag (or moves it if -f).
If -p is used, pushes the commit and tag to origin.
# Will create
./tag-release 0.70.0