textfsm 0.2.1 → 0.2.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 83bccc705a542dc12d22b1d207d02ab788a6593b27600b387af652b765f384a3
4
- data.tar.gz: 8d01a3b8b44ff7e9852b274b827738c76e01e1627110b4f2b1909ef8153cb1fd
3
+ metadata.gz: 32964a356a1628ef07df499f93d1e9fdc52f7884826d3a80e7ee339aefe3c51b
4
+ data.tar.gz: 63572a7dcab089698adcaf10c216f3867513edae6f49d4197b8a9aa426b238c2
5
5
  SHA512:
6
- metadata.gz: ff5180f0c3c3a307399af1eab10c3489c9ac717a8907cf8e79d8161da1717356fedab25c0370e8f9b9d26f8425d3c541ef9891e639eb89ce0ece7b9feed66258
7
- data.tar.gz: e57c4ad056cf000b4495741b3dc12c3b16999259c85accf960823b66f53e49975ace6a4adef8f04e72802306e33609c86e1de8b7680614d7646807dd6bbd2dc5
6
+ metadata.gz: 430368496eb8b805cad3f944a7d9678286d69a34bb1b2c625c89cc326463df86e7e6861142a7cc9fbf9849777320bd203ca2d996212a8c84f6b9dafdc871a6d2
7
+ data.tar.gz: 1447c9de34de499d88ae5a9f8906148353710b410312103777d43a1691345987e112603530a236eb441acf83ea384bda2973753deb9a767519257fc768d672d3
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # 变更记录
2
2
 
3
+ ## 0.2.2 (2026-10-05)
4
+
5
+ - 启用标签触发的 RubyGems OIDC 可信发布;完整 CI 通过后复用同一产物并下载核对。
6
+
3
7
  ## 0.2.1(2026-10-01)
4
8
 
5
9
  - 解析器复用深度冻结的记录快照,`Fillup` 通过替换记录回填,减少分段解析和读取结果的重复复制。
data/README.md CHANGED
@@ -31,7 +31,7 @@ gem "textfsm", path: "/path/to/textfsm"
31
31
  ```sh
32
32
  bundle install
33
33
  bundle exec rake build
34
- gem install ./pkg/textfsm-0.2.1.gem
34
+ gem install ./pkg/textfsm-0.2.2.gem
35
35
  ```
36
36
 
