You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If the Bash tool is unavailable or the command fails, fall back to Step 2.
49
+
50
+
### Step 2: WebSearch Fallback
23
51
24
-
### Step 2: Search and Validate the Version
52
+
Use WebSearch only when direct API/CLI lookup is unavailable or fails. Note that search results are often stale by days or weeks — prefer the direct lookup whenever possible.
2.**Reject** any version that contains: `-alpha`, `-beta`, `-rc`, `-pre`, `-dev`, or `.dev`.
30
-
3. If the latest tag is a pre-release, use the most recent **stable** tag instead.
31
-
4. Confirm the version is a proper release (not a draft or yanked).
62
+
### Step 3: Validate the Version
32
63
33
-
### Step 3: Verify the Version String Format
64
+
After obtaining a version string via either method:
65
+
66
+
1.**Reject** any version that contains: `-alpha`, `-beta`, `-rc`, `-pre`, `-dev`, or `.dev`.
67
+
2. If the latest tag is a pre-release, use the most recent **stable** tag instead.
68
+
3. Confirm the version is a proper release (not a draft or yanked).
69
+
70
+
For **npm packages**, the `version` field returned by `npm view` reflects the `latest` dist-tag, which is always the current stable release. No additional filtering is needed unless the package is known to publish preview builds to `latest`.
71
+
72
+
### Step 4: Verify the Version String Format
34
73
35
74
Match the format already used in the Dockerfile:
36
75
@@ -42,27 +81,27 @@ Match the format already used in the Dockerfile:
42
81
43
82
If the Dockerfile currently uses `v`-prefixed, return `v`-prefixed. Never change the format.
44
83
45
-
### Step 4: Handle Special Cases
84
+
Note: the GitHub API returns tags exactly as published (e.g. `v1.26.3`). Use the tag as-is if it matches the Dockerfile's current format.
46
85
47
-
**`gopls` and `goimports`** — installed with `@latest` intentionally.
48
-
Return: `SKIP — intentionally unpinned`
86
+
### Step 5: Handle Special Cases
49
87
50
-
**`ARCHGATE_VERSION` + `ARCHGATE_GIT_SHA`** — these two must be updated together.
51
-
After finding the new `ARCHGATE_VERSION`, run:
88
+
**`gopls` and `goimports`** — installed with `@latest` intentionally.
89
+
Return: `SKIP — intentionally unpinned`
52
90
91
+
**`ARCHGATE_VERSION` + `ARCHGATE_GIT_SHA`** — these two must be updated together.
92
+
After finding the new `ARCHGATE_VERSION` via `npm view archgate version`, retrieve the SHA:
Return both the version string and the corresponding SHA.
58
97
59
98
**`DELVE_VERSION`** — must match the Go major version. When called for Delve, also receive the target Go version as context. The Delve release tag must be `v<go-major>.<x>.<y>` — verify compatibility on the [Delve compatibility table](https://github.com/go-delve/delve/tree/master/Documentation/compatibility) if the Go major version changed.
60
99
61
-
**`DEBIAN_VERSION`** — for a dated Debian snapshot, search for the latest snapshot date available for the `trixie` suite at `https://snapshot.debian.org/`. Return in the format `trixie-YYYYMMDD`.
100
+
**`DEBIAN_VERSION`** — query `snapshot.debian.org` directly (see Step 1). Return in the format `trixie-YYYYMMDD` using the latest available date.
62
101
63
102
**`openjdk-25-jdk-headless` (apt package)** — the package name encodes the major version. Do not change the major version number unless a newer JDK major is confirmed available in the Debian `trixie` repo. Return the package name as-is if no major version change is needed.
64
103
65
-
### Step 5: Return the Result
104
+
### Step 6: Return the Result
66
105
67
106
Return a single structured block:
68
107
@@ -72,6 +111,7 @@ Variable: <ENV var name in Dockerfile>
72
111
Current: <current version string>
73
112
Latest Stable: <new version string>
74
113
Source URL: <the specific page or release URL you used>
114
+
Lookup Method: <direct-api | websearch>
75
115
Format: <v-prefixed | bare | date>
76
116
Change Level: <patch | minor | major | none>
77
117
Notes: <any caveats, coordination requirements, or breaking change warnings>
@@ -81,8 +121,12 @@ If the current version is already the latest, set `Change Level: none` and expla
81
121
82
122
## Common Issues
83
123
84
-
**Version not found via WebSearch**: Fall back to fetching the GitHub releases page or npm registry directly with WebFetch. Prefer the official release page over aggregator sites.
124
+
**WebSearch returns a version older than the currently pinned one**: This is a known issue — search indexes lag behind actual releases. Always verify using the direct API/CLI method. Do not downgrade a version based solely on stale search results.
125
+
126
+
**GitHub API rate limiting**: Unauthenticated requests are limited to 60/hour. If rate-limited, fall back to WebSearch. If a `GITHUB_TOKEN` environment variable is set, pass it via `-H "Authorization: token $GITHUB_TOKEN"`.
85
127
86
128
**Ambiguous latest**: Some projects maintain multiple stable branches (e.g. LTS vs. current). Default to the **current stable** branch unless the Dockerfile is already on an LTS line — in that case stay on the same LTS branch.
87
129
88
130
**Version behind a git tag vs. a semver release**: For `go install` packages, prefer the semver tag published on pkg.go.dev over raw git tags, as the former confirms the module is properly versioned.
131
+
132
+
**`npm view` returns an unexpected older version**: The `latest` dist-tag can occasionally be set to a lower version number than others published. If the currently pinned version is higher than what `npm view` returns, investigate before downgrading — the maintainer may have intentionally rolled back `latest`.
0 commit comments