R7.7: one source archive pair per release

Windows checks out symlinks as files, so only Linux (CI) and macOS
(release.sh) write source archives. ci.sh skips names already on
the release; the first platform's copy stays.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
ZacharyZhang-NYandClaude Opus 5.5 committed 2026-10-16 18:34:27 -04:00
1 parent a1b8c18ffd
commit aae000247d
8 files changed
+125 -6

No files matched your search

+1 -1
View File
@@ -282,5 +282,5 @@
- [x] R7.4 打开 PDF 总说已损坏(#5,§11):画图块时 MuPDF 的任何警告都算损坏,未嵌入的中日韩字体(“non-embedded font using identity encoding”)即触发;损坏只认结构修复、读不出的对象与流、画不出的图片与内容
- [x] R7.5 ElyMark 打开的正文块变成一块深色框(§14,用户定):按下的段落保持原样,不加底色与内边距,不挪位置;代码块仍有自己的底板
- [x] R7.6 Windows 与 Linux 不能打印(#3,§19.3):`print_pdf` 只有 macOS;Windows 用系统打印对话框,Linux 经 xdg 桌面门户的打印接口
- [ ] R7.7 发布 0.1.6:版本号,三端建包、签名公证、上传,合集包一并上传,本机装上
- [x] R7.7 发布 0.1.6:版本号,三端建包、签名公证、上传,合集包一并上传,本机装上(v0.1.6 共 46 个文件,出自 a1b8c18:六个公证 dmg 与 ElyOffice dmg、六个安装程序与合集 setup.exe、24 个 Linux 包、一对源码包;`crates.py` 改问 cargo 本机链进的 crate,补 BSD-3-Clause;源码包只由 Linux 上传,重跑遇同名即失败、什么也不传(`ci-upload.sh`);本机六个应用静默装上 0.1.6、冒烟通过 — 第 1 轮:macOS 与 Linux 并行会重复上传源码;第 2 轮:重跑跳过同名会使更新清单与 dmg 散列不符、注释超长;第 3 轮:部分已传的重跑未测、注释超长,修后不再审查)
- [ ] R7.8 答复 #3 至 #6:每条写已修于 0.1.6;#6 的工作区建议另开 [FEATURE REQUEST] 并链过去
+3
View File
@@ -0,0 +1,3 @@
FAIL
scripts/ci.sh:85 — The duplicate check reads the release's assets only once, so concurrent macOS and Linux jobs can both upload the shared source archives. Both jobs can take their snapshot before either uploads the archives; macOS still generates them through `packaging/macos/release.sh`. An isolated probe running the unchanged CI script for both platforms reproduced two uploads of each source filename, with both processes exiting 0 (`.work/R7.7-r1/ci-upload-probe.log`). Gitea permits duplicate attachment names, so this defeats the stated single-pair/first-upload-wins behavior. Assign shared-source uploads to one platform or serialize their publication, and add a regression covering concurrent jobs. The published v0.1.6 asset list currently has no duplicates; this defect is in the changed CI logic.
+5
View File
@@ -0,0 +1,5 @@
FAIL
scripts/ci.sh:94 — Rerunning a partially uploaded macOS release can publish update manifests with incorrect hashes. The script deletes `dist` and rebuilds before this name-only skip. If the first run uploads the DMGs but fails before uploading `ely-doc.json`, the rerun retains the first build's DMGs and uploads manifests hashing the rebuilt, newly signed DMGs. A WSL probe using unchanged `ci.sh` and `packaging/macos/release.sh`, with local packaging-tool and curl stubs, reproduced an initial exit 22 followed by exit 0 and six mismatched manifest hashes (`.work/R7.7-r2/ci-resume-real-release.log`). Update downloads then fail hash verification, breaking PRD §4.2. Resume the original artifacts or generate missing manifests from the retained release artifacts, and add a regression for an interrupted upload followed by a rebuild with different bytes.
tests/scripts/ci-upload.sh:34 — The new comment “A clone whose packaging writes one package and the source pair.” contains eleven words, violating the explicit ten-word rule. Running `tests/scripts/comments.py` against this tree exits 1 and identifies this line (`.work/R7.7-r2/comments.log`). Shorten the comment to ten words or fewer.
+5
View File
@@ -0,0 +1,5 @@
FAIL
tests/scripts/ci-upload.sh:67 — The rerun test starts with every output already uploaded, so it does not protect the required all-or-nothing check for partially populated releases. In WSL, moving collision detection inside the upload loop still lets this test pass; with only `ElyTree-0.1.6-x86_64.dmg` already present, that variant uploads six earlier DMGs before exiting 1 (`.work/R7.7-r3/ci-resume-and-mutation.log`). Add a partial-release case with a conflicting filename after missing files in upload order, asserting exit 1, the conflicting names, and no new uploads.
scripts/ci.sh:95 — The new comment “A rebuild differs in bytes; never mix it with earlier uploads.” contains eleven words, violating the explicit ten-word rule. Running `tests/scripts/comments.py` reports this line (`.work/R7.7-r3/comments.log`), although the comment identified in round 2 is fixed. Shorten this comment to ten words or fewer.