Skip to content

Conversation

@o-l-a-v
Copy link
Contributor

@o-l-a-v o-l-a-v commented Oct 19, 2025

Fixed checkver

Non-stable releases are not marked as prerelease in GitHub releases. Thus checkver logic should filter out non-stable releases.

Removed autoupdate hash

Newer releases don't have checksum in the release notes anymore, but checksum is listed in GitHub assets digest.

Add suggest

Requires .NET desktop runtime 9.0 to function properly.

Add architecture field to support 64-bit only


  • Use conventional PR title: <manifest-name[@version]|chore>: <general summary of the pull request>
  • I have read the Contributing Guide

Summary by CodeRabbit

  • Chores

    • Improved release/version detection to use GitHub releases for more reliable updates.
    • Reorganized automatic update metadata to an architecture-aware structure, focusing on 64-bit builds.
    • Cleaned up top-level update fields and preserved existing executables and shortcuts.
  • New Features

    • Added an installation suggestion for the .NET Desktop Runtime to improve compatibility.

@coderabbitai
Copy link

coderabbitai bot commented Oct 19, 2025

Walkthrough

Updated bucket/compactgui.json: moved top-level url/hash into architecture.64bit, converted checkver from the "github" shorthand to an object using the GitHub Releases API (url, jsonpath, regex), and added a suggest entry for .NET Desktop Runtime.

Changes

