Skip to content

Releases and Versioning

github-actions[bot] edited this page Aug 11, 2026 · 3 revisions

Releases and Versioning

VGui uses Git tags and GitHub Releases. Release tags use vX.Y.Z form.

Dynamic links

Documentation links to the stable latest endpoint:

  • latest release page: https://github.com/AgentNoobff/VGui/releases/latest
  • latest runtime jar: https://github.com/AgentNoobff/VGui/releases/latest/download/vgui.jar

No release number is embedded in those URLs.

The README release badge is generated by Shields from GitHub release metadata.

Project version

The POM uses Maven's CI-friendly ${revision} property. Development on main uses a snapshot revision. Release automation overrides the revision from the pushed tag without rewriting source files.

The same project version is filtered into velocity-plugin.json and written to the jar manifest.

Release workflow

When a v tag is pushed, the Release workflow:

  1. validates the tag format;
  2. strips the leading v for the Maven project version;
  3. runs a clean Java 25 verification build;
  4. copies artifacts to stable asset names;
  5. creates a GitHub Release with generated notes.

Published assets are:

  • vgui.jar
  • vgui-sources.jar
  • vgui-javadoc.jar

Creating a release

  1. Confirm main is green.
  2. Confirm the Wiki and Javadocs describe the intended behavior.
  3. Perform the live compatibility matrix required by the change.
  4. Choose the next semantic version.
  5. Create and push the signed or annotated tag according to maintainer policy.
  6. Watch the Release workflow finish.
  7. Download vgui.jar from the release and smoke-test it on a clean proxy.
  8. Confirm the latest-release links resolve to the new asset.

Semantic versioning guidance

  • Patch: backward-compatible fixes and documentation corrections.
  • Minor: backward-compatible API additions and features.
  • Major: incompatible public API, Java baseline, deployment, or behavior changes.

Protocol compatibility can make a seemingly small change operationally significant. Release notes should call out client, Velocity, PacketEvents, and backend impact even when the semantic version change is minor.

JitPack coordinates

JitPack consumers use com.github.AgentNoobff:VGUI.

  • main-SNAPSHOT follows development main.
  • vX.Y.Z selects an immutable release tag.

The first request for a new tag may trigger a JitPack build. A release is not considered dependency-ready until that build succeeds.

Reproducibility

The Maven Wrapper pins Maven. The POM pins stable compatible dependencies and plugins. Release tags are immutable. Consumers should pin a release tag for production rather than depending on main-SNAPSHOT.

Clone this wiki locally