Skip to content

polyml: Add version 5.9.1#17767

Open
tie-ling wants to merge 8 commits into
ScoopInstaller:masterfrom
tie-ling:polyml
Open

polyml: Add version 5.9.1#17767
tie-ling wants to merge 8 commits into
ScoopInstaller:masterfrom
tie-ling:polyml

Conversation

@tie-ling
Copy link
Copy Markdown

@tie-ling tie-ling commented May 6, 2026

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.

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

Closes ScoopInstaller#17766

Signed-off-by: Yan Cao <git@apvc.uk>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 6, 2026

Review Change Stack

Note

Reviews paused

It 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 reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

A 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)

Check name Status Explanation Resolution
Description check ❓ Inconclusive The PR description addresses the core requirement (closing issue #17766) and mentions autoupdate status, but the conventional PR title checkbox remains unchecked and the contributing guide acknowledgment is incomplete. Ensure the PR title follows the conventional format and confirm completion of the required checklist items mentioned in the description template.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title 'polyml: Add version 5.9.1' clearly and concisely summarizes the main change, following the expected manifest addition format.
Linked Issues check ✅ Passed The PR successfully fulfills the core requirement from #17766 by adding Poly/ML 5.9.1 with appropriate metadata, installer URL, and checkver/autoupdate configurations.
Out of Scope Changes check ✅ Passed All changes in the PR are directly scoped to adding the Poly/ML manifest as specified in issue #17766; no unrelated modifications are present.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ 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.

❤️ Share

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

Copy link
Copy Markdown

@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: 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 true
  • scoop config gh_token <your-github-token>
  • .\bin\checkver.ps1 -App polyml -f
  • .\bin\formatjson.ps1 -App polyml
  • scoop install .\bucket\polyml.json -a 64bit

As 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

📥 Commits

Reviewing files that changed from the base of the PR and between c53ba6c and a25739b.

📒 Files selected for processing (1)
  • bucket/polyml.json

Comment thread bucket/polyml.json Outdated
Comment thread bucket/polyml.json Outdated
@tie-ling
Copy link
Copy Markdown
Author

tie-ling commented May 6, 2026

/verify

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 6, 2026

Your changes did not pass all checks.

Please address the issues in the manifest and comment starting with /verify to rerun the checks.

polyml

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

Check the full log for details.

@tie-ling
Copy link
Copy Markdown
Author

tie-ling commented May 6, 2026

/verify

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 6, 2026

All changes look good.

Wait for review from human collaborators.

polyml

  • Lint
  • Description
  • License
  • Hashes

Check the full log for details.

Copy link
Copy Markdown

@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.

🧹 Nitpick comments (1)
bucket/polyml.json (1)

1-20: ⚡ Quick win

Add a checkver block even without autoupdate.

The commit removed autoupdate because v5.9.2 has no Windows binary yet. However, removing checkver too means bin/checkver.ps1 can no longer detect when a new release with a Windows binary appears. Consider adding checkver so 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

📥 Commits

Reviewing files that changed from the base of the PR and between a25739b and de22766.

📒 Files selected for processing (1)
  • bucket/polyml.json

@tie-ling
Copy link
Copy Markdown
Author

tie-ling commented May 6, 2026

/verify

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 6, 2026

Your changes did not pass all checks.

Please address the issues in the manifest and comment starting with /verify to rerun the checks.

polyml

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

Check the full log for details.

@tie-ling
Copy link
Copy Markdown
Author

tie-ling commented May 6, 2026

/verify

Copy link
Copy Markdown

@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: 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

📥 Commits

Reviewing files that changed from the base of the PR and between de22766 and 16ef562.

📒 Files selected for processing (1)
  • bucket/polyml.json

Comment thread bucket/polyml.json
Comment thread bucket/polyml.json Outdated
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 6, 2026

All changes look good.

Wait for review from human collaborators.

polyml

  • Lint
  • Description
  • License
  • Hashes

Check the full log for details.

@tie-ling
Copy link
Copy Markdown
Author

/verify

Copy link
Copy Markdown

@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.

♻️ Duplicate comments (1)
bucket/polyml.json (1)

22-23: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Harden checkver matching 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 64bit

If anything fails, please align with:

🤖 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

📥 Commits

Reviewing files that changed from the base of the PR and between e6c05ac and c12def4.

📒 Files selected for processing (1)
  • bucket/polyml.json

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 13, 2026

CodeRabbit chat interactions are restricted to organization members for this repository. Ask an organization member to interact with CodeRabbit, or set chat.allow_non_org_members: true in your configuration.

@github-actions
Copy link
Copy Markdown
Contributor

All changes look good.

Wait for review from human collaborators.

polyml

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

Check the full log for details.

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.

[Request]: Poly/ML

1 participant