@airalogy/airalogy-bd 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  版本统一使用 `x.y.z`,公开版本记录从 1.0.0 开始。本文件记录版本内容;安装包、镜像和线上服务的发布状态分别确认。
4
4
 
5
+ ## [1.1.1] - 2026-10-26
6
+
7
+ - 增加 GitHub Actions 可信发布流程:正式 Release 触发完整测试与安装包验证,通过 npm OIDC 发布同一归档;手动运行只检查,不发布。
8
+ - 发布环境仅允许版本标签,测试与发布权限分离,使用临时身份凭据,核对测试归档与 npm 公开包的完整性。
9
+ - 打包检查兼容 npm 12 按包名组织的 JSON 报告,保留此前 npm 版本的验证方式。
10
+
5
11
  ## [1.1.0] - 2026-10-25
6
12
 
7
13
  - 支持用户名或邮箱登录。受邀成员自行设置唯一用户名;已有账号可在“我的账号”中补充用户名,保留内部 ID、权限和历史记录。
package/README.md CHANGED
@@ -29,19 +29,19 @@ Airalogy BD 是一套支持本地使用与团队服务器部署的 BD 管理工
29
29
 
30
30
  ## 安装与初始化
31
31
 
32
- 在独立的业务工作区安装指定版本。以下以 `1.1.0` 为例,需要该版本已发布到 npm:
32
+ 在独立的业务工作区安装指定版本。以下以 `1.1.1` 为例,需要该版本已发布到 npm:
33
33
 
34
34
  ```sh
35
35
  mkdir company-bd
36
36
  cd company-bd
37
- pnpm dlx @airalogy/airalogy-bd@1.1.0 init --id company-id --name 公司名称
37
+ pnpm --allow-build=sharp --allow-build=unrs-resolver dlx @airalogy/airalogy-bd@1.1.1 init --id company-id --name 公司名称
38
38
  pnpm install
39
39
  ```
40
40
 
41
- 初始化会固定当前程序版本,不依赖临时下载目录。也可以先用 pnpm 安装,再初始化:
41
+ 首次安装需要明确许可 `sharp` 和 `unrs-resolver` 的构建脚本,上述命令只允许这两项。初始化会固定当前程序版本,不依赖临时下载目录。也可以先用 pnpm 安装,再初始化:
42
42
 
43
43
  ```sh
44
- pnpm add -D -E @airalogy/airalogy-bd@1.1.0
44
+ pnpm add -D -E @airalogy/airalogy-bd@1.1.1 --allow-build=sharp --allow-build=unrs-resolver
45
45
  pnpm exec bd init --id company-id --name 公司名称
46
46
  ```
47
47
 
@@ -55,7 +55,7 @@ pnpm exec bd init --id company-id --name 公司名称
55
55
  {
56
56
  "private": true,
57
57
  "devDependencies": {
58
- "@airalogy/airalogy-bd": "1.1.0"
58
+ "@airalogy/airalogy-bd": "1.1.1"
59
59
  },
60
60
  "scripts": {
61
61
  "dev": "bd dev",
@@ -278,7 +278,7 @@ bd dev --content /path/to/new-workspace/content
278
278
 
279
279
  版本信息在 `bd build` / `bd dev` 准备运行目录时固定,`bd start` 沿用已有构建的信息;修改或升级源码后需重新构建并启动才能加载。界面仅展示当前运行版本,不自动查询远程发布,发布状态由发布标签与分发产物确定。
280
280
 
281
- `pnpm version:check` 检查软件版本与更新记录是否一致,已纳入 `pnpm test`。代码提交和推送不自动创建发布标签、安装包或线上部署。
281
+ `pnpm version:check` 检查软件版本与更新记录是否一致,已纳入 `pnpm test`。代码提交和推送不自动发版或部署。正式发布 GitHub Release 后,已配置的[可信发布流程](docs/npm-publishing.md)会验证并发布 npm 安装包;服务器部署仍单独执行。
282
282
 
283
283
  公开前运行 `pnpm publication:check`,并按 [公开代码检查说明](docs/publication-check.md) 复核源码及实际分发文件。
284
284
 
@@ -11,16 +11,40 @@
11
11
  5. 对经过验证的同一个 `.tgz` 执行 `npm publish /path/to/release-artifacts/airalogy-airalogy-bd-X.Y.Z.tgz --access public --registry=https://registry.npmjs.org/`,按 npm 提示完成双因素验证,不重新从不同工作目录打包发布。
12
12
  6. 用 `npm view @airalogy/airalogy-bd@X.Y.Z version dist.integrity --registry=https://registry.npmjs.org/` 核对版本,再从公开仓库安装到另一个空工作区验证。完成后将 GitHub Release 的版本、提交和安装方式一并记录。
13
13
 
14
+ npm 接收发布后会扫描安装包,通常需等待数分钟才可按包名安装。先确认公开注册表可查询到该版本,再执行安装验证;等待期间不重复发布同一版本。首次 pnpm 安装需按 README 明确许可 `sharp` 与 `unrs-resolver` 的构建脚本。
15
+
14
16
  公开安装包只包含通用程序、模板、文档和许可证。产品包移除 `private: true`,独立业务工作区仍设置 `private: true`。工作区、数据库、密钥、业务附件和备份不应进入 npm 包。
15
17
 
16
18
  版本发布后不可覆盖;修复发布为新版本。应用版本发布、更新本地依赖、服务器部署分别执行。尚未验证的安装包不能仅因源码测试通过就视为可发布。
17
19
 
18
- ## 后续使用可信发布
20
+ ## GitHub 可信发布
21
+
22
+ 仓库提供 [npm release 工作流](../.github/workflows/publish.yml)。正式发布 GitHub Release 时自动检查并发布 npm;普通提交、推送、仅创建标签、草稿 Release 和手动检查均不会发布 npm。预发布版本不允许发布到 `latest`。
23
+
24
+ ### 一次性配置
25
+
26
+ 1. 在 GitHub 仓库创建名为 `npm` 的 Environment,Deployment branches and tags 选择 Selected branches and tags,只添加类型为 Tag、名称为 `v*.*.*` 的规则,不允许分支进入此环境。
27
+ 2. 在 npm 包的 Settings → Trusted publishing 添加 GitHub Actions:组织 `airalogy`、仓库 `airalogy-bd`、工作流文件名 `publish.yml`、环境 `npm`。允许直接 Publish;本工作流只执行正式发布,不使用 staged publish 或独立的 dist-tag 管理。更改信任配置仍需管理员完成 npm 双因素验证。
28
+ 3. 也可使用 npm 11.15.0 以上的官方命令完成绑定:
29
+
30
+ ```sh
31
+ npm trust github @airalogy/airalogy-bd --repo airalogy/airalogy-bd --file publish.yml --env npm --allow-publish
32
+ ```
33
+
34
+ 4. 新建信任关系必须在两天内完成首次成功发布。仅保存配置、执行 `--dry-run` 或通过测试不会验证这项关系;超时需删除过期关系并重新创建。因此应在下一正式版本准备就绪时完成绑定。
35
+
36
+ 工作流使用 GitHub 托管的 Ubuntu runner、固定版本的 Node.js/npm/pnpm/uv,以及固定提交的 Actions。无需配置 `NPM_TOKEN` 或其他长期发布密钥,现有 npm 账号双因素验证继续保留。此文档与工作流文件不能代替上述远程设置;可用 `npm trust list @airalogy/airalogy-bd` 和 GitHub Environment 设置检查实际状态。
37
+
38
+ ### 日常发版
19
39
 
20
- 推荐使用 npm Trusted Publishing,将该包绑定到 `airalogy/airalogy-bd` 仓库中专门的 GitHub Actions 工作流。首次包创建完成后,由包管理员在 npm 包设置中配置组织、仓库和工作流文件名;开启前应准备好流程,并按照 npm 当前的配置有效期完成首次验证。
40
+ 1. 修改版本号与更新记录,完成审阅后将源码提交、推送到 `main`。
41
+ 2. 如需提前检查,在 GitHub Actions → npm release → Run workflow 中选择 `main`。手动运行只检查并保留安装包,不取得 npm 发布身份。
42
+ 3. 为已准备好的提交创建 `vX.Y.Z` 标签,在 GitHub 正式发布对应的 Release。标签必须匹配 `package.json` 的 `x.y.z`,指向 `main` 历史中的提交;发布后不移动标签或覆盖版本。
43
+ 4. 工作流先执行完整测试,再打包并在独立工作区验证安装、初始化、启动器、Logo、资料保留和生产构建。测试任务只有源码读取权限,不具有 OIDC 发布权限。
44
+ 5. 独立发布任务进入 `npm` 环境,下载本次测试的同一份归档并核对 SHA-256、包名、版本及来源。该任务不检出业务程序、不安装程序依赖、不运行安装包脚本;通过 OIDC 临时身份向 npm 发布,并等待公开注册表中的 SHA-512 完整性校验通过。
21
45
 
22
- 工作流应从指定版本标签检出并核对版本,在不授予发布凭据的任务中安装、测试和生成归档,再由独立发布任务取得 OIDC 临时身份并上传已验证的同一归档。使用受保护的发布环境控制正式发布;普通提交和推送不触发发布。CI 使用支持可信发布的 npm CLI(至少 11.5.1)与 Node.js(至少 22.14.0),无需保存长期 npm 发布 Token。
46
+ GitHub Release 创建成功不表示 npm 已成功发布,须等待 Actions 的 `publish` 任务完成。npm 扫描或网络验证超时后,先检查注册表是否已存在该版本;不能盲目重发。工作流会拒绝覆盖已有版本。验证归档保存在该次 Actions 的 Artifacts 中,保留 14 天。服务器部署和业务工作区依赖更新仍需另外执行。
23
47
 
24
- 此配置需要 npm 包和 GitHub 权限配合,文档本身不会启用远程自动发布。首次人工发布与后续可信发布都不要求用户改用 npm 安装;使用者仍可通过 pnpm 固定版本安装。
48
+ 仓库管理员及有权修改工作流、创建版本标签和 Release 的维护者能影响发布,应只向受信任人员授予相关权限。需要多人审批时,可在 `npm` 环境增加 Required reviewers,不必改回长期 npm 密钥。
25
49
 
26
- 参考:[npm 公开组织包](https://docs.npmjs.com/creating-and-publishing-scoped-public-packages/)、[npm Trusted Publishing](https://docs.npmjs.com/trusted-publishers/)。
50
+ 参考:[npm 公开组织包](https://docs.npmjs.com/creating-and-publishing-scoped-public-packages/)、[npm Trusted Publishing](https://docs.npmjs.com/trusted-publishers/)、[npm trust 命令](https://docs.npmjs.com/cli/v11/commands/npm-trust/)。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@airalogy/airalogy-bd",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "Business development workspace for local use and team collaboration.",
5
5
  "publishConfig": {
6
6
  "access": "public",