DataHub Python Builds

These prebuilt wheel files can be used to install our Python packages as of a specific commit.

Build context

Built at 2026-08-24T05:05:59.732121+00:00.

{
  "timestamp": "2026-08-24T05:05:59.732121+00:00",
  "branch": "fix/powerbi-mquery-lexical-scope",
  "commit": {
    "hash": "bed667370b8072e87dc6afcffb3a36468c8bef70",
    "message": "fix(ingest/powerbi): resolve M-Query names against enclosing let scopes\n\nThe walk carried one let at a time. Descending into a nested let replaced\nthe enclosing scope instead of adding to it, so a nested body could not\nreach any step its parents bound:\n\n    Source = Databricks.Catalogs(...),\n    db     = Source{[Name=\"cat\", Kind=\"Database\"]}[Data],\n    sch    = db{[Name=\"sch\", Kind=\"Schema\"]}[Data],\n    out    = let tbl = sch{[Name=\"tbl\", Kind=\"Table\"]}[Data] in tbl\n\n`sch` was unreachable from the inner let, so the table produced no lineage\nat all. Nested lets are common in Power BI-generated M and `Source` is the\ndefault step name, so this is not an unusual shape.\n\nCarry the enclosing scopes as a chain, innermost last, and look a name up\nfrom the inside out so the nearest binding wins.\n\nThe chain is truncated at the scope that binds the name, because a step\nbound by an outer let is evaluated in that let's scope and cannot see names\na nested one introduces. Without that, `a = sch{...}` at the outer level\nresolves against a nested `sch` and invents an upstream from an expression\nPower BI itself would reject -- verified, it produces `cat.inner.tbl`.\n\nThe circular-reference guard now keys on the scope that actually bound the\nname rather than whichever let happened to be current."
  },
  "base": {
    "hash": "e1b7074cbe47eeb9fc9ad7126ee5179758970ecb",
    "message": "fix(ui/lineage): Support potentially displaying query nodes in bounding boxes (#19258)"
  },
  "pr": {
    "number": 19370,
    "title": "fix(ingest/powerbi): resolve M-Query names against enclosing let scopes",
    "url": "https://github.com/datahub-project/datahub/pull/19370"
  }
}

Usage

Current base URL: unknown

Package Size Install command
acryl-datahub 5.024 MB uv pip install 'acryl-datahub @ <base-url>/artifacts/wheels/acryl_datahub-0.0.0.dev1-py3-none-any.whl'
acryl-datahub-actions 0.117 MB uv pip install 'acryl-datahub-actions @ <base-url>/artifacts/wheels/acryl_datahub_actions-0.0.0.dev1-py3-none-any.whl'
acryl-datahub-airflow-plugin 0.072 MB uv pip install 'acryl-datahub-airflow-plugin @ <base-url>/artifacts/wheels/acryl_datahub_airflow_plugin-0.0.0.dev1-py3-none-any.whl'
acryl-datahub-dagster-plugin 0.021 MB uv pip install 'acryl-datahub-dagster-plugin @ <base-url>/artifacts/wheels/acryl_datahub_dagster_plugin-0.0.0.dev1-py3-none-any.whl'
acryl-datahub-gx-plugin 0.019 MB uv pip install 'acryl-datahub-gx-plugin @ <base-url>/artifacts/wheels/acryl_datahub_gx_plugin-0.0.0.dev1-py3-none-any.whl'
prefect-datahub 0.011 MB uv pip install 'prefect-datahub @ <base-url>/artifacts/wheels/prefect_datahub-0.0.0.dev1-py3-none-any.whl'