Releases - luisbozz/Xenvious GitHub Wiki
Releases are made by release-please
from the Conventional Commits on main. Nobody edits the version or the
changelog by hand.
- Commits land on
main(feat(...),fix(...), ...). release-please keeps a pull request "chore(main): release X.Y.Z" open that collects them, updatesCHANGELOG.mdand the version inXenvious/Properties/AssemblyInfo.cs(the lines marked// x-release-please-version). - The version is
1.<GTA>.<n>: the middle number follows the GTA V update (73 for GTA 1.73), the last one counts Xenvious releases for it. So every release,featorfix, only raises the last number ("versioning": "always-bump-patch"inrelease-please-config.json).docs,refactor,choreand the like do not appear in the changelog, so the subject line of afeatorfixcommit is what users read. - Merging that pull request tags
vX.Y.Zand creates the GitHub release with the same notes. The second job of.github/workflows/release.ymlbuilds that tag and attachesXenvious.exeandXenvious.exe.sha256. - Xenvious finds the release on its next start (
Helper Classes/Updater.cs), shows the notes, downloads the exe, checks it against the SHA256 and swaps itself. The embeddedCHANGELOG.mdprovides "New in X.Y.Z" afterwards.
.github/workflows/nightly.yml builds main every night at 01:00 UTC and on
demand (Actions → Nightly → "Run workflow", or gh workflow run nightly.yml).
The scheduled run skips the build when main has not moved since the last
nightly.
- Each run replaces one pre-release with the tag
nightly. Its title carries the version, its notes thefeat/fixsubjects since the last release tag. It has the sameXenvious.exe,Xenvious.exe.sha256and build provenance as a release. - The version is the release version plus the run number as a fourth part,
1.73.3.12. That is newer than release 1.73.3 and older than the next release 1.73.4, so a nightly player moves on to that release by itself. The fourth part exists only in the built exe;main, the changelog and release-please do not change. - Players only get it with Settings → Updates → "Get nightly builds" on.
Pre-releases never count as
releases/latest, so everyone else keeps getting releases only. Turning the option off on a nightly build offers to go back to the latest release.
The manifest (.release-please-manifest.json) starts at 2.71.11, the last
version before the public repository. To make the first public release
1.73.0, the commit that starts it carries this footer:
Release-As: 1.73.0
Xenvious only offers a release whose version is higher than its own
(Helper Classes/Updater.cs), so versions must only go up. Exes numbered 2.x
or 3.73.0 from before this scheme never offer 1.73.x; replace them by hand
once.
release-please opens pull requests with the workflow token, which GitHub refuses unless Settings → Actions → General → "Allow GitHub Actions to create and approve pull requests" is on.
The first Xenvious release for a new GTA update raises the middle number. Put the version in the footer of the commit that adds the new offsets, for example for GTA 1.74:
Release-As: 1.74.0
-
./xupdate.sh <build>and./xupdate.sh enhanced-<build>in ysc-global-updater refreshOfflineDataandGenerated/. - Build and test in the game.
- Push
fix(offsets): support GTA build <build>. - Merge the release pull request. Users get the update on their next start.