PR #1781 annotated every remaining use of a deprecated API with //nolint:staticcheck. Each annotation is deliberate, but all of them are debt. This issue tracks removing them. The sites, grouped by what unblocks each:
Actionable now
- New Relic go-agent v2 → v3 —
pkg/db/db.go and internal/store/spicedb/relation_repository.go import the deprecated v2 package. Migrating means the v3 import path and the reworked transaction/segment APIs at every telemetry call site.
- e2e billing tests —
test/e2e/regression/billing_test.go uses the deprecated UpdateBillingAccountLimits RPC as a setup tool. UpdateBillingAccountDetails sets the same credit_min (note it also writes due_in_days).
Blocked on the API dropping the deprecated request fields
Handler fallbacks that must stay while old clients send the old shapes:
internal/api/v1beta1connect/billing_usage.go — since (superseded by start_range)
internal/api/v1beta1connect/billing_subscription.go — flat plan/immediate (superseded by plan_change)
internal/api/v1beta1connect/permission.go — namespace/name body fields (superseded by key)
internal/api/v1beta1connect/permission_check.go — split object fields (superseded by resource)
cmd/serve.go — the FullyConsistent config flag (superseded by consistency)
cmd/seed.go — seed data sends the deprecated permission body shape
Blocked on a lossless replacement for the deprecated response fields
internal/reconcile/permission_reconciler.go, cmd/permission.go, and the assertions in test/e2e/regression/service_registration_test.go read the deprecated namespace/name response fields. The replacement key round-trips lossily today: a namespace without a slash gains a /default suffix through SplitNamespaceResource, and names containing dots fail to split. These readers can migrate once key (or another field) carries the exact values.
PR #1781 annotated every remaining use of a deprecated API with
//nolint:staticcheck. Each annotation is deliberate, but all of them are debt. This issue tracks removing them. The sites, grouped by what unblocks each:Actionable now
pkg/db/db.goandinternal/store/spicedb/relation_repository.goimport the deprecated v2 package. Migrating means the v3 import path and the reworked transaction/segment APIs at every telemetry call site.test/e2e/regression/billing_test.gouses the deprecatedUpdateBillingAccountLimitsRPC as a setup tool.UpdateBillingAccountDetailssets the samecredit_min(note it also writesdue_in_days).Blocked on the API dropping the deprecated request fields
Handler fallbacks that must stay while old clients send the old shapes:
internal/api/v1beta1connect/billing_usage.go—since(superseded bystart_range)internal/api/v1beta1connect/billing_subscription.go— flatplan/immediate(superseded byplan_change)internal/api/v1beta1connect/permission.go—namespace/namebody fields (superseded bykey)internal/api/v1beta1connect/permission_check.go— split object fields (superseded byresource)cmd/serve.go— theFullyConsistentconfig flag (superseded byconsistency)cmd/seed.go— seed data sends the deprecated permission body shapeBlocked on a lossless replacement for the deprecated response fields
internal/reconcile/permission_reconciler.go,cmd/permission.go, and the assertions intest/e2e/regression/service_registration_test.goread the deprecatednamespace/nameresponse fields. The replacementkeyround-trips lossily today: a namespace without a slash gains a/defaultsuffix throughSplitNamespaceResource, and names containing dots fail to split. These readers can migrate oncekey(or another field) carries the exact values.