You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@burr.apache.org by GitBox <gi...@apache.org> on 2026/07/11 00:35:38 UTC

[GH] (burr/main): Workflow run "Build Burr" failed!

The GitHub Actions job "Build Burr" on burr.git/main has failed.
Run started by GitHub user skrawcz (triggered by skrawcz).

Head commit for run:
30fa494a278b5e22b978f91ac7ce5612d6da65d6 / Alex Bevilacqua <al...@alexbevi.com>
feat: add MongoDB driver handshake metadata (#821)

Identify Burr in the MongoDB handshake so server-side telemetry can
distinguish Burr traffic. A module-level constant
_DRIVER_INFO = DriverInfo(name="Burr", version=_VERSION) is defined
once in b_pymongo.py and used at every client construction site.

b_pymongo.MongoDBBasePersister has three patterns:

  Pattern A – from_values() constructs MongoClient:
    mongo_client_kwargs.setdefault("driver", _DRIVER_INFO) guards against
    overriding a caller-supplied driver value.

  Pattern B – __init__() receives an existing client:
    if hasattr(client, "append_metadata"): client.append_metadata(_DRIVER_INFO)
    append_metadata is idempotent; the hasattr guard keeps this safe with
    older pymongo versions that predate the API.

  Pattern A – __setstate__() reconstructs MongoClient after unpickling:
    driver=_DRIVER_INFO passed directly.

b_mongodb.py is a deprecated shim that constructs its own MongoClient
instances in from_values() and __init__(). Both receive the same
setdefault guard, importing _DRIVER_INFO from b_pymongo.py.

Version is read via importlib.metadata("apache-burr") with a try/except
fallback so it works whether or not the package is pip-installed.

Adds tests/integrations/persisters/test_b_pymongo_driver_info.py
(no live DB required) verifying all five behaviours:
- _DRIVER_INFO has name="Burr" and matches the installed version
- from_values() passes driver=_DRIVER_INFO to MongoClient
- from_values() does not override a caller-supplied driver
- __init__() calls append_metadata(_DRIVER_INFO) when the client supports it
- __init__() does not raise when client lacks append_metadata

Co-authored-by: Claude Sonnet 4.6 (1M context) <no...@anthropic.com>

Report URL: https://github.com/apache/burr/actions/runs/29132858321

With regards,
GitHub Actions via GitBox