From e881685d4e39dba7f231b2024a64973e9c029f19 Mon Sep 17 00:00:00 2001 From: magges Date: Mon, 6 Jul 2026 00:01:01 +0200 Subject: [PATCH] Use monotonic Mesa upstream versioning --- README.md | 1 + scripts/build-mesa-opt.sh | 5 +++-- scripts/generate-release-notes.sh | 7 ++++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 71862be..2fea8a0 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,7 @@ System-Mesa genutzt werden kann. - Installationspfad: `/opt/mesa-git` - Wrapper: `/usr/bin/mesa-git-env` - Ausgabe: `mesa-git__amd64.deb` +- Versionsschema: `+r.-` ## Build-Profil diff --git a/scripts/build-mesa-opt.sh b/scripts/build-mesa-opt.sh index 42d8801..fbbc5c1 100644 --- a/scripts/build-mesa-opt.sh +++ b/scripts/build-mesa-opt.sh @@ -83,9 +83,9 @@ detect_upstream_version() { GIT_SHA=$(git -C "${SRC_DIR}" rev-parse --short=12 HEAD) GIT_SHA_FULL=$(git -C "${SRC_DIR}" rev-parse HEAD) +UPSTREAM_COMMIT_COUNT=$(git -C "${SRC_DIR}" rev-list --count HEAD) UPSTREAM_VERSION="${PACKAGE_VERSION_PREFIX:-$(detect_upstream_version "${SRC_DIR}")}" -UPSTREAM_SERIES="$(printf '%s' "${UPSTREAM_VERSION}" | sed -E 's/^([0-9]+\.[0-9]+).*/\1/')" -PACKAGE_VERSION="${UPSTREAM_SERIES}+git${GIT_SHA}-${PACKAGE_RELEASE}" +PACKAGE_VERSION="${UPSTREAM_VERSION}+r${UPSTREAM_COMMIT_COUNT}.${GIT_SHA}-${PACKAGE_RELEASE}" OUTPUT_DEB="${DIST_DIR}/${PACKAGE_NAME}_${PACKAGE_VERSION}_${PACKAGE_ARCH}.deb" meson setup "${BUILD_DIR}" "${SRC_DIR}" \ @@ -157,6 +157,7 @@ PACKAGE_NAME=${PACKAGE_NAME} PACKAGE_VERSION=${PACKAGE_VERSION} PACKAGE_FILE=$(basename "${OUTPUT_DEB}") PACKAGE_ARCH=${PACKAGE_ARCH} +UPSTREAM_COMMIT_COUNT=${UPSTREAM_COMMIT_COUNT} APT_SUITE=${APT_SUITE:-stable} APT_COMPONENT=${APT_COMPONENT:-main} APT_PUBLIC_BASE_URL=${APT_PUBLIC_BASE_URL:-} diff --git a/scripts/generate-release-notes.sh b/scripts/generate-release-notes.sh index ce80a3f..e7c4035 100644 --- a/scripts/generate-release-notes.sh +++ b/scripts/generate-release-notes.sh @@ -51,13 +51,14 @@ import sys releases = json.loads(sys.argv[1]) current_tag = sys.argv[2] package_name = sys.argv[3] -pattern = re.compile(rf"^{re.escape(package_name)}-.*\+git([0-9a-f]{{12}})-") +tag_prefix = f"{package_name}-" +pattern = re.compile(r"([0-9a-f]{7,40})-\d+$") for release in releases: tag = release.get("tag_name", "") - if tag == current_tag: + if tag == current_tag or not tag.startswith(tag_prefix): continue - match = pattern.match(tag) + match = pattern.search(tag) if match: print(match.group(1)) print(release.get("target_commitish", ""))