Skip to content

ci: PyPI trusted publisher for sdk-python #9

Closed

Description

@pimlock

Sub-issue of #8. This needs an owner of the openshell project on PyPI.

Why

PyPI trusts only core's release workflow to publish openshell today. #8 publishes from sdk-python's release.yml through trusted publishing (OIDC), so PyPI needs a second trusted publisher for this repository. No API token is created or stored anywhere.

Steps

1. Add the trusted publisher on PyPI

Go to pypi.org → openshell → Settings → Publishing → Add a new publisher → GitHub.

Field Value
Owner ai-openshell
Repository name sdk-python
Workflow name release.yml
Environment name pypi

Don't remove core's existing publisher. Core may still publish one more wheel (decision 1 in #8). It is removed in NVIDIA/OpenShell#5287, phase 5.

2. Add the trusted publisher on TestPyPI

TestPyPI has an openshell project too (only 0.0.0.dev0). Its owners are separate from PyPI's.

3. Check the project's people

Under Collaborators on the PyPI project, check who can manage it once publishing moves here. Consider adding an SDK maintainer as a second owner, so the project doesn't depend on one account. Every owner needs 2FA.

Done when

  • pypi.org lists the publisher ai-openshell/sdk-python, release.yml, environment pypi. Core's publisher is unchanged.
  • test.pypi.org lists the same publisher with environment testpypi, or this issue says why not.

Activity

  1. self-assigned this
    on Nov 6, 2026
  2. changed the title [-]Python SDK migration: PyPI trusted publisher for sdk-python[/-] [+]ci: PyPI trusted publisher for sdk-python[/+] on Nov 6, 2026
  3. pimlock commented on Nov 8, 2026

    @pimlock
    ContributorAuthor

    Trusted publisher has now been added:

    Image
  4. pimlock commented on Nov 9, 2026

    @pimlock
    ContributorAuthor

    The environment is now in place as well: #10
    We decided to skip testpypi for now.

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions