Skip to content

feat: languages.json schema 校验器 + 修 ansible 误标 planned (v0.6.4) - #10

Merged
loong10k merged 1 commit into
mainfrom
feat/languages-schema-validator-v0.6.4
Sep 22, 2026
Merged

loong10k merged 1 commit into
mainfrom
feat/languages-schema-validator-v0.6.4

Conversation

@loong10k

Copy link
Copy Markdown
Contributor

What

  • scripts/validate_languages_json.py:11 条 schema + 一致性规则
  • tests/test_validate_languages_json.py:10 个反例测试覆盖每条规则
  • CI 加 step:python3 scripts/validate_languages_json.py
  • languages.json:ansible status 从 planned 升 stable(since V0.3 保留)
  • docs/LANGUAGES.md 重生成:53 → 54 条 stable/beta
  • tests/run_all.py:补 ansible-lint 进入 project_level 白名单
  • spec: languages-registry-contract (3 Requirements) 合入

Bug found by validator

languages.json 历史遗留:ansible 是 planned 但有 lint (ansible-lint) 与 format。
升 stable 真实修复了这条 hidden violation;run_all.py 的白名单同步补 ansible-lint。

Verification

  • unittest 24/24
  • run_all 141/141/0
  • validator 0 errors (baseline 11 rules pass)
  • git diff --check clean

M5 校验器在测试过程中**自捕到一个真实历史遗留 bug**:languages.json 的
ansible 状态是 planned 但 lint/format 都有内容(ansible-lint),应为 stable。

变更:
- 新增 scripts/validate_languages_json.py(11 条规则,纯函数 + CLI)
- 新增 tests/test_validate_languages_json.py(10 个反例测试,断言 baseline)
- CI 加 step:python3 scripts/validate_languages_json.py
- languages.json:ansible status 从 planned 升 stable(since V0.3 保留)
- docs/LANGUAGES.md:重生成;数 53 条 → 54 条 stable/beta
- tests/run_all.py:补 ansible-lint 进入 project_level 白名单(之前
  被 ansible 被标为 planned 而掩盖;升 stable 后必须显式支持)
- spec: languages-registry-contract (3 Requirements) 已合入

校验:unittest 24/24 + run_all 141/141/0 + validator 0 errors + diff clean

实现定位:
- 校验器纯函数 check(): scripts/validate_languages_json.py:34
- 11 条规则的执行顺序与覆盖见 design.md §Decision
- 任何 CI 提交新条目违反规则会立即 1 行 ERROR 输出并 exit 1
@loong10k loong10k added the enhancement New feature or request label Sep 22, 2026
@loong10k
loong10k merged commit de0044d into main Sep 22, 2026
1 check passed
@loong10k
loong10k deleted the feat/languages-schema-validator-v0.6.4 branch September 22, 2026 06:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant