From 8bbf167e3ba74e7c98178be14f7397e281d78801 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Tue, 30 Apr 2024 19:14:30 -0400 Subject: [PATCH] freebsd: Include more version info and update We want to know the minor versions. We want to know the patch versions too, where possible. We get those either from the branch when it is the form `RELEASE-p`, or from the tag when its in the form `release/..`. --- pkgs/os-specific/bsd/freebsd/update.py | 22 +++++++- pkgs/os-specific/bsd/freebsd/versions.json | 59 +++++++++++++++------- 2 files changed, 61 insertions(+), 20 deletions(-) diff --git a/pkgs/os-specific/bsd/freebsd/update.py b/pkgs/os-specific/bsd/freebsd/update.py index cd20f67148fa..533a871a4b04 100755 --- a/pkgs/os-specific/bsd/freebsd/update.py +++ b/pkgs/os-specific/bsd/freebsd/update.py @@ -16,6 +16,7 @@ import typing import urllib.request _QUERY_VERSION_PATTERN = re.compile('^([A-Z]+)="(.+)"$') +_RELEASE_PATCH_PATTERN = re.compile('^RELEASE-p([0-9]+)$') BASE_DIR = os.path.dirname(os.path.abspath(__file__)) MIN_VERSION = packaging.version.Version("13.0.0") MAIN_BRANCH = "main" @@ -60,7 +61,16 @@ def query_version(repo: git.Repo) -> dict[str, typing.Any]: continue fields[m[1].lower()] = m[2] - fields["major"] = packaging.version.parse(fields["revision"]).major + parsed = packaging.version.parse(fields["revision"]) + fields["major"] = parsed.major + fields["minor"] = parsed.minor + + # Extract the patch number from `RELAESE-p`, which is used + # e.g. in the "releng" branches. + m = _RELEASE_PATCH_PATTERN.match(fields["branch"]) + if m is not None: + fields["patch"] = m[1] + return fields @@ -95,7 +105,7 @@ def handle_commit( "ref": ref_name, "refType": ref_type, "supported": ref_name in supported_refs, - "version": query_version(repo), + "version": version, } @@ -151,6 +161,14 @@ def main() -> None: result = handle_commit( repo, tag.commit, tag.name, "tag", supported_refs, old_versions ) + + # Hack in the patch version from parsing the tag, if we didn't + # get one from the "branch" field (from newvers). This is + # probably 0. + versionObj = result["version"] + if "patch" not in versionObj: + versionObj["patch"] = version.micro + versions[tag.name] = result for branch in repo.remote("origin").refs: diff --git a/pkgs/os-specific/bsd/freebsd/versions.json b/pkgs/os-specific/bsd/freebsd/versions.json index 736c4c3a3e3c..3f781b4eeaf2 100644 --- a/pkgs/os-specific/bsd/freebsd/versions.json +++ b/pkgs/os-specific/bsd/freebsd/versions.json @@ -1,14 +1,15 @@ { "main": { - "hash": "sha256-C5ucT9BK/eK8a9HNSDDi8S1uhpPmiqV22XEooxAqbPw=", + "hash": "sha256-3aUsD2yRqVvb12z2XPmhE5/u4d9bqyD2ZHH3xNmwYwU=", "ref": "main", "refType": "branch", - "rev": "125c4560bc70971b950d035cfcd2255b89984011", + "rev": "aa34b1d20e44141749ffdecf16908fc1e5db4db6", "supported": false, "version": { "branch": "CURRENT", "major": 15, - "reldate": "1500017", + "minor": 0, + "reldate": "1500018", "release": "15.0-CURRENT", "revision": "15.0", "type": "FreeBSD", @@ -24,6 +25,8 @@ "version": { "branch": "RELEASE", "major": 13, + "minor": 0, + "patch": 0, "reldate": "1300139", "release": "13.0-RELEASE", "revision": "13.0", @@ -40,6 +43,8 @@ "version": { "branch": "RELEASE", "major": 13, + "minor": 1, + "patch": 0, "reldate": "1301000", "release": "13.1-RELEASE", "revision": "13.1", @@ -56,6 +61,8 @@ "version": { "branch": "RELEASE", "major": 13, + "minor": 2, + "patch": 0, "reldate": "1302001", "release": "13.2-RELEASE", "revision": "13.2", @@ -72,6 +79,8 @@ "version": { "branch": "RELEASE", "major": 13, + "minor": 3, + "patch": 0, "reldate": "1303001", "release": "13.3-RELEASE", "revision": "13.3", @@ -88,6 +97,8 @@ "version": { "branch": "RELEASE", "major": 14, + "minor": 0, + "patch": 0, "reldate": "1400097", "release": "14.0-RELEASE", "revision": "14.0", @@ -104,6 +115,8 @@ "version": { "branch": "RELEASE-p13", "major": 13, + "minor": 0, + "patch": "13", "reldate": "1300139", "release": "13.0-RELEASE-p13", "revision": "13.0", @@ -120,6 +133,8 @@ "version": { "branch": "RELEASE-p9", "major": 13, + "minor": 1, + "patch": "9", "reldate": "1301000", "release": "13.1-RELEASE-p9", "revision": "13.1", @@ -136,6 +151,8 @@ "version": { "branch": "RELEASE-p11", "major": 13, + "minor": 2, + "patch": "11", "reldate": "1302001", "release": "13.2-RELEASE-p11", "revision": "13.2", @@ -144,19 +161,21 @@ } }, "releng/13.3": { - "hash": "sha256-huzUiMZHfyK/mgLD3hW+DaSGgAaTUIuM51xDp+IE3qE=", + "hash": "sha256-g3i9q9XihesdfQxGy3oC7IMGtbWaLNwFlNzbdvS/4ng=", "ref": "releng/13.3", "refType": "branch", - "rev": "7a0d63c9093222938f26cd63ff742e555168de77", + "rev": "be4f1894ef399f421bab451e8cf8557e27e5a948", "supported": true, "version": { - "branch": "RELEASE-p1", + "branch": "RELEASE-p2", "major": 13, + "minor": 3, + "patch": "2", "reldate": "1303001", - "release": "13.3-RELEASE-p1", + "release": "13.3-RELEASE-p2", "revision": "13.3", "type": "FreeBSD", - "version": "FreeBSD 13.3-RELEASE-p1" + "version": "FreeBSD 13.3-RELEASE-p2" } }, "releng/14.0": { @@ -168,6 +187,8 @@ "version": { "branch": "RELEASE-p6", "major": 14, + "minor": 0, + "patch": "6", "reldate": "1400097", "release": "14.0-RELEASE-p6", "revision": "14.0", @@ -176,15 +197,16 @@ } }, "stable/13": { - "hash": "sha256-XateLKKs2A/HCP9Lx/nBm1cybB3otrbeXQvyCL40S0M=", + "hash": "sha256-ItC8haDdxMSZt1thpCrn8p0xxvs7Uqh/uNo1OwMalj8=", "ref": "stable/13", "refType": "branch", - "rev": "e0a58ef24a3baf5ed4cc09a798b9fe2d85408052", + "rev": "825cb4c850f2b97cfd1b24ed421d7938bf37eee7", "supported": true, "version": { "branch": "STABLE", "major": 13, - "reldate": "1303502", + "minor": 3, + "reldate": "1303503", "release": "13.3-STABLE", "revision": "13.3", "type": "FreeBSD", @@ -192,19 +214,20 @@ } }, "stable/14": { - "hash": "sha256-tIKnK/SYBDk9UnE5AfhjeDpqHnzspYbor0678ye/mrs=", + "hash": "sha256-iAj75IXJi4Oium6BqFvsyQipDP2crBZIGg0Dac8Zf1g=", "ref": "stable/14", "refType": "branch", - "rev": "ab872ab0bf195e872ed8d955aab3b2a537a230cd", + "rev": "a3b8266f5420601e231bc08c5402d9a4929fbdc0", "supported": true, "version": { - "branch": "STABLE", + "branch": "PRERELEASE", "major": 14, - "reldate": "1400510", - "release": "14.0-STABLE", - "revision": "14.0", + "minor": 1, + "reldate": "1400511", + "release": "14.1-PRERELEASE", + "revision": "14.1", "type": "FreeBSD", - "version": "FreeBSD 14.0-STABLE" + "version": "FreeBSD 14.1-PRERELEASE" } } }