winuxcmd: Add version 0.12.0#17968
Conversation
📝 WalkthroughWalkthroughThis pull request introduces a new package manifest for WinuxCmd version 0.12.0 into the Scoop Extras bucket. The manifest specifies download URLs and SHA256 hashes for both 64-bit and arm64 architectures, defines the extraction directory structure, includes a PowerShell post_install hook to create symbolic links, configures PATH environment variables with the binary location, and establishes GitHub-based version checking with templated autoupdate URLs to streamline future releases. Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Suggested labels
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 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: 1
🧹 Nitpick comments (1)
bucket/winuxcmd.json (1)
1-40: Testing guidance for WinuxCmd manifest.Before merging, please test the manifest locally using the following commands:
1. Optional: Enable debug mode and set GitHub token (for API access):
scoop config debug true scoop config gh_token <your-github-token> # Read access only2. Force version detection and autoupdate:
.\bin\checkver.ps1 -App winuxcmd -f3. Auto-format (Lint) the JSON manifest:
.\bin\formatjson.ps1 -App winuxcmd4. Test installation for each architecture:
# For 64-bit scoop install .\bucket\winuxcmd.json -a 64bit # Verify generated links work ls cat --help rm --help # Uninstall before testing arm64 (if needed) scoop uninstall winuxcmd # For ARM64 (if on ARM64 hardware) scoop install .\bucket\winuxcmd.json -a arm645. Verify post_install script execution:
- Ensure
create_links.ps1runs without errors- Check that Linux-style command links (ls.exe, cat.exe, rm.exe, etc.) are created in the install directory
- Confirm commands are accessible from any terminal session
Related: App Manifests Wiki
🤖 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/winuxcmd.json` around lines 1 - 40, Run the suggested local tests for the winuxcmd.json manifest: enable debug and set gh_token, run .\bin\checkver.ps1 -App winuxcmd -f to force version detection and autoupdate, run .\bin\formatjson.ps1 -App winuxcmd to lint the JSON, then install the manifest for each architecture (scoop install .\bucket\winuxcmd.json -a 64bit and -a arm64 where applicable), verify post_install's create_links.ps1 executes (no errors), confirm the created links (ls.exe, cat.exe, rm.exe, etc.) exist in the extracted extract_dir and that the declared bin (winuxcmd.exe) and link commands are accessible from a terminal, and uninstall between tests as needed; fix any failures in the post_install or autoupdate URL/template sections (check the "post_install" block, "bin" value, "checkver" and "autoupdate" architecture entries) so links are generated and installs 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.
Inline comments:
In `@bucket/winuxcmd.json`:
- Around line 1-5: The new manifest winuxcmd.json needs a linked package-request
issue referenced; update the PR description to include a package-request issue
created via the provided URL
(https://github.com/ScoopInstaller/Extras/issues/new?labels=package-request&template=package-request.yml&title=%5BRequest%5D%3A+)
and add a link to that issue in the manifest (e.g., add an "issue" or
"package_request" field in winuxcmd.json with the issue number or full issue URL
such as "`#123`" or "https://github.com/.../issues/123") so reviewers can trace
this package-request.
---
Nitpick comments:
In `@bucket/winuxcmd.json`:
- Around line 1-40: Run the suggested local tests for the winuxcmd.json
manifest: enable debug and set gh_token, run .\bin\checkver.ps1 -App winuxcmd -f
to force version detection and autoupdate, run .\bin\formatjson.ps1 -App
winuxcmd to lint the JSON, then install the manifest for each architecture
(scoop install .\bucket\winuxcmd.json -a 64bit and -a arm64 where applicable),
verify post_install's create_links.ps1 executes (no errors), confirm the created
links (ls.exe, cat.exe, rm.exe, etc.) exist in the extracted extract_dir and
that the declared bin (winuxcmd.exe) and link commands are accessible from a
terminal, and uninstall between tests as needed; fix any failures in the
post_install or autoupdate URL/template sections (check the "post_install"
block, "bin" value, "checkver" and "autoupdate" architecture entries) so links
are generated and installs succeed.
🪄 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: 5b0d9428-2003-4452-aa52-ac565473316d
📒 Files selected for processing (1)
bucket/winuxcmd.json
| { | ||
| "version": "0.12.0", | ||
| "description": "Linux-style command set for Windows terminals.", | ||
| "homepage": "https://github.com/caomengxuan666/WinuxCmd", | ||
| "license": "MIT", |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Description: Check GitHub repository stars count to verify acceptance criteria.
# Fetch repository information including stars count
gh api repos/caomengxuan666/WinuxCmd --jq '{stars: .stargazers_count, is_archived: .archived, default_branch: .default_branch, description: .description}'Repository: ScoopInstaller/Extras
Length of output: 225
🏁 Script executed:
#!/bin/bash
# Check latest GitHub release (stable vs pre-release/alpha)
gh api repos/caomengxuan666/WinuxCmd/releases --paginate=false --jq \
'([.[] | {tag:.tag_name, prerelease:.prerelease, published_at:.published_at, name:.name}]) | .[0:5]'Repository: ScoopInstaller/Extras
Length of output: 567
🏁 Script executed:
#!/bin/bash
set -euo pipefail
FILE="bucket/winuxcmd.json"
echo "== File info =="
stat "$FILE" || true
file "$FILE" || true
echo
echo "== CRLF check =="
python3 - <<'PY'
p="bucket/winuxcmd.json"
data=open(p,'rb').read()
crlf=data.count(b"\r\n")
lf=data.count(b"\n")
print("bytes",len(data))
print("CRLF_count",crlf)
print("LF_count",lf)
print("has_CR", b"\r" in data)
PY
echo
echo "== Header (lines 1-60) =="
nl -ba "$FILE" | sed -n '1,60p'
echo
echo "== checkver/autoupdate block (search) =="
rg -n '"checkver"|"autoupdate"|"github"|"url"' "$FILE" || true
echo
echo "== Snippet around checkver/autoupdate (lines 20-120) =="
nl -ba "$FILE" | sed -n '20,120p'Repository: ScoopInstaller/Extras
Length of output: 323
🏁 Script executed:
#!/bin/bash
set -euo pipefail
FILE="bucket/winuxcmd.json"
echo "== Tools sanity =="
command -v rg >/dev/null && echo "rg: yes" || echo "rg: no"
command -v cat >/dev/null && echo "cat: yes" || echo "cat: no"
echo
echo "== Header (first ~80 lines, with cat) =="
sed -n '1,120p' "$FILE" || true
echo
echo "== Manifest metadata / issue link search =="
rg -n 'package-request|Extras/issues/new|github\.com/.+?/issues/|#\d+' "$FILE" || true
echo
echo "== checkver/autoupdate field search =="
rg -n '"checkver"|"autoupdate"|"github"|"url"|"extract_dir"' "$FILE" || true
echo
echo "== checkver/autoupdate snippet (lines 1-200) =="
sed -n '1,200p' "$FILE" || true
echo
echo "== checkver.github vs url (python parse quick scan) =="
python3 - <<'PY'
import json
p="bucket/winuxcmd.json"
with open(p,'r',encoding='utf-8') as f:
data=json.load(f)
# dump keys relevant
def dump_block(name):
b=data.get(name)
print(name, "type:", type(b).__name__)
if isinstance(b, dict):
print("keys:", sorted(b.keys()))
if "github" in b: print("github:", b["github"])
if "url" in b: print("url:", b["url"])
if "version" in b: print("version:", b["version"])
if "extract_dir" in b: print("extract_dir:", b["extract_dir"])
dump_block("checkver")
dump_block("autoupdate")
PYRepository: ScoopInstaller/Extras
Length of output: 4548
Link a package-request issue for the new manifest
bucket/winuxcmd.jsonis newly added, but it doesn’t link apackage-requestissue in the manifest fields—add a linked issue (e.g.,#123/ issue URL) to the PR description using: https://github.com/ScoopInstaller/Extras/issues/new?labels=package-request&template=package-request.yml&title=%5BRequest%5D%3A+- Upstream meets the stated acceptance criteria:
caomengxuan666/WinuxCmdhas 237 GitHub stars and latest releases are non-prerelease.
🤖 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/winuxcmd.json` around lines 1 - 5, The new manifest winuxcmd.json
needs a linked package-request issue referenced; update the PR description to
include a package-request issue created via the provided URL
(https://github.com/ScoopInstaller/Extras/issues/new?labels=package-request&template=package-request.yml&title=%5BRequest%5D%3A+)
and add a link to that issue in the manifest (e.g., add an "issue" or
"package_request" field in winuxcmd.json with the issue number or full issue URL
such as "`#123`" or "https://github.com/.../issues/123") so reviewers can trace
this package-request.
|
/verify |
|
All changes look good. Wait for review from human collaborators. winuxcmd
|
winuxcmd: Add version 0.12.0
Adds WinuxCmd, a Linux-style command set for Windows terminals.
Relates to #17969
The previous submission to the Main bucket was closed as not meeting Main criteria, so this PR targets Extras.
Implementation notes:
create_links.ps1 -Forceafter install so command links such asls.exe,cat.exe, andrm.exeare generated.checkverandautoupdateusing GitHub releases.Validation performed locally:
JSON parsed successfully with
ConvertFrom-Json.x64 and ARM64 SHA256 hashes match the downloaded v0.12.0 release zips.
Verified archive roots:
WinuxCmd-0.12.0-win-x64WinuxCmd-0.12.0-win-arm64Use conventional PR title:
<manifest-name[@version]|chore>: <general summary of the pull request>I have read the Contributing Guide.