Cohort / File(s) Summary
Manifest
bucket/compactgui.json
Replaced top-level url and hash with architecture.64bit (url + hash); converted checkver from "github" to an object (url: https://api.github.com/repos/ImminentFate/CompactGUI/releases, jsonpath: $..tag_name, regex: "v([\\d.]+)\""); nested autoupdate under architecture.64bit; added suggest: { ".NET Desktop Runtime": "extras/windowsdesktop-runtime" }; retained bin and shortcuts.

Sequence Diagram(s)

sequenceDiagram
  participant Parser as Manifest parser
  participant GH as GitHub Releases API
  participant Updater as autoupdate resolver
  rect rgb(240,250,240)
    Note over Parser,GH: Structured checkver using Releases API
  end
  Parser->>GH: GET /repos/ImminentFate/CompactGUI/releases
  GH-->>Parser: JSON releases
  Parser->>Parser: extract tags with jsonpath `$..tag_name` and apply regex `v([\\d.]+)`
  alt version found
    Parser->>Updater: build `architecture.64bit` URL (v$version)
    Updater-->>Parser: fetch `CompactGUI.exe` from `architecture.64bit.url`
  else no version
    Parser-->>Parser: fail/version not found
  end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Poem

🐰 I nibble lines of JSON, neat and bright,
I tuck hashes in arches out of sight,
I teach the checks to ask releases, true,
I point to runtimes that the app might use,
Hooray — the manifest hops into the light!

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title Check ✅ Passed The pull request title "[email protected]: Fix checkver & autoupdate, add suggest, add architecture field to support 64-bit only" follows the conventional format and directly aligns with the actual changes in the changeset. The title comprehensively covers all major modifications: the checkver and autoupdate fixes, the addition of the suggest block, and the introduction of an architecture field for 64-bit support. It is specific, clear, and provides sufficient context for scanning commit history without being verbose or vague.
Description Check ✅ Passed The pull request description meets the template requirements by providing substantive explanations for each change made (checkver fix with issue reference, autoupdate hash removal with rationale, suggest addition, and architecture field addition). Both required checkboxes are marked as complete, confirming the author's adherence to the conventional PR title format and acknowledgment of the Contributing Guide. The description is complete, contextual, and relates directly to the changeset without being incomplete or off-topic.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a233d77 and d9ba6ba.

📒 Files selected for processing (1)
  • bucket/compactgui.json (1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: o-l-a-v
PR: ScoopInstaller/Extras#16378
File: bucket/compactgui.json:20-22
Timestamp: 2025-10-19T13:58:23.389Z
Learning: In the ScoopInstaller/Extras repository, the CompactGUI manifest removed hash verification from the autoupdate block because the hash verification mechanism (scraping SHA-256 from release page HTML) is no longer available in newer CompactGUI releases. GitHub asset digests exist in beta releases but not in v3.8.0, and Scoop doesn't have built-in support for extracting from GitHub API asset digests.
📚 Learning: 2025-10-19T13:58:23.389Z
Learnt from: o-l-a-v
PR: ScoopInstaller/Extras#16378
File: bucket/compactgui.json:20-22
Timestamp: 2025-10-19T13:58:23.389Z
Learning: In the ScoopInstaller/Extras repository, the CompactGUI manifest removed hash verification from the autoupdate block because the hash verification mechanism (scraping SHA-256 from release page HTML) is no longer available in newer CompactGUI releases. GitHub asset digests exist in beta releases but not in v3.8.0, and Scoop doesn't have built-in support for extracting from GitHub API asset digests.

Applied to files:

  • bucket/compactgui.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: WindowsPowerShell
🔇 Additional comments (4)
bucket/compactgui.json (4)

6-8: Suggest block properly declares .NET Desktop Runtime dependency.

The .NET Desktop Runtime suggestion aligns with CompactGUI v3.8.0's runtime requirements and follows correct Scoop manifest syntax.


9-14: Architecture refactoring correctly marks package as 64-bit only—trailing comma issue resolved.

The move to architecture.64bit properly structures the package for 64-bit-only support per PR objectives. The JSON syntax is now valid (no trailing comma). Hash integrity is preserved at the correct nesting level.


22-26: Checkver correctly filters releases to stable versions only.

The regex v([\\d.]+)\" explicitly matches semantic versions (e.g., v3.8.0) while rejecting prerelease tags (beta, rc) that contain hyphens. This aligns with the PR objective to exclude non-stable releases that lack prerelease markers in GitHub releases. The GitHub Releases API endpoint and JSONPath syntax are correct.


27-33: Autoupdate structure correct given hash verification constraints.

The removal of hash verification from autoupdate is justified per the prior learning: v3.8.0 lacks GitHub asset digests (digest: null), the old HTML scraping mechanism is no longer functional, and Scoop lacks built-in support for extracting hashes from GitHub API responses. The architecture-nested URL structure with $version placeholder is correct. When future stable releases include asset digest support and Scoop adds extraction capability, hash verification can be restored.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Contributor

All changes look good.

Wait for review from human collaborators.

compactgui

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate
  • Autoupdate Hash Extraction

Check the full log for details.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 123b8bb and b355817.

📒 Files selected for processing (1)
  • bucket/compactgui.json (1 hunks)
🔇 Additional comments (1)
bucket/compactgui.json (1)

15-19: ✓ checkver regex correctly filters out all prerelease versions.

The structured checkver implementation successfully excludes prerelease tags. Verification against the GitHub API confirms the regex pattern v([\\d.]+)\" matches only stable semantic versions (v3.8.0, v3.7.0, etc.) and rejects all prerelease variants (v4.0.0-beta., v3.4.0-alpha.), achieving the intended goal of avoiding unstable releases.

@o-l-a-v
Copy link
Contributor Author

o-l-a-v commented Oct 19, 2025

/verify

@github-actions
Copy link
Contributor

All changes look good.

Wait for review from human collaborators.

compactgui

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate

Check the full log for details.

@o-l-a-v
Copy link
Contributor Author

o-l-a-v commented Oct 19, 2025

Related: #16379.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between b355817 and a233d77.

📒 Files selected for processing (1)
  • bucket/compactgui.json (1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: o-l-a-v
PR: ScoopInstaller/Extras#16378
File: bucket/compactgui.json:20-22
Timestamp: 2025-10-19T13:58:23.389Z
Learning: In the ScoopInstaller/Extras repository, the CompactGUI manifest removed hash verification from the autoupdate block because the hash verification mechanism (scraping SHA-256 from release page HTML) is no longer available in newer CompactGUI releases. GitHub asset digests exist in beta releases but not in v3.8.0, and Scoop doesn't have built-in support for extracting from GitHub API asset digests.
📚 Learning: 2025-10-19T13:58:23.389Z
Learnt from: o-l-a-v
PR: ScoopInstaller/Extras#16378
File: bucket/compactgui.json:20-22
Timestamp: 2025-10-19T13:58:23.389Z
Learning: In the ScoopInstaller/Extras repository, the CompactGUI manifest removed hash verification from the autoupdate block because the hash verification mechanism (scraping SHA-256 from release page HTML) is no longer available in newer CompactGUI releases. GitHub asset digests exist in beta releases but not in v3.8.0, and Scoop doesn't have built-in support for extracting from GitHub API asset digests.

Applied to files:

  • bucket/compactgui.json
🪛 Biome (2.1.2)
bucket/compactgui.json

[error] 13-13: Expected a property but instead found '}'.

Expected a property here.

(parse)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: WindowsPowerShell
🔇 Additional comments (3)
bucket/compactgui.json (3)

22-26: Checkver conversion to GitHub Releases API is sound for filtering stable versions.

The regex v([\\d.]+) correctly excludes prerelease versions by capturing only numeric segments before hyphens (e.g., v4.0.0-beta.54.0.0 mismatch). This aligns with the PR objective to "exclude prereleases" since only stable versions like v3.8.0 will have corresponding tags.


27-33: Autoupdate restructuring appropriately removes broken hash extraction.

The autoupdate block now omits the hash field, which is the correct approach per prior discussion: the HTML scraping mechanism no longer works in newer CompactGUI releases, and GitHub asset digests aren't available for v3.8.0 (only in beta versions). This aligns with the learnings from the repository context.


6-8: Dependency suggestion for .NET Desktop Runtime is appropriate.

The new suggest block correctly declares the .NET Desktop Runtime dependency, which is necessary for running the 64-bit CompactGUI executable on Windows systems that lack it.

@z-Fng z-Fng changed the title [email protected]: Fix checkver to exclude prereleases [email protected]: Fix checkver & autoupdate, add suggest, add architecture field to support 64-bit only Oct 22, 2025
@z-Fng
Copy link
Member

z-Fng commented Oct 22, 2025

/verify

@github-actions
Copy link
Contributor

All changes look good.

Wait for review from human collaborators.

compactgui

  • Lint
  • Description
  • License
  • Hashes
  • Checkver
  • Autoupdate

Check the full log for details.

@z-Fng z-Fng merged commit 530ff3b into ScoopInstaller:master Oct 22, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants