Skip to content

Implement wire protocol as wool-protocol namespace package #1

@conradbzura

Description

@conradbzura

Summary

Implement Wool's wire protocol — protobuf schema definitions, generated Python bindings, and wrapper modules — as the wool-protocol namespace package.

The package provides:

  • Protobuf schemas (task.proto, worker.proto) defining the gRPC Worker service, task dispatch messages (Task, Result, Exception, TaskVersionEnvelope), and response streaming protocol (Ack, Nack, Response)
  • Generated Python code (*_pb2.py, *_pb2.pyi, *_pb2_grpc.py) with type stubs
  • Wrapper modules (task.py, worker.py) providing a clean public API with error handling and a service registry
  • CI/CD workflows for testing (pyright + pytest across Python 3.11–3.13), releasing (cut-release, publish-release), and repo hygiene (PR validation, labeling, branch sync)

Motivation

Publishing the wire protocol as its own package allows it to be versioned and released independently from the main Wool runtime. Consumers of the protocol (e.g., non-Python workers, third-party integrations) can depend on wool-protocol without pulling in the full Wool framework and its runtime dependencies.

Affected code

  • wool-protocol/proto/task.proto, worker.proto
  • wool-protocol/src/wool/protocol/ — wrapper modules and public API
  • wool-protocol/pyproject.toml — package configuration and build hooks
  • .github/workflows/ — 7 workflow files for the wool-protocol namespace
  • .github/actions/ — 6 composite actions
  • .github/scripts/ — shell scripts for versioning, publishing, and setup

Metadata

Metadata

Assignees

Labels

buildBuild system or dependency changescicdCI/CD pipeline changesdocumentationIndicates that a PR includes changes to documentationfeatureNew feature or capability

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions