build: automate version resolution in build.zig

Removes manual git flags from CI and build scripts.
Versioning is now automatically derived from git and build.zig.zon.

With this PR, we follow https://semver.org/
Logic:

1. Read the version from build.zig.zon
2. If it doesn't have a `.pre` field (i.e. dev/alpha/beta) it will use that
3. Otherwise it will get the info from git: hash and number of commits since last `.0` version
4. Then build the version: `0.3.0-dev.1493+0896edc3`

Note that, since the latest stable version is `0.2.6`.
The convention is to use `0.3.0-dev`, as:
- `0.2.6` < `0.3.0.dev` < `0.3.0`
This commit is contained in:
Adrià Arrufat
2026-03-19 12:55:10 +09:00
parent edd0c5c83f
commit 2dbd32d120
11 changed files with 93 additions and 51 deletions

View File

@@ -145,7 +145,7 @@ const LightPandaEvent = struct {
try writer.write(builtin.cpu.arch);
try writer.objectField("version");
try writer.write(build_config.git_version orelse build_config.git_commit);
try writer.write(build_config.version);
try writer.objectField("event");
try writer.write(@tagName(std.meta.activeTag(self.event)));