Repository navigation
mcpkit v0.8.4 — 依赖地板追平
下游要做什么
go mod tidy。地板抬高对下游是隐式 breaking:不跑就报
updates to go.mod needed,且报错不提真正原因(不是本仓的 API 变了)。
本仓自身代码零改动——只看本仓的 diff 看不出这是一次地板抬高。
抬了哪几块、为什么无行为差异
github.com/oekit/concurrency v0.18.0 → v0.19.0
上游 diff 只动了 2 个包:
retry:抖动 panic 修复——rand.Int63n的契约是 n > 0,而「退避幅度为 0」
是生产可达路径(cfg.Delay=0 / DelayHint 返回 0 / float64→int64 溢出成负数),
旧实现在这些路径上直接 panic。改为钳到 [0, MaxInt64]。syncx:新增全局在飞闸门原语(Gate)+ 说明同步。
breaker 与 async 两个包一字未动。
本仓实际 import 的 oekit/concurrency 子包:async singleflight **
与上游改动相交的:(无)**
github.com/oekit/pkg v0.18.0 → v0.20.0
上游 diff 只动了 5 个包:
errors:纯增量——新增Errorf(格式化 +%w包装,nil-safe)。
New/As/Is/Unwrap/Wrap是同型透传,一字未动。httpjson:退避溢出修复——旧写法base << (attempt-1)在 attempt 较大时
int64 溢出成负数,负数绕过MaxDelay封顶,time.After(负数)立刻返回
⇒ 该轮退避彻底消失。改为乘法 + 饱和封顶。正常 attempt 数(1..20)下
结果逐字相同,差别只在溢出的病态路径。urlguard:纯增量——新增WithExactHosts,未设置时行为与既有完全一致。stringx:仅注释(补TruncEllipsis的 n 语义说明)。pathx:新增包(SanitizeRel等)。
本仓实际 import 的 oekit/pkg 子包:(本仓未直接 import oekit/pkg 的任何子包)
与上游改动相交的:(无)