Skip to content

fix: E0006 Upgrade 提示按安装布局区分 + AUR 特别关照(bump 至 v2026.8.8.4、新增 mcpp-git) - #395

Merged
Sunrisepeak merged 2 commits into
mcpp-community:mainfrom
lildengzi:feat/aur-mcpp-git-e0006-hint
Aug 8, 2026
Merged

fix: E0006 Upgrade 提示按安装布局区分 + AUR 特别关照(bump 至 v2026.8.8.4、新增 mcpp-git)#395
Sunrisepeak merged 2 commits into
mcpp-community:mainfrom
lildengzi:feat/aur-mcpp-git-e0006-hint

Conversation

@lildengzi

Copy link
Copy Markdown
Contributor

摘要

E0006 的 Upgrade: 提示只给一个写死的 install.sh 命令,对其它安装方式(AUR)有误导:已装 mcpp-bin 的用户照做会在 ~/.mcpp 装出第二份,且 install.sh 不会更新 /opt/mcpp 里正在运行的那份二进制——"更新无效"的错觉(详见 #394)。

本 PR 让提示按安装布局给出正确指引,并顺带给 Arch 用户一份"特别关照":

改动 1:E0006 提示按安装布局区分(src/pm/index_contract.cppm

  • self_exe_path() 检测二进制是否落在发行版管理目录(/opt/mcpp,即 AUR 布局);
  • 是 → 提示改用 AUR helper 更新(paru -Syu mcpp-binyay -Syu mcpp-bin),并说明 install.sh 装的是另一份、不会更新这份;
  • 否(install.sh / xlings)→ 保持原 install.sh 提示(输出不变);
  • 两种布局都追加推荐默认安装器注记:'xlings update mcpp' (recommended default installer)
  • 纯函数 floor_violation 契约不变;新增导出纯函数 e0006_message(violation, distroManaged),便于单测。

测试:tests/unit/test_index_contract.cpp 新增 E0006MessageSwitchesUpgradeAdviceByLayoutmcpp test 全量 68/68 通过。

改动 2:AUR 特别关照 😋(scripts/aur/

  • bump mcpp-bin / mcpp-m 至 v2026.8.8.4(经 update.sh,真实 sha256)——消除"低于索引下限"导致的 E0006;
  • 新增 mcpp-git(VCS 包,source 直接拉官方仓库 master,复用 mcpp-mmcpp-bin 自举骨架与 /opt+wrapper 布局)——滚动跟踪 master,永不滞后;pkgver()git describe 取 tag+提交距离;
  • scripts/aur/README.md 同步文档(三包布局、mcpp-git 说明、update.sh 只负责 release-pinned 包)。

建议(可选):AUR 可考虑正式收录 mcpp-git,作为 mcpp-bin 滞后期的滚动选项——想尝鲜的滚动玩家用之,稳定用户继续 mcpp-bin

tips: 我就是想尝鲜的滚动玩家之一 😋

相关

@Sunrisepeak
Sunrisepeak merged commit 54d29fc into mcpp-community:main Aug 8, 2026
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants