@gbits-jszx/gw-cli 2026.9.11-19 → 2026.911.3

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/README.md CHANGED
@@ -8,34 +8,34 @@ GW-Framework 的跨平台构建、运行和交付工具。公网 registry 为 `h
8
8
 
9
9
  ## 日期版本号
10
10
 
11
- npm、Image、Chart 统一使用 `yyyy.M.d-id`,例如 `2026.9.11-2` 表示 2026 年 9 月 11 日第 2 次构建。`npm package`、`npm publish` 和 `publish npm` 默认 `--version auto`,按执行机器的本地日期生成,序号从 1 开始、同日递增、跨日重置。也可用 `--version 2026.9.11-2` 指定版本,日期须有效,月、日和序号均不得带前导零。
11
+ CLI 显示版本使用 `yyyy.MM.dd.id`,例如 `2026.09.10.1` 表示 2026 年 9 月 10 日第 1 次打包。`npm package`、`npm publish` 和 `publish npm` 默认 `--version auto`,按执行机器的本地日期生成,序号从 1 开始、同日递增、跨日重置。也可用 `--version 2026.09.10.7` 指定版本,日期须有效,序号须为不带前导零的正整数。
12
12
 
13
- 该格式可直接被 npm 解析为 SemVer:`yyyy.M.d` major/minor/patch,`id` 是数字型 prerelease 标识。包内 `package.json` 的 `version`、`gwVersion` 和 Windows/Linux 二进制编译版本使用完全相同的字符串,不再做 `yyyy.Mdd.id` 映射。日常安装继续使用 `@latest`;精确复现使用完整版本号。由于它在 SemVer 中属于 prerelease,普通版本范围默认不会匹配,依赖方不要使用 `^2026.9.11`,应使用 `@latest` 或精确版本。
13
+ npm SemVer 不接受四段数字或带前导零的月日,所以 npm 包版本采用 `yyyy.(MM×100+dd).id`。例如:
14
14
 
15
- `npm publish` / `publish npm` 会自动向 npm 传入 `--tag latest`,明确把本次版本设为 `@latest`,同时满足 npm 对 prerelease 发布的显式 tag 要求。`--dry-run` 使用相同参数但不上传;`npm pack --dry-run` 只检查打包,不能替代发布检查。
15
+ | CLI 显示 / `--version` 输入 | npm 包版本 / 安装版本 |
16
+ |---|---|
17
+ | `2026.01.02.1` | `2026.102.1` |
18
+ | `2026.09.10.7` | `2026.910.7` |
19
+ | `2026.12.31.12` | `2026.1231.12` |
16
20
 
17
- 旧的 `yyyy.MM.dd.id` 仅保留为显式输入兼容,用于重建已经发布的旧包;新自动版本不会再生成旧格式。
21
+ 这些是可按日期和序号排序的正式版本,可正常使用 `@latest`。包内 `package.json` 的 `version` 保存 npm 版本,`gwVersion` 保存四段显示版本;Windows/Linux 二进制编译时写入同一个显示版本,`gw-cli --version` 不会回退到源码包的旧版本。
18
22
 
19
- 序号记录位于 `~/jszx-infra/.gw-cli/projects.yaml`,按 `project-id` 和制品类型隔离;打包开始即占用,失败和 dry-run 也占用一次,避免自动重用版本。同一用户目录下的并发自动打包不会重复分配,清理 `.gw-build` 或切换仓库副本不会重置编号。手动指定版本可用于重打包或在本地验证后发布;换机器或 CI 多节点并行时仍需统一分配并显式传入未发布版本。`GW_CLI_PROJECTS` 可覆盖账本路径。
23
+ 序号记录位于 `.gw-build/npm/versions/`,打包开始即占用;失败和 dry-run 也占用一次,避免自动重用版本。并发自动打包不会重复分配;手动指定版本可用于重打包或在本地验证后发布。每份仓库独立编号,不查询 registry;清理记录、换机器或 CI 并行发布时,需统一分配并显式传入未发布的版本。`publish npm` 会重新编译源码,要沿用已验证的版本号应显式指定 `--version`。
20
24
 
21
25
  ## 镜像 tag
22
26
 
23
- `image build` 默认 `--tag auto`,生成 `yyyy.M.d-id`,例如 `2026.9.10-1`。该格式同时满足 Docker tag Helm SemVer,Image 和 Chart 在 Harbor 中可使用完全一致的版本字符串。日期按执行 CLI 的机器本地时间计算,序号从 1 起,同日递增、跨日重置。参数优先级为 `--tag` > `GW_IMAGE_TAG` > `auto`;自动和新显式版本使用新格式,已存在的 `yyyy.MM.dd.id` 仍可显式重建或推送。
27
+ `image build` 默认 `--tag auto`,使用同样的 `yyyy.MM.dd.id` 规则,例如 `2026.09.10.1`。Docker 支持四段 tag,无需 npm 的三段映射。日期按执行 CLI 的机器本地时间计算,序号从 1 起,同日递增、跨日重置。参数优先级为 `--tag` > `GW_IMAGE_TAG` > `auto`;显式 tag 必须是有效日期和不带前导零的正整数序号,不能用 `latest`、`0.2.0-dev` 等旧格式构建。
24
28
 
25
- 镜像与 npm 独立计数,编号同样写入用户级 `projects.yaml`。开始构建时即占号,失败也保留,但只有成功构建才更新该 repository 的最近可推送 tag。同一 `project-id` 的不同镜像 repository 共用镜像每日序号,各自保存最近成功构建。显式 tag 可用于本地重建;不查询 Harbor。换机器或 CI 多节点构建时,应统一分配并显式传入未发布 tag,不能覆盖已发布镜像。
29
+ 镜像与 npm 独立计数,镜像记录位于 `.gw-build/image/versions/`。开始构建时即占号,失败也保留;同一份仓库并发自动构建不会重复编号。显式 tag 可用于本地重建;不查询 Harbor,同一仓库的不同镜像 repository 共用镜像序号。清理记录、换机器或 CI 多节点构建时,应统一分配并显式传入未发布的 tag,不能覆盖已发布镜像。
26
30
 
27
31
  ```powershell
28
32
  # 自动编号,输出 Docker 构建日志及最终完整镜像名
29
33
  npx -y --prefer-online @gbits-jszx/gw-cli@latest image build
30
- # 自动使用该 repository 最近一次成功构建的 tag,不生成新编号
31
- npx -y --prefer-online @gbits-jszx/gw-cli@latest image push
34
+ # 推送时替换为上一步实际输出的 tag,不会生成新编号或重新构建
35
+ npx -y --prefer-online @gbits-jszx/gw-cli@latest image push --tag 2026.09.10.1
32
36
  ```
33
37
 
34
- `image push` / `publish image` 的默认 `--tag auto` 会读取最近成功构建记录;没有记录时要求先 build 或显式传入 tag。优先级为 `--tag` > `GW_IMAGE_TAG` > 自动识别;为兼容已有本地镜像,显式推送仍接受旧 tag 格式。以上行为在源码修改发布后才进入 npm `@latest`,发布前用 `go run ./tools/cli image build` 验证。
35
-
36
- ## Chart 版本
37
-
38
- `chart package` 默认生成与镜像一致的 `yyyy.M.d-id`,例如 `2026.9.10-1`;Chart metadata、归档名和 Harbor OCI tag 不再二次映射或添加 project-id 前缀。`chart push` 默认复用 `projects.yaml` 中尚未发布且文件仍存在的精确归档;没有可复用包时自动分配下一版本、打包并推送。旧的 `{project-id}-yyyy.MM.dd.id`、`yyyy.MM.dd.id` 和合法 SemVer 仍可显式用于重建或回滚。
38
+ `image push` / `publish image` 必须通过 `--tag` `GW_IMAGE_TAG` 指定已构建的 tag,不接受空值或 `auto`;为兼容已有本地镜像,推送仍接受旧 tag 格式。构建结束会输出可沿用的推送命令。以上行为在源码修改发布后才进入 npm `@latest`,发布前用 `go run ./tools/cli image build` 验证。
39
39
 
40
40
  ## 使用
41
41
 
@@ -66,9 +66,9 @@ npx -y --prefer-online @gbits-jszx/gw-cli@latest k3s init
66
66
  首次执行任何命令(含帮助、版本、doctor、dry-run)均检查用户配置;不存在或缺少 `project-id` 时引导填写项目代号,Harbor 地址与项目分别默认 `szharbor.g-bits.com`、`jszx-infra`,提示默认值可回车采用。旧配置中的发布凭据保留。镜像和 Chart 仓库末段统一为 `{project-id}`,Chart 打包也使用该包名。CI 需预先准备含 `project-id` 的配置。见 [首次配置说明](../../../configs/README.md)。
67
67
 
68
68
  ```powershell
