Skip to content

Versions and Versioning

Axionize edited this page Apr 19, 2025 · 5 revisions

GrimAC Versioning Guide

This document outlines the versioning system used for GrimAC artifacts.

Version Format

GrimAC uses the following versioning format:

grimac-{platform}[-{branch}]-{version}-{commit}[+{modifiers}]

Where:

  • {platform}: The platform implementation (e.g., bukkit, fabric)
  • {branch}: The source branch (omitted for main branch)
  • {version}: The semantic version number (e.g., 2.3.71)
  • {commit}: The abbreviated commit hash (e.g., a4f8b21)
  • {modifiers}: Optional build settings/flags joined with - (e.g., lite-no_relocate)

Examples

Release Builds

  • grimac-bukkit-2.3.71
  • grimac-fabric-2.3.71

Standard Preview Builds

  • grimac-bukkit-2.3.71-a4f8b21
  • grimac-fabric-2.3.71-a4f8b21

Development Branch Builds

  • grimac-bukkit-develop-2.3.71-a4f8b21
  • grimac-fabric-feature_xyz-2.3.71-a4f8b21

Builds with Modifiers

  • grimac-bukkit-2.3.71-a4f8b21+lite
  • grimac-fabric-develop-2.3.71-a4f8b21+lite-no_relocate

Modifier Definitions

The following modifiers indicate non-default build configurations:

  • lite: Indicates the build was done with the shadePE option enabled.
    • This results in a smaller or "lightweight" build, typically with some features removed or shaded.
  • no_relocate: Indicates the build was done with the relocate option disabled.
    • This disables package relocation in the resulting JAR.

These modifiers are only included when the build deviates from the default configuration:

  • Default: shadePE = false, relocate = true → No modifier
  • Non-default: shadePE = truelite
  • Non-default: relocate = falseno_relocate
  • Both non-default → lite-no_relocate

Build Options Mapping

Modifier Build Option Flag Description
lite shadePE = true Enables shaded PE classes
no_relocate relocate = false Disables relocation in shaded JAR
(no modifier) shadePE = false, relocate = true Default production build settings

User-Facing Versions

For user-facing contexts such as usage of the /pl version grim command on Bukkit, the grimac-{platform} at the start is removed.

Notes

  • The main branch does not include a branch identifier
  • Modifiers are optional and only included when builds have special characteristics
  • Multiple modifiers are separated by - within the modifiers section
  • The + symbol is used to clearly separate the core version information from additional metadata
Clone this wiki locally