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<patch>`, or from
the tag when its in the form `release/<major>.<minor>.<patch>`.
This commit is contained in:
John Ericson 2024-04-30 19:14:30 -04:00
parent 944b1056a6
commit 8bbf167e3b
2 changed files with 61 additions and 20 deletions

View File

@ -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<patch>`, 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:

View File

@ -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"
}
}
}