Repository navigation
Conversation
The Python SDK now releases from ai-openshell/sdk-python, and its first release there is openshell 0.1.8. PyPI never accepts a version twice, so core must not publish 0.1.8 when it tags v0.1.8. openshell 0.1.7 stays the last core-built wheel. Stable and prerelease releases no longer build the wheel, attach it to the GitHub Release, include it in the checksums and attestations, or publish it to PyPI. wheel-publish.yml and the publish-pypi job are removed, along with the python-version plumbing that only fed them. The rolling dev release keeps its wheel, and PR checks still build the SDK, until the SDK sources leave core. Refs #5287 Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
pimlock
requested review from
a team,
derekwaynecarr,
mrunalp and
sjenning
as code owners
November 6, 2026 21:44
|
🌿 Preview your docs: https://nvidia-preview-pr-5350.docs.buildwithfern.com/openshell |
Compatibility review (advisory)New or updated breaking changes; see the full report for all findings. 1. python-sdk — No explicit risk acceptance foundStable and prerelease GitHub Releases previously supplied an openshell wheel and checksum; the candidate removes both.
Review details
Advisory review; publication gates are unchanged. |
ai-openshell/sdk-python imported the Python SDK at v0.1.7, and nothing under the moved paths has changed in core since. A Python SDK Freeze job, like the Go SDK Freeze job, fails PRs that add or change those files, so SDK changes go to sdk-python instead of being lost here. The pathspecs match exactly the files the import moved: the package under python/openshell, the SDK tests at the python/ root, and the proto and wheel scripts. Core-only tests under python/ and the shared root pyproject.toml and uv.lock stay editable. Deletions are allowed for the removal PR. Refs #5287 Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
The release, RPM migration, and E2E gateway fixture tests only test core tooling. Move them next to the code they test and run them from a new test:core-python task, so the Python SDK Freeze check can cover all of python/ instead of listing the SDK files one by one. Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
Signed-off-by: Piotr Mlocek <pmlocek@nvidia.com>
This was referenced Nov 8, 2026
|
Label |
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Deprecates the Python SDK in core. Core stops publishing the
openshellPython package to PyPI and stops attaching the wheel to stable and prerelease GitHub Releases. The Python SDK releases from ai-openshell/sdk-python from now on, and its first release there is0.1.8. PyPI never accepts the same version twice. If this isn't merged before core tagsv0.1.8, core publishes0.1.8first and sdk-python can't.openshell0.1.7stays the last core-built wheel. A new branch check also freezes the SDK sources in core, asGo SDK Freezedoes forsdk/go, so SDK changes go to sdk-python instead of being lost here.Related Issue
Refs #5287. This brings two cutover steps forward so they land before
v0.1.8: removing PyPI publishing (phase 5) and the freeze check (phase 3).Changes
release-build.yml: remove thebuild-python-wheeljob and thepython_versionoutput.release-publish.yml:openshell-checksums-sha256.txtand the attestations.publish-pypijob and its entry in Check Publication.Delete
wheel-publish.yml.release.ymlandrelease-prerelease.yml: stop passingpython-version.Python SDK Freeze (
branch-checks.yml): fails PRs that add or change the files sdk-python imported.python/, plustasks/scripts/generate_python_proto.pyandtasks/scripts/verify-python-wheel.py. That is exactly the imported tree.pyproject.tomlanduv.lock.Core-only tests move out of
python/, next to the code they test, so the freeze needs no exclusion list:release_formula_test.pyandrelease_tooling_test.py→tasks/scripts/rpm_gateway_config_migration_test.py→deploy/rpm/migrate_gateway_config_test.pygateway_config_fixture_test.py→e2e/configs/gateway/A new hidden
test:python-scriptstask runs them. It is part ofmise run testand of the Python job in Branch Checks. Ruff and ty cover the two new directories.AGENTS.mdandCONTRIBUTING.md: mark the SDK as frozen and point to sdk-python.CI.mdand therelease-openshellandrelease-captainskills: describe the new ownership, and drop the PyPI check from the release captain steps.Not in this PR: the rolling
devrelease keeps its dev wheel, and PR checks still build and test the SDK. Both go whenpython/leaves core.After merge, an admin adds
Python SDK Freezetomain's required checks.Follow-ups outside this repository:
wheel-publish.yml, environmentpypi) can be removed on PyPI once this merges. Thepypienvironment in this repository is then unused.Release Notes
The
openshellPython SDK is now published from ai-openshell/sdk-python instead of this repository, starting with0.1.8. Install it the same way, withpip install openshell. Core GitHub Releases no longer attach theopenshellwheel or its checksum. Install from PyPI instead of downloading the wheel from the release.Testing
mise run pre-commitpasses (the commit hook)mise run test:python-scripts: the 28 moved tests pass.python/openshell/sandbox.py, and ignore the test moves and edits to the moved tests.actionlinton the changed workflows. The only findings are the existingconcurrency.queuekey, which actionlint doesn't know yet.v0.1.8-pre.Nprerelease.Checklist