From 02438aabe3a04ac8ca2a2e0b2501ba18885652e3 Mon Sep 17 00:00:00 2001 From: Jay Petacat Date: Wed, 30 Dec 2020 20:57:50 -0600 Subject: [PATCH] Remove 'g' prefix from commit hash in Zig semver --- CMakeLists.txt | 2 +- build.zig | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c74ba7fca8..291a2f7839 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,7 +46,7 @@ if("${ZIG_VERSION}" STREQUAL "") if(NOT GIT_TAG VERSION_EQUAL ZIG_VERSION) message(SEND_ERROR "Zig version (${ZIG_VERSION}) does not match Git tag (${GIT_TAG}).") endif() - elseif(GIT_DESCRIBE MATCHES "^v?([0-9]+\\.[0-9]+\\.[0-9]+)-([0-9]+)-(.+)$") + elseif(GIT_DESCRIBE MATCHES "^v?([0-9]+\\.[0-9]+\\.[0-9]+)-([0-9]+)-g(.+)$") # Untagged pre-release. The Zig version is updated to include the number of commits # since the last tagged version and the commit hash. The version is formatted in # accordance with the https://semver.org specification. diff --git a/build.zig b/build.zig index 197dd0bbed..fe588ea2cb 100644 --- a/build.zig +++ b/build.zig @@ -256,11 +256,17 @@ pub fn build(b: *Builder) !void { std.process.exit(1); } + // Check that the commit hash is prefixed with a 'g' (a Git convention). + if (commit_id.len < 1 or commit_id[0] != 'g') { + std.debug.print("Unexpected `git describe` output: {}\n", .{git_describe}); + break :v version_string; + } + // The version is reformatted in accordance with the https://semver.org specification. - break :v b.fmt("{}-dev.{}+{}", .{ version_string, commit_height, commit_id }); + break :v b.fmt("{}-dev.{}+{}", .{ version_string, commit_height, commit_id[1..] }); }, else => { - std.debug.print("Failed to parse `git describe` output: {}\n", .{git_describe}); + std.debug.print("Unexpected `git describe` output: {}\n", .{git_describe}); break :v version_string; }, }