69
- npx -y --prefer-online @gbits-jszx/gw-cli@latest publish npm --version 2026.9.11-2
70
- npx -y --prefer-online @gbits-jszx/gw-cli@latest publish image
71
- npx -y --prefer-online @gbits-jszx/gw-cli@latest publish chart
69
+ npx -y --prefer-online @gbits-jszx/gw-cli@latest publish npm --version 2026.09.10.1
70
+ npx -y --prefer-online @gbits-jszx/gw-cli@latest publish image --tag 2026.09.10.1
71
+ npx -y --prefer-online @gbits-jszx/gw-cli@latest publish chart --version 0.2.1
72
72
  ```
73
73
 
74
74
  缺少 npm Token 或 Harbor Robot 账号/密码时,CLI 会询问并自动保存到 `~/jszx-infra/.gw-cli/config.yaml`;可用 `GW_CLI_CONFIG` 覆盖位置。已有配置不重复询问。命令参数、`NODE_AUTH_TOKEN` / `GW_HARBOR_USERNAME` / `GW_HARBOR_PASSWORD` 优先于用户配置。
@@ -83,13 +83,13 @@ Token 和密码在终端中不回显。配置文件保存明文凭据,Unix 下
83
83
  # 自动使用当天序号,终端会打印版本和文件名
84
84
  go run ./tools/cli npm package
85
85
  # 或显式指定版本
86
- go run ./tools/cli npm package --version 2026.9.11-2
87
- npx -y --package ./.gw-build/npm/gbits-jszx-gw-cli-2026.9.11-2.tgz gw-cli --version
88
- npx -y --package ./.gw-build/npm/gbits-jszx-gw-cli-2026.9.11-2.tgz gw-cli build all
86
+ go run ./tools/cli npm package --version 2026.09.10.1
87
+ npx -y --package ./.gw-build/npm/gbits-jszx-gw-cli-2026.910.1.tgz gw-cli --version
88
+ npx -y --package ./.gw-build/npm/gbits-jszx-gw-cli-2026.910.1.tgz gw-cli build all
89
89
  # 只检查发布包,不上传、不询问 Token
90
90
  go run ./tools/cli publish npm --dry-run
91
91
  # 真正发布:输入具备 @gbits-jszx/gw-cli 发布权限的 npm Token
92
- go run ./tools/cli publish npm --version 2026.9.11-2
92
+ go run ./tools/cli publish npm --version 2026.09.10.1
93
93
  ```
94
94
 
95
95
  发布后的版本号不可复用。这里的 `gw-cli` 是包内命令名,公网下载始终使用 scoped 包 `@gbits-jszx/gw-cli`。
Binary file
Binary file
package/package.json CHANGED
@@ -9,12 +9,12 @@
9
9
  "files": [
10
10
  "bin"
11
11
  ],
12
- "gwVersion": "2026.9.11-19",
12
+ "gwVersion": "2026.09.11.3",
13
13
  "license": "MIT",
14
14
  "name": "@gbits-jszx/gw-cli",
15
15
  "publishConfig": {
16
16
  "access": "public",
17
17
  "registry": "https://registry.npmjs.org/"
18
18
  },
19
- "version": "2026.9.11-19"
19
+ "version": "2026.911.3"
20
20
  }