Four drift fences for tests/contract/ (+ test.yml clean-container lane + pre-commit wiring)
维护者通常 1 天内回复
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 25/100
- Issue 类型
- 功能
- 描述清晰度
- 描述清楚
- 活跃度
- 活跃
- 技术栈
- github-actions, go
- 领域
- ci-cd, testing-qa
调研方向
Start by reading the existing contract checks under tests/contract/, test.yml, and hooks/pre-commit; inspect packaging/build-inputs.json for the pinned Go version and the current SSID matcher tests. Add the four specified drift fences and their shared SSID fixture, then verify the Go suite passes both locally and in the clean golang:1.26.8-bookworm lane. Done means each gate catches the described drift without widening the clean-container check to mask failures.
由索引模型根据 Issue 内容生成。
描述
Commissioned hardening of the contract estate. Four fences, one PR, one commit each:
- check-changelog-fragments.py — every
changelog.d/*.mdmust reference a real PR/issue number (filename and body in agreement), with no placeholder text. Live specimen:changelog.d/vm-campaign.added.mdcarries no number at all (its change is merged PR #704). The failure class this stops: a fragment that cites a foreign PR's number (#631/#743 class) or a placeholder, which folds a wrong or dead link into the release notes. - check-toolchain-parity.py extension — every
go.modgodirective must be <= the manifest's pinned.go.version(packaging/build-inputs.json, currently 1.26.8). Today's tree is clean (max directive: 1.26.0); the fence catches future drift. - check-ssid-naming — the SSID matcher (
hasTollGateSSID) must accept bareTollGate-/Net4sats-AND single-!-decorated forms, case-insensitively, with a double!rejected — pinned by a committed fixture table shared by the Go unit test and the contract check. The SSID contract broke twice (#618 — brand-blind matcher; #706 — the!decoration whose reader half is specified but unlanded). This lands #706's reader-side tolerance so the fixture table is green on merge; #706 then only needs its writer/installer half. - test.yml clean-container job — the module suite in pristine
golang:1.26.8-bookworm. A pass there but failure on ubuntu-latest runners (or vice versa) is hidden host-state coupling (the/etc/tollgateclass): runner-image packages, $HOME leftovers, injected env or caches. Each failure gets its own issue; the fence is never widened to paper over one.
Plus wiring: hooks/pre-commit gains the fragment-number and SSID-naming gates and go.mod triggers on toolchain parity.
- 主要语言
- Go
- 星标
- 12
- 派生
- 14
- 平均合并
- 3 天 21 小时
- 30 天内合并 PR
- 269
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
OpenTollGate/tollgate-module-basic-go 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 72/100
OpenTollGate/tollgate-module-basic-go#1135 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 72/100
OpenTollGate/tollgate-module-basic-go#1122 ·
维护者通常 1 天内回复
-
changelog: dependency-security sweep missing from [Unreleased] [Amperstrand fork #105 review debt]未关闭
难度 1/5 1 小时以内 新手友好度 72/100
OpenTollGate/tollgate-module-basic-go#1055 · 1 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
OpenTollGate/tollgate-module-basic-go#1027 · 1 条评论 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 72/100
OpenTollGate/tollgate-module-basic-go#1026 · 1 条评论 ·
维护者通常 1 天内回复
查看 OpenTollGate/tollgate-module-basic-go 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 82/100
维护者通常 2 天内回复
-
test-failure
难度 2/5 1-3 小时 新手友好度 72/100
teramoby/speedle-plus#129 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 76/100
containerd/containerd#14485 ·
维护者通常 1 天内回复
-
bug needs-triage
难度 2/5 1-3 小时 新手友好度 76/100
维护者通常 1 天内回复