Skip to content

Commit 42a4e4a

Browse files
aeneasrclaude
andcommitted
fix(scripts): resolve version from release-please manifest before GitHub API
- Read version from .release-please-manifest.json as primary source (always available, avoids GitHub API rate limits) - Fall back to GitHub API only if manifest is missing or unparseable - Remove goreleaser dist/ path from binary search candidates - Add tests for manifest-based version resolution - Add include-v-in-tag to release-please-config.json Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent a144e0d commit 42a4e4a

4 files changed

Lines changed: 50 additions & 3 deletions

File tree

release-please-config.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
"release-type": "simple",
44
"bump-minor-pre-major": true,
55
"bump-patch-for-minor-pre-major": true,
6+
"include-v-in-tag": true,
67
"packages": {
78
".": {}
89
}

scripts/run.bat

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,20 @@ if not exist "%BINARY%" (
3737
set "VERSION=%LUMEN_VERSION%"
3838
)
3939

40+
if "!VERSION!"=="" (
41+
set "MANIFEST=%PLUGIN_ROOT%\.release-please-manifest.json"
42+
if exist "!MANIFEST!" (
43+
for /f "tokens=*" %%i in ('findstr /r "\"[.]\"" "!MANIFEST!"') do (
44+
for /f "tokens=2 delims=:" %%j in ("%%i") do (
45+
set "VERSION=v%%~j"
46+
set "VERSION=!VERSION: =!"
47+
set "VERSION=!VERSION:,=!"
48+
set "VERSION=!VERSION:"=!"
49+
)
50+
)
51+
)
52+
)
53+
4054
if "!VERSION!"=="" (
4155
echo Error: could not determine latest lumen version >&2
4256
exit /b 1

scripts/run.sh

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@ export LUMEN_EMBED_MODEL="${LUMEN_EMBED_MODEL:-ordis/jina-embeddings-v2-base-cod
2121
BINARY=""
2222
for candidate in \
2323
"${PLUGIN_ROOT}/bin/lumen" \
24-
"${PLUGIN_ROOT}/bin/lumen-${OS}-${ARCH}" \
25-
"${PLUGIN_ROOT}/dist/lumen_${OS}_${ARCH}"*/lumen; do
24+
"${PLUGIN_ROOT}/bin/lumen-${OS}-${ARCH}"; do
2625
if [ -x "$candidate" ]; then
2726
BINARY="$candidate"
2827
break
@@ -36,7 +35,15 @@ if [ -z "$BINARY" ]; then
3635
REPO="ory/lumen"
3736

3837
if [ "$VERSION" = "latest" ]; then
39-
VERSION="$(curl -sfL "https://api.github.com/repos/${REPO}/releases/latest" | grep '"tag_name"' | sed 's/.*"tag_name": *"\([^"]*\)".*/\1/')"
38+
# Try manifest first (always available, no rate limits)
39+
MANIFEST="${PLUGIN_ROOT}/.release-please-manifest.json"
40+
if [ -f "$MANIFEST" ]; then
41+
VERSION="v$(grep '"[.]"' "$MANIFEST" | sed 's/.*"[^"]*"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/')"
42+
fi
43+
# Fall back to GitHub API if manifest didn't give us a version
44+
if [ -z "$VERSION" ]; then
45+
VERSION="$(curl -sfL "https://api.github.com/repos/${REPO}/releases/latest" 2>/dev/null | grep '"tag_name"' | sed 's/.*"tag_name": *"\([^"]*\)".*/\1/' || true)"
46+
fi
4047
fi
4148

4249
if [ -z "$VERSION" ]; then

scripts/test_run.sh

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,31 @@ done
134134
assert_eq "prefers bin/lumen (dev build) over downloaded binary" \
135135
"${BIN_DIR}/lumen" "$FOUND"
136136

137+
echo ""
138+
echo "=== version resolution tests ==="
139+
TMP_MANIFEST_DIR="$(mktemp -d)"
140+
trap 'rm -rf "$TMP_MANIFEST_DIR" "$TMP_DIR"' EXIT
141+
142+
MANIFEST="${TMP_MANIFEST_DIR}/.release-please-manifest.json"
143+
printf '{\n ".": "1.2.3"\n}\n' > "$MANIFEST"
144+
145+
resolved_version_from_manifest() {
146+
local manifest="$1"
147+
local ver=""
148+
if [ -f "$manifest" ]; then
149+
ver="v$(grep '"[.]"' "$manifest" | sed 's/.*"[^"]*"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/')"
150+
fi
151+
echo "$ver"
152+
}
153+
154+
assert_eq "manifest version resolution" \
155+
"v1.2.3" \
156+
"$(resolved_version_from_manifest "$MANIFEST")"
157+
158+
assert_eq "missing manifest returns empty" \
159+
"" \
160+
"$(resolved_version_from_manifest "/nonexistent/.release-please-manifest.json")"
161+
137162
echo ""
138163
echo "=== summary ==="
139164
echo " passed: $PASS"

0 commit comments

Comments
 (0)