Skip to content

Widen grpcio / grpcio-status to ~=MAJOR.MINOR (connect-governed) - #24

Merged
rugpanov merged 1 commit into
mainfrom
envgen/widen-grpc
Aug 24, 2026
Merged

Widen grpcio / grpcio-status to ~=MAJOR.MINOR (connect-governed)#24
rugpanov merged 1 commit into
mainfrom
envgen/widen-grpc

Conversation

@rugpanov

Copy link
Copy Markdown
Collaborator

Closes #19. Closes #20.

Why

grpcio and grpcio-status are pulled and version-governed by databricks-connect (installed from the dev group). Pinning them to the runtime's single patch line makes two envs unresolvable locally:

This is the same class as databricks-sdk, which req() already widens to ~=MAJOR.MINOR (issue #16).

What

Verification

  • python -m unittest test_envgen — 15 passing.
  • All grpcio/grpcio-status pins are now ~=MAJOR.MINOR; no other package lines changed (132 grpc lines swapped, symmetric); all 33 pyproject.toml valid TOML.

This pull request and its description were written by Isaac.

…20]

*Why*

grpcio and grpcio-status are pulled and version-governed by databricks-connect (which
we install from the dev group). Pinning them to the runtime's single patch line makes
two envs unresolvable locally:
- #19 (DBR 14.3): grpcio-status~=1.48.1 (>=1.48.1,<1.49) does not intersect
  databricks-connect 14.3's grpcio-status>=1.56,<2 -> uv sync has no solution.
- #20 (DBR 13.3): grpcio~=1.48.1 pins to 1.48.x, which has no macOS-arm64 wheel ->
  uv builds from source and fails on Apple Silicon.
This is the same class as databricks-sdk, which req() already widens (issue #16).

*What*

- envgen.py: generalize req()'s databricks-sdk MAJOR.MINOR widening into a
  CONNECT_GOVERNED = {databricks-sdk, grpcio, grpcio-status} set. Widening keeps the
  runtime version as the floor while letting databricks-connect's metadata and wheel
  availability pick the exact version in-range. Docstring + module docstring updated.
- test_envgen.py: ReqTest covers grpcio/grpcio-status widening.
- Regenerated: grpcio / grpcio-status pins across all envs go from ~=X.Y.Z to ~=X.Y
  (e.g. grpcio~=1.67.0 -> grpcio~=1.67); #19 -> grpcio-status~=1.48, #20 -> grpcio~=1.48.

*Verification*

- python -m unittest test_envgen: 15 passing.
- All grpcio/grpcio-status pins are now ~=MAJOR.MINOR; no other package lines changed
  (132 grpc lines swapped, symmetric); all 33 pyproject.toml valid TOML.

Co-authored-by: Isaac <no-reply@databricks.com>
@rugpanov
rugpanov marked this pull request as ready for review August 24, 2026 09:11
@rugpanov
rugpanov merged commit 5f07584 into main Aug 24, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants