chore(deps): bump toolchain versions and fix update-deps opencode fetch - #16
Conversation
Bump pinned toolchain versions (Go 1.26.5, Python build 20260728, opencode-ai 1.18.9, gh 2.96.0, fzf 0.74.1, ripgrep 15.2.0, jira-mcp-server 0.2.1, gopls 0.23.0) and sync the stale fallback defaults in scripts/build.sh to match. Fix update-deps: the opencode-ai version was previously fetched via 'npm view', which silently returned an empty string and wiped OPENCODE_VERSION when npm was not installed. Replace it with a curl+jq fetch against the npm registry API, consistent with every other dependency fetch in this target. Also add a fail-fast check after all fetches: if any of the 11 version lookups comes back empty, update-deps now aborts with a clear error instead of writing a blank value into the Makefile. Jira: ACM-38965 Signed-off-by: Joshua Packer <jpacker@redhat.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: jnpacker The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
📝 WalkthroughWalkthroughDependency defaults were updated in the Makefile and build script. The ChangesDependency refresh
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 10 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (10 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@Makefile`:
- Around line 114-132: The Makefile version-fetch guards accept the literal null
returned by jq, allowing invalid values to be written. Update all LATEST_* jq
lookups, especially GitHub release queries, to emit an empty value for missing
or null version/tag fields and use a lookup strategy that can find stable
releases beyond the first page; ensure validation rejects null and other
non-version values before any Makefile rewrite occurs.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Enterprise
Run ID: ad6dabb7-0d3d-4bcc-af5a-ab2493f0e74c
📒 Files selected for processing (2)
Makefilescripts/build.sh
jq -r returns the literal string "null" for a missing/null .version or .tag_name field (e.g. when a GitHub release query's first page has no stable release). The existing $(strip ...) fail-fast guards treated that literal "null" as a valid, non-empty value, so update-deps could write "?= null" into the Makefile instead of aborting. Add "// empty" to every LATEST_* jq filter so a missing/null field resolves to an empty string, which the existing fail-fast validation then correctly catches and aborts on. Addresses CodeRabbit review comment on PR stolostron#16. Jira: ACM-38965 Signed-off-by: Joshua Packer <jpacker@redhat.com>
|
Addressed the CodeRabbit review comment ( Fix ( Verified:
|
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@Makefile`:
- Line 112: Update the Makefile’s LATEST_BUILD lookup to retrieve the latest
stable non-draft release without restricting the API response to only five
releases; use the releases/latest endpoint if it provides the required tag, or
paginate/filter appropriately before selecting a stable release. Preserve the
existing empty-result handling and tag extraction behavior.
- Line 120: Update the LATEST_GOPLS release selector to exclude GitHub draft and
prerelease releases before choosing the first gopls tag, ensuring update-deps
pins only published stable versions. Preserve the existing tag filtering and
version normalization behavior.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Enterprise
Run ID: 97147703-dfc8-4f80-a008-7be6401d93fb
📒 Files selected for processing (1)
Makefile
What changed
Makefile: Go 1.26.5, Python build 20260728, opencode-ai 1.18.9, gh 2.96.0, fzf 0.74.1, ripgrep 15.2.0, jira-mcp-server 0.2.1, gopls 0.23.0scripts/build.shto match the Makefile valuesupdate-depsroot cause: replacednpm view opencode-ai version(required a localnpmbinary, silently returned empty and wipedOPENCODE_VERSIONwhen missing) with acurl+jqfetch against the npm registry API, matching the pattern used by every other dependencyupdate-depsnow aborts with a clear error and does not modify the MakefileTesting
make update-depsfor real — all 11 versions resolved correctly, includingopencode: 1.18.9update-depsaborts withFailed to fetch latest opencode-ai version - aborting without modifying Makefileand leaves the Makefile byte-for-byte unchangedmake build IMAGE_TAG=0.3.8andmake push— image built and pushed successfullymake image-build "1.1.12",make image-push,make deployall successful)Known gaps / follow-ups
YQ_VERSIONis still missing a top-levelARGdefault incontainerfiles/Containerfile.agents(only declared inside thebase-toolsstage) — tracked separately, not fixed in this PRbash tests/test_lsp_version_pinning.shshould be run before merge per repo conventionsJira: ACM-38965
Summary by CodeRabbit