Skip to content

feat!: make the SDK a standalone module at github.com/ai-openshell/sdk-go - #4

Merged
Gkrumbach07 merged 9 commits into
mainfrom
import/standalone
Nov 4, 2026
Merged

Gkrumbach07 merged 9 commits into
mainfrom
import/standalone

Conversation

@rhuss

@rhuss rhuss commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Make the imported SDK a standalone Go module at github.com/ai-openshell/sdk-go, with bindings generated from core v0.1.7. Stacked on #3 (history import); review after #3 is merged.

  • Module path: every github.com/NVIDIA/OpenShell/sdk/go reference becomes github.com/ai-openshell/sdk-go (go.mod, imports, buf options, docs). Packages and APIs are unchanged.
  • Bindings: buf.gen.yaml reads core's proto/ through a git input pinned to v0.1.7. That tag line is the only pin; mise run core:version prints it. Regenerating from v0.1.7 changes no file, because core's proto/ at the freeze equals v0.1.7.
  • Tasks: mise.toml is self-contained (no core checkout): fmt, lint, build, test, proto:gen, proto:check, conformance:check, docs:check, and ci.
  • Fixtures: the shared conformance fixtures are vendored next to their tests instead of being read through ../../../../conformance. conformance:check compares them with core at the pinned tag. oidc-token-bundle.json is newer than v0.1.7 (fix(sdk/go): use the CLI oidc_token.json format NVIDIA/OpenShell#4830), so the check skips it with a warning until the pin includes it.
  • CI: .github/workflows/ci.yml runs mise run ci on pull requests and pushes to main.
  • Repository: README and LICENSE point at this repository; migration scripts live in hack/migration/ (history extraction, tree verification, PR porting, and the recorded freeze commit).

Breaking change for consumers

The import path changes. Consumers rewrite their imports and fetch the new module:

grep -rl --include='*.go' --include=go.mod 'github.com/NVIDIA/OpenShell/sdk/go' . | xargs perl -pi -e 's#github.com/NVIDIA/OpenShell/sdk/go#github.com/ai-openshell/sdk-go#g'
go get github.com/ai-openshell/sdk-go@latest && go mod tidy

The first SDK release follows core: v0.1.7 is tagged once this PR and the release automation are in place.

Testing

  • mise run ci passes locally: format, lint, build, tests (race), proto:check and conformance:check against v0.1.7, docs check.
  • git grep 'NVIDIA/OpenShell/sdk/go' finds only the README's migration section and hack/migration/.

Part of NVIDIA/OpenShell#5031.

rhuss added 9 commits November 4, 2026 08:59
Add the hack/migration and hack/automation directories with their READMEs,
the filter-repo message rules, and the history extraction and tree
verification scripts used for the import from NVIDIA/OpenShell.

Signed-off-by: Roland Huß <rhuss@redhat.com>
Formats the sdk/go commits of an open NVIDIA/OpenShell PR as patches,
rewrites the module path inside them, and applies them with git am on
port/<n>. Authors, dates, and the original Signed-off-by trailers are
kept; the porter's format.signoff setting is ignored. Lines a 3-way
merge leaves with the old path are rewritten, lines already in the base
are not. Pushing and opening the PR needs --push.

Signed-off-by: Roland Huß <rhuss@redhat.com>
Signed-off-by: Roland Huß <rhuss@redhat.com>
Rewrite every github.com/NVIDIA/OpenShell/sdk/go import, the go.mod module line, the buf M options, and the docs links.

Signed-off-by: Roland Huß <rhuss@redhat.com>
…ntained

buf.gen.yaml reads proto/ from NVIDIA/OpenShell at the tag in inputs[0].tag (v0.1.6), so no core checkout is needed. mise.toml carries its own tools and lockfile and adds format:check and core:version. Regenerating at v0.1.6 changes no bindings.

Signed-off-by: Roland Huß <rhuss@redhat.com>
Add the go get line, a supported core versions note, and a migration section for consumers of github.com/NVIDIA/OpenShell/sdk/go. Docs links move to https://ai-openshell.github.io/sdk-go/. Copy LICENSE from core and ignore coverage.out and the built book.

Signed-off-by: Roland Huß <rhuss@redhat.com>
Signed-off-by: Roland Huß <rhuss@redhat.com>
The OAuth client-credentials and OIDC token-bundle fixtures live in
core's sdk/conformance/, which the tests reached through ../../../..
paths. Copy them next to the tests that read them, and check in
conformance:check that they match core at the pinned tag. A fixture
the pinned tag does not have yet (oidc-token-bundle.json came with
NVIDIA/OpenShell#4830 after v0.1.7) is reported and skipped until the
pin includes it.

Signed-off-by: Roland Huß <rhuss@redhat.com>
v0.1.7 is the stable core release at the freeze. Its proto/ equals
proto/ at the freeze commit, so the regenerated bindings do not change.

Signed-off-by: Roland Huß <rhuss@redhat.com>
Base automatically changed from import/merge to main November 4, 2026 10:50
@rhuss

rhuss commented Nov 4, 2026

Copy link
Copy Markdown
Contributor Author

@pimlock @Gkrumbach07 the Go SDK history is in this repository now (#3 merged). This PR is the next step: it makes the SDK a standalone module at github.com/ai-openshell/sdk-go, with bindings generated from core v0.1.7. CI is green.

Could one of you review and approve it? Your approval also shows that the repository rules work without an admin: a code owner other than the last pusher has to approve. Two stacked drafts follow, governance (#5) and release automation with E2E (#6), and the three ported core PRs go up right after this one merges.

@Gkrumbach07 Gkrumbach07 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a few small non blocking follow ups

  • The docs links are broken for now. The README sends 26 links to ai-openshell.github.io/sdk-go, which returns 404 because no docs deploy workflow exists yet. The old site still works. Either add the deploy workflow or keep the old links until it does.

  • hack/automation/README.md lists scripts and workflows that don’t exist yet. It should say they’re planned.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants