Files
contracts/README.md
T
what 0ab301890e docs: 新增 README,说明 v1-legacy 分支的能力范围与安装方式
记录这条老线跟 master 的差异,以及依赖方(如 zg-estate)应该怎么锁定/更新
到这个分支,避免误跑 go get -u 拉到 master 上的破坏性改动。
2026-08-20 17:20:35 +08:00

2.3 KiB
Raw Blame History

git.fsdpf.net/go/contractsv1-legacy

老架构下跨服务共享的契约层:HTTP/gRPC/队列/任务调度/定时任务/MQTT/WebSocket 等各类服务的接口 定义,以及资源系统(resource.go)、用户审批(user_approval.go)等业务相关契约,供 framework(服务编排/启动)和各业务项目共同依赖,避免互相直接 import 造成循环依赖。

这个分支有什么

  • resource.go/orm.go:跟老版 req/orm 配套的资源、ORM 相关契约。
  • http.go/grpc.go/grpcall.go/server.goHTTP/gRPC 服务契约。
  • job.go/cron.go/queue.go:任务调度、定时任务、消息队列契约。
  • mqtt.go/ws.goMQTT、WebSocket 契约。
  • jwt_auth.go/captcha.go/user_approval.go:鉴权、验证码、用户审批相关契约。
  • res_event.go:资源变更事件契约(新架构里拆成了 res_watcher.go/event_stream.go,接口 形状不一样)。
  • res_type/:资源类型相关的独立子包(新架构里已经不存在,能力并到别处了)。
  • base//support/:基础类型和辅助工具。

这个分支的定位

给还在维护、但还没迁移到新架构(master 分支上新增的 di.go DI 辅助函数、app.gocondflow.gogobridge.gomcp.gores_virtual_table.go/res_watcher.go 等)的老项目用, 比如 zg-estate(直接依赖)。只接受独立于新架构的 bug 修复。

依赖方怎么安装/更新

Go modules 不会记住某个版本是从哪个分支解析出来的,go.mod/go.sum 里存的只是一次性解析出 的 commit 伪版本号,分支上有新提交也不会自动同步。

首次锁定,或者要拿这个分支上新提交的更新,都执行同一条命令:

go get git.fsdpf.net/go/contracts@v1-legacy

禁止跑裸的 go get -u(或者 go get git.fsdpf.net/go/contracts@latest)——这个仓库没有打 语义化 tag,Go 对"最新版本"的解析规则是退回到仓库默认分支(master)的 HEAD,会把新架构的 破坏性改动一起拉进来,而不是停留在这个分支上。同时注意这条老线依赖的 git.fsdpf.net/go/db/ git.fsdpf.net/go/req/git.fsdpf.net/go/orm 也要一起锁定在它们各自的 v1-legacy 分支, 不能新老混用。