Files
ClassHelper/docs/dev/release.md
T
LoveChengke c7f215a09c feat(courseware,docs): 完善课件传输与岛编辑并统一全仓文档
- 增加课件上传、班级可见范围、设备补收与传输进度
- 整合自定义灵动岛编辑器和相关客户端交互
- 同步三端契约、数据库迁移、部署配置与隔离回归
- 按源码统一文档与官网说明,移除过时任务书和审查记录
- 保持产品版本为 1.4.0
2026-10-18 11:53:37 +08:00

4.8 KiB
Raw Blame History

title, description
title description
版本迭代与发布 版本单一来源、本地与发布文件名、验证和发布同步。

版本迭代与发布

日常文档/代码维护不自动改版本。版本唯一修改入口是 scripts/version.mjs;先执行 pnpm version:check。 正式新发布执行 pnpm version:bump patch|minor|major,指定固定版本的本地重构建保持版本不变。 版本落点由脚本清单决定,不另维护“文件数/落点数”。

构建与验证

pnpm version:check
pnpm lint
pnpm typecheck
pnpm check:icons
pnpm docs:check
pnpm verify:e2e
pnpm verify:v14
pnpm verify:courseware
pnpm build:desktop
pnpm verify:desktop
pnpm --filter @classhelper/web-admin build
pnpm verify:web:isolated
pnpm dist:all
pnpm verify:packaged --exe "releases/client/<版本>/安装包/ClassHelper-<版本>-x64-portable.exe" --offline

以上按发布改动范围执行;显式 --visual 才是桌面视觉验收。测试数量和结果必须来自本次输出。 完整边界见验收。同号本地重构建先保留可恢复副本,最新包核验完成后按用户要求清理旧归档。 2026-10-18 工作区清理后,1.4.0 仅保留当前 client/server 目录和当前更新日志/校验清单。

产物与文件名

本地构建产物 GitHub Release 上传名
releases/client/<版本>/安装包/ClassHelper-<版本>-x64-setup.exe ClassHelper-<版本>-x64-client-setup.exe
releases/client/<版本>/安装包/ClassHelper-<版本>-x64-portable.exe ClassHelper-<版本>-x64-client-portable.exe
releases/server/<版本>/安装包/ClassHelper 服务端-<版本>-x64-setup.exe ClassHelper-<版本>-x64-server-setup.exe
releases/server/<版本>/linux-x64/classhelper-server-linux-x64-<版本>.tar.gz 同名

Linux 还需同名 .tar.gz.sha256。正式 Linux 包在 Linux runner 运行 pnpm dist:server:linux; Windows 上的交叉构建仅作验证,可能缺目标平台的 Prisma engine。 构建中间物可再生成,不将 win-unpacked、server staging 或解包副本当交付物保留。

更新日志与校验

releases/ReleaseNotes-<版本>.md 维护本批包的功能、升级须知、实际验证范围与文件清单。 它描述该构建批次,不能把之后的源码功能写成旧包已经包含。 SHA256SUMS-<版本>.txt 用上传名记录各文件哈希;本地查验必须先按上表映射,不能因为本地文件没带 client/server 后缀就判断丢包。 可在 PowerShell 对 client/server 安装包运行 Get-FileHash -Algorithm SHA256,将三项实际结果按上传名写入清单。 不要仅对客户端目录做重定向而漏掉服务端;Linux 行待 CI 完成后同步。

发布同步

完成验证和本地更新日志后,检查 diff,按用户授权提交和推送 master;不要把其他未完成改动一并提交。 将三个 Windows 包复制到独立的 .cache/release-staging/<版本>/,使用上传名,避免通配符混入别的版本。 先准备当前 Windows SHA256 清单并随 Release 上传。创建 Release 时显式 --target master 或明确提交,说明用 --notes-file。 ClassIsland 插件已退役,不再上传插件资产。

# <版本> 和提交均替换为本次实际值
gh release create v<版本> --target master --title "ClassHelper v<版本>" --notes-file releases/ReleaseNotes-<版本>.md
gh release upload v<版本> <三个已按上传名暂存的EXE> releases/SHA256SUMS-<版本>.txt

推送 v* tag 触发 release-linux-server.yml,按 tag 检出,在 Ubuntu 构建并上传 Linux 包、独立 .sha256,合并跨组件清单。 等待 Actions 成功,再下载 Linux 文件和最终 SHA256SUMS 同步回本地;检查清单的 Windows 行仍与本次文件一致。 如需重跑,可手动运行该 workflow,指定准确 tag 和 attach=true。master 修复不会自动改变旧 tag 指向。

官网和文档站由 pages.yml 拼装同一个站点:官网根、文档 /docs/。文档版本徽标读根 package.json, 官网和下载页兜底版本由 version 脚本维护。Linux workflow 与 Pages 是独立流水线,分别确认结果。 官网行为变化同步 README 与相应帮助章节,功能索引放源码索引。

已发布版本与回滚

已公开且用户安装的版本建议发补丁版本修复,避免同号不同内容使更新缓存/忽略版本与摘要失配。 用户明确要求固定版本重构建时,按要求保持版本,并清楚区分本地包和远端资产;不自动改远端 tag/Release。 仅说明或文档错误直接修改说明/文档;线上故障按对应部署形态从完整备份恢复。