rusackas opened a new pull request, #42498:
URL: https://github.com/apache/superset/pull/42498

   ### SUMMARY
   `setup-backend` (the composite action used in 17 job steps across 13 
workflows) bootstrapped `uv` on every single run via `pip install --upgrade pip 
setuptools wheel uv`, and only cached pip's download dir through 
`actions/setup-python`'s `cache: pip`. Since pip wasn't doing the actual 
dependency installs (uv was, via `uv pip install --system ...`), that cache 
wasn't buying us anything -- we were paying to re-bootstrap uv from scratch, 
and re-resolve/re-download every wheel, on every job.
   
   This swaps that bootstrap for 
[astral-sh/setup-uv](https://github.com/astral-sh/setup-uv), which:
   - ships a prebuilt `uv` binary instead of installing it through pip
   - persists uv's own resolution/wheel cache in the GitHub Actions cache 
(`enable-cache: true`), keyed by default on `requirements/*.txt` and 
`pyproject.toml`
   
   Also drops the `pip install --upgrade pip setuptools wheel` step entirely -- 
uv's build isolation installs whatever a package's build backend declares (our 
`pyproject.toml` already declares `setuptools`/`wheel` under `[build-system]`), 
so nothing needs to be preinstalled in the target environment for that anymore.
   
   Same swap applied to the standalone `pip install uv` bootstrap in 
`bump-python-package.yml`, which doesn't go through `setup-backend`.
   
   One wrinkle: `setup-backend` is also called with `install-superset: "false"` 
(helm chart linting), which skips all `uv pip install` calls. With caching 
enabled and nothing installed, there's nothing for uv to cache, and `setup-uv` 
fails the job by default in that case ("Cache path ... does not exist on 
disk"). So the new `Install uv` step is gated on `install-superset == 'true'`.
   
   (Re-opened from a branch on this repo rather than a fork; supersedes #42497.)
   
   ### TESTING INSTRUCTIONS
   - Ran the full local test suite for the two touched YAML files through 
`action-validator`/`zizmor` via `pre-commit run` -- both pass.
   - CI on this PR exercises `setup-backend` across most of its 17 call sites 
(unit tests, integration tests, e2e, presto/hive, pre-commit, translations, 
etc.) -- green CI here is the real validation that the composite action still 
behaves identically.
   - Manually traced through `pyproject.toml`'s `[build-system]` table to 
confirm dropping the `pip install --upgrade pip setuptools wheel` step is safe 
for editable installs (`-e .`).
   
   ### ADDITIONAL INFORMATION
   - [ ] Has associated issue:
   - [ ] Required feature flags:
   - [ ] Changes UI
   - [ ] Includes DB Migration (follow approval process in 
[SIP-59](https://github.com/apache/superset/issues/13351))
     - [ ] Migration is atomic, supports rollback & is backwards-compatible
     - [ ] Confirm DB migration upgrade and downgrade tested
     - [ ] Runtime estimates and downtime expectations provided
   - [ ] Introduces new feature or API
   - [ ] Removes existing feature or API


-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to