The SDK is developed on GitHub and published to PyPI only through intentional, versioned GitHub Releases. Before the first release, configure a pending PyPI trusted publisher with these values:
- PyPI project:
oclp - GitHub owner:
EvanZ - GitHub repository:
oclp-python - Workflow:
publish.yml - Environment:
pypi
This reserves the package name and allows PyPI to accept OpenID Connect tokens from the release workflow. It does not require a stored PyPI API token.
- Ensure
mainis green and decide the next PEP 440 version. While the SDK and protocol are pre-1.0, use an alpha or beta version such as0.3.0a1. - Change
[project].versioninpyproject.toml, update user-facing release notes, and merge the release-preparation commit tomain. - Create an annotated tag named
v<version>at that exact commit—for example,v0.3.0a1—and create a GitHub Release from the tag with its release notes. - Publish the GitHub Release. The
Publish to PyPIworkflow verifies that the tag matches the project version, builds the wheel and source distribution, and publishes both with PyPI Trusted Publishing. - Verify the release on PyPI, install the exact published version into a clean environment, and add the PyPI link to the GitHub Release if needed.
Never upload a build manually from a development machine. A release that needs to be withdrawn should be yanked on PyPI and superseded by a new version; an uploaded version cannot be replaced.