You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
chore(sdk/go): deprecate the in-tree Go SDK and stop requiring Go bindings in core PRs #5241
The Go SDK moved to ai-openshell/sdk-go. The freeze commit was 8ed8bf0, and sdk-go imports its history in ai-openshell/sdk-go#3. Until sdk/go/ is removed from core, two things are still wrong here:
Every PR that changes proto/ must regenerate sdk/go/proto/ because of the Go job in Branch Checks (mise run go:ci with go:proto:check). Eight open PRs carry such changes now, and some also edit hand-written SDK code (for example refactor(sdk)!: unify wait_ready and make it succeed only on Ready #5226), which would then be lost to sdk-go.
Nothing stops new Go SDK changes from merging into the frozen directory.
Scope
Mark github.com/NVIDIA/OpenShell/sdk/go deprecated in sdk/go/go.mod, so go get and pkg.go.dev point to the new module from the next sdk/go/vX.Y.Z tag on.
Replace sdk/go/README.md with a moved notice and migration steps.
Remove the go job from Branch Checks and go:ci from the ci aggregate.
Add a Branch Checks job that fails when a PR adds or changes files under sdk/go/. Deletions and the two notice files stay allowed, so the removal PR passes.
The directory itself, the Go tasks, CodeQL Go, and the sdk/go tag workflows are removed in a separate issue once the final deprecated tag exists.
ai-openshell/sdk-go exists and freeze commit 8ed8bf0c9 is present.
Open point for the implementer: define the freeze job's exemptions precisely (deletions, the README/go.mod notice changes, and this PR itself) so the deprecation PR and the later removal PR pass.
No User Story is present; this is a maintainer-authored chore tracked under #5031, so first-hand attestation is not needed. No spike needed.
Next human decision: a maintainer to record disposition. I did not change labels: state:validated has no description in the repo, so I can't confirm it is the right replacement for state:triage-needed.
One note: If we add tooling to fail on changes under sdk/go we will need to add exceptions or ignore this for the deprecation PR and follow-up removals. That should be fine though.
Agree, I think that #5245 takes already care about this (at least for removals, as this will be one of my next PRs). Regardless what, I expect this to be only a temporary transitional state.
Activity
elezar commentedon Nov 4, 2026
Assessment: technically valid, sufficiently scoped. Part of #5031.
Verified against
main:sdk/go/go.modhas no deprecation comment yet.branch-checks.ymlstill has thegojob runningmise run go:ci(includesgo:proto:check), so proto-changing PRs must still regeneratesdk/go/proto/. Open PRs touchingsdk/goorproto/include refactor(sdk)!: unify wait_ready and make it succeed only on Ready #5226, fix(sdk/go): honor gateway-configured oidc scopes in interactive flows #3284, fix(sdk/go): honor explicitly-set zero option values in oidc defaults #3235, fix(sdk/go): re-read edge token on every request #4914 and feat(go-sdk): WatchLogs #3662.ai-openshell/sdk-goexists and freeze commit8ed8bf0c9is present.Open point for the implementer: define the freeze job's exemptions precisely (deletions, the README/go.mod notice changes, and this PR itself) so the deprecation PR and the later removal PR pass.
No User Story is present; this is a maintainer-authored chore tracked under #5031, so first-hand attestation is not needed. No spike needed.
Next human decision: a maintainer to record disposition. I did not change labels:
state:validatedhas no description in the repo, so I can't confirm it is the right replacement forstate:triage-needed.elezar commentedon Nov 4, 2026
One note: If we add tooling to fail on changes under
sdk/gowe will need to add exceptions or ignore this for the deprecation PR and follow-up removals. That should be fine though.rhuss commentedon Nov 4, 2026
Agree, I think that #5245 takes already care about this (at least for removals, as this will be one of my next PRs). Regardless what, I expect this to be only a temporary transitional state.