37
37
  源码仓库:[gatework/textfsm](https://github.com/gatework/textfsm)。
@@ -52,7 +52,7 @@ template = <<~'FSM'
52
52
  FSM
53
53
 
54
54
  text = <<~TEXT
55
- GigabitEthernet0/0 192.0.2.1 up up
55
+ GigabitEthernet0/0 192.0.2.2 up up
56
56
  GigabitEthernet0/1 unassigned administratively down down
57
57
  TEXT
58
58
 
@@ -60,12 +60,12 @@ fsm = TextFSM::Parser.new(template)
60
60
  p fsm.header
61
61
  # => ["INTERFACE", "ADDRESS", "STATUS", "PROTOCOL"]
62
62
  p fsm.parse(text)
63
- # => [["GigabitEthernet0/0", "192.0.2.1", "up", "up"],
63
+ # => [["GigabitEthernet0/0", "192.0.2.2", "up", "up"],
64
64
  # ["GigabitEthernet0/1", "unassigned", "administratively down", "down"]]
65
65
 
66
66
  fsm.reset
67
67
  p fsm.parse_hashes(text)
68
- # => [{"INTERFACE"=>"GigabitEthernet0/0", "ADDRESS"=>"192.0.2.1",
68
+ # => [{"INTERFACE"=>"GigabitEthernet0/0", "ADDRESS"=>"192.0.2.2",
69
69
  # "STATUS"=>"up", "PROTOCOL"=>"up"}, ...]
70
70
  ```
71
71
 
@@ -238,37 +238,12 @@ parser = TextFSM::Parser.new(template, options: { "Uppercase" => Uppercase })
238
238
 
239
239
  ## 发布到 RubyGems
240
240
 
241
- 发布入口是 `script/release.rb`,也可通过 Rake 运行。直接执行脚本默认只检查和构建:
241
+ 发布使用标签触发的 OIDC Trusted Publishing,不保存长期 API key。完整 Ruby CI 矩阵通过后,
242
+ 工作流验证并上传同次 CI 的 gem,再核对 RubyGems 下载和 GitHub Release 的 SHA256。
243
+ 流程、账号绑定及失败恢复见 [发布说明](docs/RELEASING.md)。
242
244
 
243
- ```sh
244
- bundle install
245
- bundle exec rake release:check
246
- # 等价于 bundle exec ruby script/release.rb --dry-run
247
- ```
248
-
249
- 检查模式可以在尚未提交的工作区运行,不访问 RubyGems,也不会创建提交或标签。正式发布需要工作区干净,所有入包文件已提交到 Git:
250
-
251
- 1. 修改 `lib/textfsm/version.rb` 中的版本号。新版本使用 RubyGems 版本格式,例如 `0.2.2` 或 `0.3.0.pre.1`。
252
- 2. 运行 `bundle install` 更新 `Gemfile.lock`,再运行 `bundle exec rake release:check`。
253
- 3. 提交并推送本次版本的源码与锁文件。
254
- 4. 使用自己的 RubyGems 账号发布:
255
-
256
- ```sh
257
- gem signin --host https://rubygems.org
258
- bundle exec rake release
259
- # 等价于 bundle exec ruby script/release.rb --push
260
- ```
261
-
262
- 凭据由 RubyGems 管理;自动化环境可通过密钥管理服务注入 `GEM_HOST_API_KEY`,密钥需有 `push_rubygem` 权限。gemspec 声明 `rubygems_mfa_required: true`,发布者需在 RubyGems 账号启用 MFA;需要验证时由 `gem push` 处理交互。不要把密钥放进仓库或发布脚本。详见 [RubyGems 发布指南](https://guides.rubygems.org/publishing/)和 [API key scopes](https://guides.rubygems.org/api-key-scopes/)。
263
-
264
- 正式发布复用 `rake verify` 的完整检查:执行测试、RuboCop 和构建,再将 gem 复制到独立临时目录,由 `script/verify_package.rb` 验证安装后的库、CLI 和文件内容。候选包在验证前后必须保持同一 SHA256,HEAD 和工作区也必须保持不变,随后上传该候选包到 `https://rubygems.org`,读取版本元数据核对 SHA256。输出包含源码提交号和包校验值;相同版本、相同校验值已发布时直接成功,相同版本内容不同时拒绝覆盖。构建使用提交时间作为 `SOURCE_DATE_EPOCH`,便于同一提交重复构建。
265
-
266
- 上传后只重试查询,不自动重复上传。若提示结果未确认,先检查 RubyGems 上该版本及其校验值。脚本不创建或推送 Git 提交和标签;RubyGems 核对成功后,可按已发布版本标记源码,例如:
267
-
268
- ```sh
269
- git tag -a v0.2.1 -m "Release v0.2.1"
270
- git push origin v0.2.1
271
- ```
245
+ 本地预检可执行 `bundle exec ruby script/release.rb --dry-run --artifact pkg/textfsm-0.2.2.gem`;
246
+ 已有产物路径不会重新构建。更新版本及 CHANGELOG、提交并确认远端 CI 后推送对应版本标签。
272
247
 
273
248
  ## 兼容范围与验证
274
249
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TextFSM
4
- VERSION = "0.2.1"
4
+ VERSION = "0.2.2"
5
5
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: textfsm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - TextFSM Ruby contributors
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2026-10-01 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: json
@@ -117,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
117
117
  - !ruby/object:Gem::Version
118
118
  version: '0'
119
119
  requirements: []
120
- rubygems_version: 4.0.12
120
+ rubygems_version: 4.0.20
121
121
  specification_version: 4
122
122
  summary: A Ruby state machine for parsing text with TextFSM templates
123
123
  test_files: []