feat: support packing multiple packages #13

Open
Jvlegod wants to merge 4 commits from Jvlegod/go2spec:feature/pack-multiple-packages into master
Contributor

给 pack 命令新增特性, 能同时生成多个 spec, go2spec pack <xxx@version> <xxx> <xxx> ...

中间有一个pack中断则停止后面的生成.

用法.

# 单包, 自动解析 latest
go2spec pack github.com/a/pkg

# 单包, git_revision 制定版本(原本的这一块儿代码选项没动)
go2spec pack -git_revision v1.2.0 github.com/a/pkg

# 单包, 指定 v 前缀版本
go2spec pack github.com/a/pkg@v1.2.0

# 单包, 指定不带 v 的版本, 会优先找 1.2.0, 找不到再尝试 v1.2.0
go2spec pack github.com/a/pkg@1.2.0

# 多包, 都自动解析 latest
go2spec pack github.com/a/pkg github.com/b/pkg

# 多包, 每个包指定不同版本
go2spec pack github.com/a/pkg@v1.2.0 github.com/b/pkg@2.0.0

# 混用, 有的指定版本, 有的自动 latest
go2spec pack github.com/a/pkg@v1.2.0 github.com/b/pkg

# 兼容旧用法, -git_revision 作为没有 @version 的默认版本 (-git_revision 只能在最前面)
go2spec pack -git_revision v1.2.0 github.com/a/pkg github.com/b/pkg@2.0.0 github.com/c/pkg

# 直接打包 go.mod (目前功能不完善, 见 TODO)
# 主要是解析文件中的 Requires
go2spec pack -list <go.mod 路径> 

目前还新增了检查所有 packages 是否合法的功能, 如果多包打包的时候存在不合法的包, 那么就终止传入的所有包.

整个流程为: 解析所有包的信息, 检查合法性, 开始打包.

7968f1d4fb 是支持多包形式的参数传递功能

3cd7fe3944 是支持 -list 打包 go.mod 功能

ccf379d50b 是增加包的合法性检测功能

1feb87783a 是对多包支持的增强, 增加了伪版本的识别(类似 v0.0.0-20260722051018-856be88baec4)

给 pack 命令新增特性, 能同时生成多个 spec, `go2spec pack <xxx@version> <xxx> <xxx> ...` 中间有一个pack中断则停止后面的生成. 用法. ```bash # 单包, 自动解析 latest go2spec pack github.com/a/pkg # 单包, git_revision 制定版本(原本的这一块儿代码选项没动) go2spec pack -git_revision v1.2.0 github.com/a/pkg # 单包, 指定 v 前缀版本 go2spec pack github.com/a/pkg@v1.2.0 # 单包, 指定不带 v 的版本, 会优先找 1.2.0, 找不到再尝试 v1.2.0 go2spec pack github.com/a/pkg@1.2.0 # 多包, 都自动解析 latest go2spec pack github.com/a/pkg github.com/b/pkg # 多包, 每个包指定不同版本 go2spec pack github.com/a/pkg@v1.2.0 github.com/b/pkg@2.0.0 # 混用, 有的指定版本, 有的自动 latest go2spec pack github.com/a/pkg@v1.2.0 github.com/b/pkg # 兼容旧用法, -git_revision 作为没有 @version 的默认版本 (-git_revision 只能在最前面) go2spec pack -git_revision v1.2.0 github.com/a/pkg github.com/b/pkg@2.0.0 github.com/c/pkg # 直接打包 go.mod (目前功能不完善, 见 TODO) # 主要是解析文件中的 Requires go2spec pack -list <go.mod 路径> ``` 目前还新增了检查所有 packages 是否合法的功能, 如果多包打包的时候存在不合法的包, 那么就终止传入的所有包. 整个流程为: 解析所有包的信息, 检查合法性, 开始打包. [7968f1d4fb](https://git.openruyi.cn/misaka00251/go2spec/commit/7968f1d4fb7453e2cc9e2f2a06fe511c6a1d62b2) 是支持多包形式的参数传递功能 [3cd7fe3944](https://git.openruyi.cn/misaka00251/go2spec/commit/3cd7fe394489b7feaeb50f50eccfd71934a2ee1a) 是支持 -list 打包 go.mod 功能 [ccf379d50b](https://git.openruyi.cn/misaka00251/go2spec/commit/ccf379d50bb6aa1e99a97755b1138135a3b501e1) 是增加包的合法性检测功能 [1feb87783a](https://git.openruyi.cn/misaka00251/go2spec/commit/1feb87783a9b4bafe76493d102da9f4af4144ac6) 是对多包支持的增强, 增加了伪版本的识别(类似 v0.0.0-20260722051018-856be88baec4)
Jvlegod force-pushed feature/pack-multiple-packages from f5d2a42f4d to d2d09d06fd 2026-07-20 05:37:16 +00:00 Compare
Jvlegod added 3 commits 2026-08-12 07:15:50 +00:00
Jvlegod force-pushed feature/pack-multiple-packages from d2d09d06fd to ccf379d50b 2026-08-12 07:15:50 +00:00 Compare
Jvlegod added 1 commit 2026-08-13 05:59:02 +00:00
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u https://git.oerv.ac.cn/Jvlegod/go2spec feature/pack-multiple-packages:Jvlegod-feature/pack-multiple-packages
git checkout Jvlegod-feature/pack-multiple-packages
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: misaka00251/go2spec#13