polyml: Add version 5.9.1#17767
Conversation
Closes ScoopInstaller#17766 Signed-off-by: Yan Cao <git@apvc.uk>
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughA new manifest file bucket/polyml.json was added to define a Scoop package for PolyML v5.9.1. The manifest contains package metadata (version, description, homepage, license), a 64-bit MSI download URL with SHA256, install settings (extract_dir), bin mapping to PolyML.exe, a shortcut named PolyML, and GitHub-based checkver/autoupdate templates. Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. 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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
bucket/polyml.json (1)
1-31: Please run the standard Scoop manifest checks before finalizing.Suggested validation steps for this manifest (
polyml):
scoop config debug truescoop config gh_token <your-github-token>.\bin\checkver.ps1 -App polyml -f.\bin\formatjson.ps1 -App polymlscoop install .\bucket\polyml.json -a 64bitAs per coding guidelines: “Provide clear instructions for testing the manifest locally before submission” and include the contribution references:
https://github.com/ScoopInstaller/.github/blob/main/.github/CONTRIBUTING.md
https://github.com/ScoopInstaller/Scoop/wiki/App-Manifests🤖 Prompt for 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. In `@bucket/polyml.json` around lines 1 - 31, The manifest lacks the required local validation steps and contribution references; run the standard Scoop checks and update the PR with exact test commands and links: execute scoop config debug true, set scoop config gh_token, run .\bin\checkver.ps1 -App polyml -f, .\bin\formatjson.ps1 -App polyml and scoop install .\bucket\polyml.json -a 64bit to validate the manifest, and add a short “Testing / Validation” section to the PR referencing the CONTRIBUTING and App-Manifests docs; mention the manifest symbols checked (checkver, autoupdate, url, regex, hash in polyml.json) so reviewers know what you validated.
🤖 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 `@bucket/polyml.json`:
- Line 5: The SPDX license value in the JSON (`"license": "LGPL-2.1"`) uses a
deprecated bare GNU identifier; update that string to a non-deprecated suffixed
form such as `"LGPL-2.1-only"` or `"LGPL-2.1-or-later"` in the polyml.json file
so the license field uses a valid SPDX identifier.
- Around line 20-27: The checkver.regex and autoupdate.url currently expect
filenames like "PolyML.$version-64bit.msi" (with an extra dot) which doesn't
match the actual asset name "PolyML5.9.1-64bit.msi" referenced by
architecture.64bit.url; update checkver.regex (the named capture "tag") to match
"PolyML(?<tag>[\\d.]+)-64bit\\.msi" (no dot before the version) and change
autoupdate.url to
"https://github.com/polyml/polyml/releases/download/v$matchTag/PolyML$version-64bit.msi"
so both checkver.regex and autoupdate.url exactly match the real artifact name
used by architecture.64bit.url.
---
Nitpick comments:
In `@bucket/polyml.json`:
- Around line 1-31: The manifest lacks the required local validation steps and
contribution references; run the standard Scoop checks and update the PR with
exact test commands and links: execute scoop config debug true, set scoop config
gh_token, run .\bin\checkver.ps1 -App polyml -f, .\bin\formatjson.ps1 -App
polyml and scoop install .\bucket\polyml.json -a 64bit to validate the manifest,
and add a short “Testing / Validation” section to the PR referencing the
CONTRIBUTING and App-Manifests docs; mention the manifest symbols checked
(checkver, autoupdate, url, regex, hash in polyml.json) so reviewers know what
you validated.
🪄 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: CHILL
Plan: Pro
Run ID: 81444eec-233a-4a00-b01f-f11e0b9f2a53
📒 Files selected for processing (1)
bucket/polyml.json
|
/verify |
|
Your changes did not pass all checks. Please address the issues in the manifest and comment starting with polyml
|
|
/verify |
|
All changes look good. Wait for review from human collaborators. polyml
|
There was a problem hiding this comment.
🧹 Nitpick comments (1)
bucket/polyml.json (1)
1-20: ⚡ Quick winAdd a
checkverblock even withoutautoupdate.The commit removed
autoupdatebecause v5.9.2 has no Windows binary yet. However, removingcheckvertoo meansbin/checkver.ps1can no longer detect when a new release with a Windows binary appears. Consider addingcheckverso the manifest can at least surface version drift:♻️ Suggested `checkver` block (append before closing `}`)
+ "checkver": { + "github": "https://github.com/polyml/polyml" + }🤖 Prompt for 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. In `@bucket/polyml.json` around lines 1 - 20, Add a "checkver" block to the polyml.json manifest (next to keys like "version" and "architecture") so bin/checkver.ps1 can detect new releases even without an "autoupdate" block; the check should point at the GitHub releases for polyml/polyml and use a regex that captures the release tag/version (e.g., 5.9.2) only when a Windows MSI asset (matching the existing "architecture"."64bit"."url" pattern like PolyML.*-64bit.msi) is present, then place this "checkver" block before the final closing } of the JSON.
🤖 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.
Nitpick comments:
In `@bucket/polyml.json`:
- Around line 1-20: Add a "checkver" block to the polyml.json manifest (next to
keys like "version" and "architecture") so bin/checkver.ps1 can detect new
releases even without an "autoupdate" block; the check should point at the
GitHub releases for polyml/polyml and use a regex that captures the release
tag/version (e.g., 5.9.2) only when a Windows MSI asset (matching the existing
"architecture"."64bit"."url" pattern like PolyML.*-64bit.msi) is present, then
place this "checkver" block before the final closing } of the JSON.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: ec062374-c8ed-4ec4-929a-e7b6c84022bf
📒 Files selected for processing (1)
bucket/polyml.json
|
/verify |
|
Your changes did not pass all checks. Please address the issues in the manifest and comment starting with polyml
|
|
/verify |
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 `@bucket/polyml.json`:
- Around line 12-13: Add an autoupdate block to the manifest: replace the
hardcoded release URL containing "v5.9.1" with a template using "$version" and
add an "autoupdate" section that points to the project's GitHub releases with a
regex matching tags like vMAJOR.MINOR.PATCH (mirror examples in
zebar.json/yubioath.json); ensure the manifest's "url" uses "$version" and the
autoupdate uses the GitHubRelease provider and appropriate "regex" to capture
tags and "replace" to construct the download URL. Also convert the file to CRLF
line endings (required by Scoop) and verify the "extract_dir" ("PFiles/Poly ML")
and "bin" ("PolyML.exe") paths by locally extracting the MSI (lessmsi or scoop
install) to confirm the binary location, adjusting those fields if the
executable is in a different subfolder.
- Around line 20-30: The checkver/autoupdate block is broken: replace the
non-standard "github" API URL with the standard web URL (use "github":
"https://github.com/polyml/polyml") so Scoop can correctly convert it to the API
endpoint; acknowledge that current releases have no assets so the existing regex
"regex": "download/v(?<tag>[\\d.]+)/PolyML([\\d.]+)-64bit\\.msi" will never
match—either broaden/remove the asset-specific regex or switch to extracting the
version from the release tag only (use the "tag" capture) in "checkver"; and
remove or disable the autoupdate.hash.url pointing at "SHA256sums.txt" (or
replace with a valid published checksum source) because upstream does not
publish that file, so set "autoupdate.hash" to absent/undefined or point to a
reliable hash URL.
🪄 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: CHILL
Plan: Pro
Run ID: 325aa8d1-a869-49cd-8fd4-0ee7658d3fb8
📒 Files selected for processing (1)
bucket/polyml.json
|
All changes look good. Wait for review from human collaborators. polyml
|
|
/verify |
There was a problem hiding this comment.
♻️ Duplicate comments (1)
bucket/polyml.json (1)
22-23:⚠️ Potential issue | 🟠 Major | ⚡ Quick winHarden
checkvermatching to prevent silent update misses.Line 22 uses
"$....name"and Line 23 allows empty versions (*), which makes version detection brittle. Tighten both so checkver only captures valid asset versions.Suggested fix
- "jsonpath": "$....name", - "regex": "PolyML(?<version>[\\d.]*)-64bit.msi" + "jsonpath": "$..name", + "regex": "PolyML(?<version>[\\d.]+)-64bit\\.msi"#!/bin/bash # Verify current checkver extraction against live release metadata. set -euo pipefail tmp_json="$(mktemp)" curl -fsSL "https://api.github.com/repos/polyml/polyml/releases" > "$tmp_json" python - <<'PY' "$tmp_json" import json, re, sys data = json.load(open(sys.argv[1], "r", encoding="utf-8")) def walk_names(x): if isinstance(x, dict): for k, v in x.items(): if k == "name" and isinstance(v, str): yield v yield from walk_names(v) elif isinstance(x, list): for i in x: yield from walk_names(i) names = list(walk_names(data)) bad = re.compile(r"PolyML([\d.]*)-64bit\.msi") good = re.compile(r"PolyML([\d.]+)-64bit\.msi") bad_hits = [n for n in names if bad.search(n)] good_hits = [n for n in names if good.search(n)] print("matches_with_star:", len(bad_hits)) print("matches_with_plus:", len(good_hits)) print("sample_plus_match:", good_hits[0] if good_hits else "NONE") PY rm -f "$tmp_json"As per coding guidelines: “Cross-check: If the top-level url/extract_dir/... contain a version number, ensure these exact paths are properly parameterized in the autoupdate block so future automated updates won't miss them.”
🤖 Prompt for 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. In `@bucket/polyml.json` around lines 22 - 23, The checkver block is too permissive: the jsonpath "$....name" is ambiguous and the regex "PolyML(?<version>[\d.]*)-64bit.msi" allows empty versions; update jsonpath to target the release asset name field precisely (e.g., traverse to assets[].name) and tighten the regex to require at least one digit (use (?<version>[\d.]+)) so only valid versioned asset names (e.g., PolyML1.6.0-64bit.msi) are matched; ensure any top-level url/extract_dir/version placeholders are parameterized to match the same version capture.
🧹 Nitpick comments (1)
bucket/polyml.json (1)
1-32: Run the Scoop manifest validation flow locally before merge.Use the standard checkver/format/install loop for this new manifest:
scoop config debug true scoop config gh_token <your-github-token> # optional, read-only token .\bin\checkver.ps1 -App polyml -f .\bin\formatjson.ps1 -App polyml scoop install .\bucket\polyml.json -a 64bitIf anything fails, please align with:
- Contribution Guide: https://github.com/ScoopInstaller/.github/blob/main/.github/CONTRIBUTING.md
- App Manifest Wiki: https://github.com/ScoopInstaller/Scoop/wiki/App-Manifests
🤖 Prompt for 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. In `@bucket/polyml.json` around lines 1 - 32, Manifest validation wasn't run locally; run the Scoop checkver/format/install loop and fix any issues in the manifest fields (checkver, autoupdate, architecture/url, jsonpath/regex, extract_dir, bin, shortcuts) so it passes Scoop's validators: run .\bin\checkver.ps1 -App polyml -f to ensure checkver/jsonpath/regex produce correct version tokens, run .\bin\formatjson.ps1 -App polyml to normalize formatting, and attempt scoop install .\bucket\polyml.json -a 64bit to catch install/extract/bin/shortcut problems; update the "checkver" jsonpath/regex and "autoupdate" URL template or any mismatched "extract_dir"/"bin"/"shortcuts" values until all validation and install steps succeed.
🤖 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.
Duplicate comments:
In `@bucket/polyml.json`:
- Around line 22-23: The checkver block is too permissive: the jsonpath
"$....name" is ambiguous and the regex "PolyML(?<version>[\d.]*)-64bit.msi"
allows empty versions; update jsonpath to target the release asset name field
precisely (e.g., traverse to assets[].name) and tighten the regex to require at
least one digit (use (?<version>[\d.]+)) so only valid versioned asset names
(e.g., PolyML1.6.0-64bit.msi) are matched; ensure any top-level
url/extract_dir/version placeholders are parameterized to match the same version
capture.
---
Nitpick comments:
In `@bucket/polyml.json`:
- Around line 1-32: Manifest validation wasn't run locally; run the Scoop
checkver/format/install loop and fix any issues in the manifest fields
(checkver, autoupdate, architecture/url, jsonpath/regex, extract_dir, bin,
shortcuts) so it passes Scoop's validators: run .\bin\checkver.ps1 -App polyml
-f to ensure checkver/jsonpath/regex produce correct version tokens, run
.\bin\formatjson.ps1 -App polyml to normalize formatting, and attempt scoop
install .\bucket\polyml.json -a 64bit to catch install/extract/bin/shortcut
problems; update the "checkver" jsonpath/regex and "autoupdate" URL template or
any mismatched "extract_dir"/"bin"/"shortcuts" values until all validation and
install steps succeed.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: c6ebe076-800e-4c9b-9c15-3f6d3594c1c7
📒 Files selected for processing (1)
bucket/polyml.json
|
CodeRabbit chat interactions are restricted to organization members for this repository. Ask an organization member to interact with CodeRabbit, or set |
|
All changes look good. Wait for review from human collaborators. polyml
|
Closes #17766
The program has a GUI interface for the intepreter.
Auto update is missing, because in the latest release, the binary for windows is still not published.
Autoupdate has been added back.
<manifest-name[@version]|chore>: <general summary of the pull request>