新增 Scoop 应用(scoop-violet)
为 scoop-violet bucket 新增应用。严格遵循 wiki/SPEC.md 的 manifest 规范,只操作本仓库内文件。
流程
1. 调研(只读)
- 若用户提供
ref/下的源码克隆与本地安装位置,先分析其发布方式(es可定位本地安装):- 发布产物类型(单 exe / NSIS 安装器 / zip 便携包 / 其他)
- 版本来源(GitHub Releases / latest.json / 网页正则)
- 是否有配置文件、数据目录、自更新机制
- 用 GitHub API(或
es本机搜索)确认真实资产名与 hash——页面显示名可能 ≠ 实际下载名(如WeMD Setup 1.4.4.exe实际链接是WeMD.Setup.1.4.4.exe)。
2. 编写 manifest
- 文件放
bucket/<应用名>.json,不要放仓库根目录。 - 必填字段:
version(不带v)、description、homepage、license、url+hash。 checkver与autoupdate必须成对出现(通用脚本scripts/update.py依赖它们自动更新,见 SPEC 第 12 节)。- 可用的 checkver 形式:
"github"/{"github": "<owner/repo>"}/{"url","regex"}/{"url","jsonpath","regex"}。 - autoupdate 支持
$version、$cleanVersion、$match<Name>模板与 hash 抓取(jsonpath /$sha256)。 - 路径分隔符一律
\\;子目录用\\连接。 - 常见决策:
- 便携单 exe → 直接
bin,无需 installer。 - NSIS 安装器 → 用
installer.script静默安装;可/D=$dir装进 scoop 目录(/D=必须最后、不带引号)。 - 数据目录在用户目录(如
%APPDATA%)→ 不要写persist,卸载自动保留。 - 应用自带自更新且会覆盖二进制 → 用
scripts/<应用>/下的 post_install 脚本关闭(参考bucket/atomcode.json与scripts/atomcode/disable-auto-update.ps1)。
- 便携单 exe → 直接
3. 配套脚本(如需要)
- 放
scripts/<应用名>/下,manifest 中用"$bucketsdir\\$bucket\\scripts\\<应用>\\<脚本>.ps1"引用。 - 修改用户目录配置时只做行级修改/追加,禁止整体覆盖(配置文件可能含密钥)。
4. 验证(必须)
powershell -NoProfile -Command 'Get-Content bucket/<应用>.json -Raw | ConvertFrom-Json | Out-Null' # JSON 合法
uv run --no-project python scripts/update.py --dry-run # checkver/autoupdate 链路(不写回)
update.py --dry-run应输出OK <应用>: up to date (<版本>)或按预期更新;出现FAIL必须排查。- 若新版本可用时,在临时目录伪造旧版本实测一次更新路径(
--dir <临时目录>),确认 url/hash 正确生成。
5. 收尾
- 更新
README.md的「收录应用」表格。 - 未经用户明确要求,不要提交/推送;提交时用中文 conventional commit 消息。