srchilukoori commented on PR #65840:
URL: https://github.com/apache/airflow/pull/65840#issuecomment-4364490528
> Waiting for explantion of how the process shoudl work
**What changed:** `sphinx-airflow-theme` moves from an external URL
dependency to a uv workspace member, with a fetch pipeline that pulls compiled
assets from the published wheel at build time.
### Before → After
```
BEFORE:
devel-common/pyproject.toml
└── sphinx-airflow-theme @https://...whl (external URL dep, fetched by
pip)
AFTER:
pyproject.toml (workspace root)
├── members: [..., "docs-theme"]
└── sources: sphinx-airflow-theme = {workspace: true}
devel-common/pyproject.toml
└── sphinx-airflow-theme (workspace ref, no URL)
docs-theme/ ← new workspace member
├── pyproject.toml (flit build backend)
└── sphinx_airflow_theme/
├── __init__.py (version + _gen/ guard)
├── *.html templates (committed, editable locally)
├── theme.conf
├── static/js/globaltoc.js
└── static/_gen/ (gitignored, fetched at build)
```
### Asset Fetch Pipeline
```
scripts/ci/fetch_theme_assets.py
│
├─ reads __version__ from __init__.py
├─ checks _gen/.version stamp → skips if current (idempotent)
│
├─ downloads wheel from airflow.apache.org
│ └─ 3 retries with exponential backoff (2s, 4s)
│ └─ hard exit after exhausting retries
│
├─ extracts theme files into docs-theme/sphinx_airflow_theme/
├─ applies compliance patches (license headers, inclusive language)
└─ writes _gen/.version stamp
```
### CI Entry Points
```
Dockerfile.ci → RUN python fetch_theme_assets.py (baked into
image)
distributions-tests.yml → pre-step: fetch on host (bind-mount
masks image content)
Breeze shell start → auto-fetch if _gen/ missing
local.yml → bind-mount docs-theme/ into container
```
Key decisions:
- Templates committed, compiled assets fetched — clean repo, local theme dev
enabled
- Idempotent via `.version` stamp file
- Retry with exponential backoff guards against transient CI failures
- Bind-mount in `local.yml` masks Dockerfile.ci baked content → fetch runs
on host side too
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]