Skip to content

Conversation

@cmttt
Copy link
Collaborator

@cmttt cmttt commented Jan 13, 2026

Add automated release workflow for osprey-rpc package

Summary

This PR adds infrastructure to automatically build and publish the osprey-rpc Python package as release assets whenever a new GitHub release is created. It also regenerates the proto files to fix import issues.

Changes

New: GitHub Actions Release Workflow

  • Added .github/workflows/release-osprey-rpc.yml that triggers on release publish
  • Builds the osprey_rpc sdist using uv build
  • Creates both .tar.gz and .zip archives (zip required for downstream pycross/Bazel compatibility)
  • Uploads both artifacts to the GitHub release

Proto Regeneration

  • Regenerated all proto-generated Python files in osprey_rpc/src/
  • Fixed stale imports that referenced non-existent osprey.rpc.labels module
  • Added missing google.* proto dependencies (protobuf, api, iam, pubsub, bigtable, etc.)

Why

The discord_api service needs to consume osprey-rpc as a dependency to communicate with the Osprey coordinator. Discord's build system (Bazel + pycross) requires dependencies to be:

  1. Available as archive URLs (not git+ URLs)
  2. Distributed as .zip files (not .tar.gz)

This workflow enables discord_api to depend on osprey-rpc via:

[tool.uv.sources]
osprey-rpc = { url = "https://github.com/roostorg/osprey/releases/download/<tag>/osprey_rpc-0.1.0.zip" }

Testing

  • Workflow runs successfully on release publish
  • Generated .zip archive is consumable by downstream projects
  • Proto imports are correct (no ModuleNotFoundError)
  • uv.lock regenerated with uv 0.9.24 to match CI

Remove unnecessary google proto dependencies - these should come from
the protobuf/grpcio-tools packages, not be bundled in osprey-rpc.
cd "$(dirname "$0")"

glob=(./proto/**/*.proto)
glob=(./proto/osprey/**/*.proto)
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

@EXBreder I think this is fine so we don't have to generate all the google protos

@cmttt cmttt merged commit a52b403 into main Jan 13, 2026
4 checks passed
@cassidyjames cassidyjames added this to the 1.0 milestone Jan 15, 2026
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.

4 participants