Skip to content

chore(sdk/go): deprecate the in-tree Go SDK and stop requiring Go bindings in core PRs #5241

Open

Description

@rhuss

Part of #5031.

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.

Activity

  1. added
    state:acceptedA maintainer decided OpenShell should pursue this issue
    and removed
    state:triage-neededOpened without agent diagnostics and needs triage
    on Nov 4, 2026
  2. elezar commented on Nov 4, 2026

    @elezar
    Member

    📋 triage-agent

    Assessment: technically valid, sufficiently scoped. Part of #5031.

    Verified against main:

    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.

  3. elezar commented on Nov 4, 2026

    @elezar
    Member

    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.

  4. rhuss commented on Nov 4, 2026

    @rhuss
    ContributorAuthor

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    state:acceptedA maintainer decided OpenShell should pursue this issue

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions