mirror of
https://github.com/0xrsydn/nix-hermes-agent.git
synced 2026-11-07 11:15:35 +00:00
fix: avoid pinVersion regression from upstream placeholder version
Upstream main declares [project] version 0.0.0 between releases, which made the nightly pin regress from 0.21.4 to 0.0.0. Fall back to the latest release tag's version when the HEAD version is the placeholder, and correct the current candidate's pinVersion to match. Factor the pyproject version lookup into update-common.sh so both channels share one implementation.
This commit is contained in:
parent
d265e22328
commit
5c79db5b06
4 changed files with 27 additions and 11 deletions
|
|
@ -28,11 +28,23 @@ if [[ "$current_rev" == "$head_sha" ]]; then
|
|||
exit 0
|
||||
fi
|
||||
|
||||
upstream_version=$(
|
||||
gh api -H "Accept: application/vnd.github.raw+json" \
|
||||
"/repos/NousResearch/hermes-agent/contents/pyproject.toml?ref=${head_sha}" |
|
||||
python3 -c 'import sys, tomllib; print(tomllib.load(sys.stdin.buffer)["project"]["version"])'
|
||||
)
|
||||
upstream_version=$(upstream_pyproject_version "$head_sha")
|
||||
|
||||
# Upstream resets the [project] version to a placeholder (0.0.0) on main between
|
||||
# releases. Pinning that verbatim would regress pinVersion from a real release to
|
||||
# 0.0.0; update-pins.sh aborts the stable channel on such a downgrade, but the
|
||||
# nightly tracks unreleased HEAD, so fall back to the latest release's version.
|
||||
if [[ "$upstream_version" == "0.0.0" ]]; then
|
||||
release_tag=$(gh api /repos/NousResearch/hermes-agent/releases/latest --jq '.tag_name // empty' || true)
|
||||
if [[ -n "$release_tag" ]]; then
|
||||
release_version=$(upstream_pyproject_version "$release_tag" || true)
|
||||
if [[ -n "$release_version" && "$release_version" != "0.0.0" ]]; then
|
||||
log "Upstream ${head_sha:0:12} declares a placeholder version; using ${release_tag} version ${release_version}"
|
||||
upstream_version="$release_version"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
python3 - "$upstream_version" <<'PY' || die "upstream pyproject contains an invalid version"
|
||||
import re, sys
|
||||
raise SystemExit(0 if re.fullmatch(r"\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?", sys.argv[1]) else 1)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue