Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Four drift fences for tests/contract/ (+ test.yml clean-container lane + pre-commit wiring)

未关闭
#767 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

@Amperstrand 已经在做这个了。

开始于 2026年10月8日。

  • #775 来自 @Amperstrand —— 未关闭

评估

难度
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:

  1. check-changelog-fragments.py — every changelog.d/*.md must reference a real PR/issue number (filename and body in agreement), with no placeholder text. Live specimen: changelog.d/vm-campaign.added.md carries 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.
  2. check-toolchain-parity.py extension — every go.mod go directive 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.
  3. check-ssid-naming — the SSID matcher (hasTollGateSSID) must accept bare TollGate-/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.
  4. 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/tollgate class): 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 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

OpenTollGate/tollgate-module-basic-go 的其他 Issue

查看 OpenTollGate/tollgate-module-basic-go 的全部 Issue

相似的 Issue

更多 Go Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。