Commit Graph
20 Commits
Author SHA1 Message Date
yenharvey 9b2acacae0 ci(android): CI 编 Android,发版出签名的 APK
ci.yml 加 android job 编 debug APK,Kotlin 与 Gradle 以前没有任何检查。
release.yml 加 android job:带产品数据出 arm64 APK,签名后 apksigner 验过才上传;v 标签连 Android 一起发,单发用 android-v。
APK 的 versionName / versionCode 改从 core/Cargo.toml 算,发版门禁同样核对它;0.3.0 起 Android 与桌面同号,成熟度用「预览版」标注。
.qj 不再设 noCompress,APK 从 225 MB 降到 95 MB,只多在首次启动解压时花几秒。
README、译本与用户文档把 Android 从「需从源码构建」改成下载 APK;发版文档补签名密钥的生成与 Secrets。
2026-10-22 10:01:35 +08:00
jacklaoz 96ecd146ff test(platform): 历代配置回归,每个发版写给用户的配置模板都必须读得进 (#678)
#625 开发版写的 traditional = "off" 让后来的版本整份配置读不进、回缺省,当时没有测试兜着。
2026-10-19 15:56:28 +08:00
yenharvey f325ddad78 feat(settings): 换掉旧设置程序,旧版留一个版本作回退
- macOS:设置程序作为独立 .app 装进 Qingjian.app/Contents/Applications,菜单「设置…」打开它,包里没有时退回旧版;原偏好设置改名「旧版设置…」
- Windows:qingjian-settings.exe 换成新程序(状态条齿轮、开始菜单「青简设置」),旧 WinUI 程序改名 qingjian-settings-legacy.exe,开始菜单「青简旧版设置」,互斥体与窗口标题分开以便同时开
- Linux:安装与预编译包带上 qingjian-settings 与应用菜单项
- 新程序:Windows 不弹控制台、嵌图标、只开一个;日志另写一份到输入法日志目录,按天留 7 天;随包数据按各平台安装布局找
- 测试 config_keys 离屏点遍每页控件,写了的键用输入法的 Config 读回核对;补上「英文模式也给候选」漏掉的 ⓘ
- ⓘ 点了打开官网文档对应的一段,测试核对锚点在 docs/user 里真有、行在那页上真有 ⓘ
- 用户文档按新的页重写设置一页,各处「偏好设置 → 通用」这类指路改成新页名;contributing「控件面原生」一条改为设置程序自绘
2026-10-12 10:07:26 +08:00
yenharvey b240289df1 build(release): 将含章模型与词库合并为 data-v3 单包
统一两份模型的 small 型号文件名,并让三个平台读取单包数据。保留旧锁下载路径供历史版本使用。
2026-09-29 13:37:59 +08:00
yenharvey b6c68352a5 chore(release): 合并主线并准备 0.1.5-beta.1
合并三平台共用发布流程、更新检查和最新输入改动,接入含章模型的数据打包与安装路径。保留已确认的 beta 更新日志和网盘入口,修复未发布节阻断发布索引的问题。
2026-09-29 12:31:24 +08:00
yenharvey a41d1cf82a feat: 接入含章·通变与知微模型
接入含章·通变的拼音解码、整句重排与词图兜底生成,扩展 macOS、Windows 和 Linux 的模型加载路径。模型文件按正式标识归档,保留旧用户目录回退,并同步数据打包、评测记录和用户文档。
2026-09-29 12:02:00 +08:00
yenharvey 26c613c8ae feat(release): Linux 预编译包、三平台共用一个 Release、网盘链接
- Linux:apps/linux/scripts/package.sh 在 Ubuntu 26.04 上打 qingjian-<版本>-linux-x86_64.tar.gz(Server、Fcitx5 插件、产品数据、install.sh),与源码安装共用 files.py 的清单与校验;Linux 版本号对齐 0.1.4-dev
- release.yml:v<版本> 标签发三个平台,prepare 建草稿 → 各平台并行打包上传 → publish 合并摘要与构建信息后转正;有平台失败就停在草稿;单平台补丁仍可用 macos-v / windows-v / linux-v 标签
- CHANGELOG 版本标题下的「网盘:」行进 releases.json 的 mirrors 字段,GitHub Release 说明放在最前
2026-09-24 10:10:02 +08:00
yenharvey 795a0c70d2 feat(update): 检查更新(只提示)与版本索引的 ed25519 签名
新 crate qingjian-update:读官网的 releases.json、验签名、按平台 / CPU / 渠道挑比当前新的版本,结果写 update.json;
[update] check / channel 配置;macOS 输入法菜单、Windows 任务栏「中 / 英」图标的右键菜单与两端「关于」页提示,
点开下载页,不下载不安装;-dev 本地包不检查(QINGJIAN_UPDATE_VERSION 可顶替版本号来测)。
发版侧 tools/release-sign 给索引签名,release.yml 没配 QINGJIAN_INDEX_SIGNING_KEY 时门禁失败。设计见 docs/design/update.md。

macOS 菜单里「有新版本」这一行必须放在普通条目那一组:放在最后一条分隔线之后时 IMK 每次按键都新建会话、打不了字
(对照构建逐个验过,见 update.md)。
2026-09-23 16:56:17 +08:00
yenharvey 5fe018cb08 chore(release): 安装包改名、渠道改成更新渠道、索引加 schema_version 与 cpu
为接入 Homebrew 自建源 / WinGet 与软件内检查更新做准备:安装包文件名固定为
qingjian-<版本>-<平台>-<cpu>[-setup].<扩展名>;CHANGELOG 与 releases.json 的 channel 表示更新渠道,
0.1.3 标 stable,带预发布后缀的版本由 release.yml 标成 GitHub 预发布。
2026-09-17 15:36:01 +08:00
yenharvey 59312c5cad build(release): 产品数据改成不可变的 data-vN Release,仓库锁文件钉版本
滚动覆盖的 data Release 让老提交自编译拿到新数据、CI 只按 Release 自己的 SHA256SUMS 自校验。
现在 data-bundle.sh 发新号并写 tools/release/data.lock,data-fetch.sh 按锁文件下载校验,CI 与自编译同一条路;
build-info.json 多记 data_tag。老 data Release 冻结不删。
2026-09-16 17:53:45 +08:00
yenharvey 9283b98eb6 chore(release): Windows 下一版与 macOS 同号 0.1.3,不再走 alpha
版本号两端共用:一个版本号一节 CHANGELOG、说明一致;哪个平台发了就打哪个平台的标签,
只发一个平台的补丁就开新号、那一节全是该平台的条目。三个 Windows crate 改成 0.1.3-dev。
2026-09-16 11:39:31 +08:00
yenharvey aa757f041d 打包:开发版号接 git 短哈希(0.1.3-dev-1a2b3c4,脏加 +)
Cargo.toml 里仍只写 -dev,打包时接上,发版提交去掉 -dev 就不接;测试反馈报版本串就能定位到提交。
- macOS:bundle.sh 接哈希,Info.plist 与 pkg 文件名带哈希,pkgbuild 仍用数字版本。
- Windows:installer/build.ps1 同样接哈希进安装包文件名;settings 的 build.rs 出 QINGJIAN_VERSION,关于页显示它。
2026-09-15 23:54:07 +08:00
yenharvey b77c076c30 仓库:官网文档只随发版同步(删 docs 工作流、bump-website 去掉 docs 模式);加 PR 模板 2026-09-13 20:57:16 +08:00
yenharvey c9d48f9a01 发版数据:本地整句模型改成上传单文件 model.qjm,CI 两个 job 下载放 data/model
data-bundle.sh 三件套比 .qjm 新就调 pack-model.sh 重打、原样上传 model.qjm 并删旧的 qingjian-model.tar.gz;
release.yml 下载校验后 mv 到 data/model/,build-info.json 记 model_sha256;docs/notes/release.md 同步
2026-09-12 17:08:05 +08:00
yenharvey ed156c64fd CI:三平台 job、actions 钉 commit、--locked、最小权限、发版门禁(标签在 main 上、数据按 SHA256SUMS 校验)、Dependabot + cargo audit;钩子加禁装饰性分隔注释与 pre-push 测试
- ci.yml:core(Linux 全量)/ macos(IMK 壳)/ windows(Server、TSF DLL、Settings)三个 job,Windows 代码以前在 Linux 上只是被 cfg 跳过;
  Windows job 设 QINGJIAN_UIACCESS=0(没签名的测试二进制带 uiAccess manifest 起不来,os error 740)
- 第一次在 Windows 上跑测试就抓到一个:TSF 日志的 days_from_civil 把 719468 加成了减,1970-01-01 算成 1438936(只用来比大小,功能没受影响)
- release.yml:secrets 不放顶层 env、有没有配由第一步算成输出;merge-base 门禁;产品数据 SHA256SUMS 校验并记进 build-info.json 的 data_sha256;docs.yml 同样钉 commit、只读权限
- bundle.sh / build.ps1 的 cargo build 加 --locked
- .githooks/pre-commit 拒绝 // ==== 这类只做视觉分组的分隔注释(与 unuvojo-server 同一条规矩),.githooks/pre-push 跑全 workspace 测试
- 正式版前欠的(数据不可变 tag + 锁定、安装包内容验证、cargo deny、fuzz / Miri)记进 todo 与 release.md
2026-09-12 13:05:57 +08:00
yenharvey b1835f5231 版本号:发版之间带 -dev(mac 0.1.2-dev、win 0.1.0-alpha.2-dev),本地与 CI 中间构建一眼能与线上包区分
- 发版提交去掉 -dev 再打标签,标签后只改 Cargo.toml 到下一个 -dev;-dev 版本没有标签与 Release,release.yml 两个 job 拒绝带 -dev 的版本
- bundle.sh:Info.plist 与 pkg 文件名保留完整版本,pkgbuild 与 distribution.xml 只认数字点号、用去掉后缀的 PKG_VERSION(已实际打包核对)
- Windows 设置程序的构建标识在工作区有改动时加 +,与 mac 一致
- 规矩写进 CLAUDE.md 与 docs/notes/release.md
2026-09-12 12:18:53 +08:00
yenharvey 3e153b21cd Windows 发版:release.yml 加 windows job,0.1.0-alpha.1 内测版
- release.yml 认 windows-v* 标签:下载产品数据 → 装 Inno Setup 7.1.0(与开发机同版本,钉死 jrsoftware/issrc
  的 GitHub Release 并核对 SHA-256)→ build.ps1 打安装包 → 建 Release;两平台共用 publish-releases-json.sh
  生成 releases.json 并覆盖到 GitHub latest(顺带修了只认 v* 标签漏掉 macos-v* 的问题)
- build.ps1 优先用 Program Files 里的 Inno Setup 7,PATH 上的 6(CI 镜像自带、不带简中翻译)退居其后;
  QINGJIAN_ISCC 可直接指定
- 没有代码签名证书:QINGJIAN_UIACCESS=0 让 Server 不嵌 uiAccess(没签名的 exe 带 uiAccess 起不来);
  在开发机上按 CI 条件跑过 build.ps1 + 静默安装,Server 能启动、数据全部加载
- Inno 的 VersionInfoVersion 只认数字,预发布后缀去掉再传;releases_json.py 认 -Setup.exe
- 三个 Windows crate 版本 0.1.0-alpha.1;CHANGELOG 加内测版说明;docs/notes/release.md 加 Windows 发版一节
2026-09-11 20:50:56 +08:00
yenharvey b84bfd5c3f 各平台壳版本号独立:发布标签加平台前缀,脚本改读 app 包版本
apps/* 是各自独立发布的产品,版本号不该跟 workspace 或彼此同步(macOS 修的 bug
不该让 Windows 涨版本)。mac 到 0.1.1、win 还在 0.1.0,光靠 v<版本> 标签会撞车。

- apps/macos 用自己的 version(0.1.1),不再 version.workspace。
- 发布标签按平台加前缀 macos-v* / windows-v*;bundle.sh 与 release.yml 都改读
  apps/macos/Cargo.toml 的包版本、按去掉 macos-v 前缀后的标签比对。
- releases_json.py 的 TAG 正则接受可选平台前缀(macos- / windows- / linux-),
  向后兼容旧的 v* 标签。
- CLAUDE.md 与 docs/notes/release.md 记下该约定与新的打标签方式。
2026-09-11 19:35:01 +08:00
yenharvey e342fb49e0 发版后让官网重新构建:往官网仓库推一个小提交(Cloudflare 按提交自动构建,没有构建钩子)
release.yml / docs.yml 改调 tools/release/bump-website.sh,写官网的 src/content/upstream.json(版本标签、文档提交号)并推送;QINGJIAN_WEB_TOKEN 改为对 qingjian-web 有 Contents: write 的 PAT。
2026-09-08 17:54:11 +08:00
yenharvey 7a2ccc7691 v0.1.0:首个版本
青简(Qingjian):用 Rust 写的拼音输入法,候选词旁多一条正在学的那门语言的译词,一次只学一种。
核心引擎平台无关(crates/),macOS 输入法(apps/macos)已可用,CLI 测试工具(apps/cli),
产品数据生成工具(tools/),设计文档、计划与用户文档在 docs/,发版流程见 docs/notes/release.md。
2026-09-07 19:17:46 +08:00