-
Notifications
You must be signed in to change notification settings - Fork 30
fix(python-sdk): use checked-in README-PYPI.md so build succeeds after generation #699
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…r generation - Add README-PYPI.md (copy of README.md) and protect it in .genignore so Speakeasy generation does not remove it; pyproject.toml points at it. - Remove patch_pyproject_readme.py; no longer needed. - Simplify publish.sh: run prepare_readme.py then poetry publish (no sed). - Point pyproject.toml at README-PYPI.md; remove README-PYPI.md from .gitignore. - Update workflow and contributing docs. Co-authored-by: Cursor <[email protected]>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR updates the Outpost Python SDK packaging/generation flow so poetry build succeeds after Speakeasy generation by ensuring README-PYPI.md exists (and is preserved), and by aligning publish tooling to that behavior.
Changes:
- Check in
README-PYPI.md, stop ignoring it in git, and protect it from regeneration. - Point
pyproject.tomlreadmeatREADME-PYPI.mdand remove the post-gen patch script. - Simplify publishing to just run
prepare_readme.pythenpoetry publish.
Reviewed changes
Copilot reviewed 8 out of 9 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| sdks/outpost-python/scripts/publish.sh | Removes sed-based pyproject rewriting; relies on prepare_readme.py + static readme config. |
| sdks/outpost-python/scripts/patch_pyproject_readme.py | Deleted; no longer needed now that README-PYPI.md is checked in. |
| sdks/outpost-python/pyproject.toml | Sets readme = "README-PYPI.md" to match Speakeasy default and avoid missing-file build failures. |
| sdks/outpost-python/README-PYPI.md | Adds a checked-in PyPI README file to satisfy builds post-generation. |
| sdks/outpost-python/.gitignore | Stops ignoring README-PYPI.md so it can be checked in. |
| sdks/outpost-python/.genignore | Introduces protection for README-PYPI.md so it survives regeneration. |
| contributing/sdks.md | Documents local replication of the Python SDK generation workflow. |
| .speakeasy/workflow.yaml | Removes the compile command hack; documents the new README-PYPI approach. |
| .speakeasy/workflow.lock | Updates lock to reflect removal of the compile command override. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| res = outpost.health.check(, | ||
| RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False)) |
Copilot
AI
Feb 11, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The retry example code is syntactically invalid (outpost.health.check(,), which will render as broken documentation on PyPI. Please fix the call signature in this snippet so it’s valid Python and matches the SDK’s retry API.
| res = outpost.health.check(, | |
| RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False)) | |
| res = outpost.health.check( | |
| retry_config=RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False) | |
| ) |
| ### [Topics](docs/sdks/topicssdk/README.md) | ||
|
|
||
| * [list](docs/sdks/topicssdk/README.md#list) - List Available Topics (for Tenant) | ||
| * [list_jwt](docs/sdks/topicssdk/README.md#list_jwt) - List Available Topics) |
Copilot
AI
Feb 11, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The Topics section has an unmatched closing parenthesis in the description for list_jwt (“List Available Topics)”). This looks like a typo that will show up in the package README; please remove/fix the stray ')'.
| * [list_jwt](docs/sdks/topicssdk/README.md#list_jwt) - List Available Topics) | |
| * [list_jwt](docs/sdks/topicssdk/README.md#list_jwt) - List Available Topics |
| ```bash | ||
| speakeasy run -t outpost-python | ||
| ``` | ||
| This runs the same workflow as CI: generation into `sdks/outpost-python`, then the compile step (e.g. `poetry build`). There is no other way to replicate the CI setup locally without pushing and triggering the workflow. |
Copilot
AI
Feb 11, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This paragraph contradicts itself: it explains how to replicate the CI generation locally via speakeasy run, then says there’s no way to replicate CI locally without pushing and triggering the workflow. Please reword/remove the final sentence so the guidance is consistent (e.g., clarify that speakeasy run is the supported local replication path).
| This runs the same workflow as CI: generation into `sdks/outpost-python`, then the compile step (e.g. `poetry build`). There is no other way to replicate the CI setup locally without pushing and triggering the workflow. | |
| This runs the same workflow as CI: generation into `sdks/outpost-python`, then the compile step (e.g. `poetry build`), and is the supported way to replicate the CI setup locally without pushing and triggering the workflow. |
Summary
Use a checked-in README-PYPI.md (protected in .genignore) so the Python SDK build succeeds after Speakeasy generation.
Changes
Verify after merge
Run Generate OUTPOST-PYTHON workflow; compile step should succeed.
Made with Cursor