Skip to content

Run ruff via uv tool run so the SDK bumper can format pydabs - #7156

Merged
janniklasrose merged 2 commits into
mainfrom
janniklasrose/uv-tool-run-ruff
Oct 22, 2026
Merged

janniklasrose merged 2 commits into
mainfrom
janniklasrose/uv-tool-run-ruff

Conversation

@janniklasrose

@janniklasrose janniklasrose commented Oct 22, 2026 •

Copy link
Copy Markdown
Member

Changes

  • Call ruff as uv tool run ruff@0.15.17 instead of uvx ruff@0.15.17 in python/Taskfile.yml (pydabs-codegen, pydabs-fmt) and the root RUFF var. uvx is only an alias for uv tool run, so behavior is unchanged where both exist.
  • bump-sdk skill: note that the SDK bumper does not log bump-sdk-post's output and cannot run test-update (no ruff on its PATH), and correct the claim that pypi.org is CI's default index (CI's test jobs point UV_INDEX_URL at a JFrog mirror).

Why

The SDK bumper's image ships only the uv binary, not uvx. In the v0.190.0 bump (#7155), pydabs-codegen ran codegen and then failed on uvx ruff ... format (the ruff check --fix before it is || true). The PR therefore carried raw, unformatted pydabs output with circular imports. That failed validate-generated, the Python tests and docs, and every acceptance test that imports the pydabs wheel. bump-sdk-post stopped at that step, so test-update never ran, and generate-clijson-post ignores the error, so nothing surfaced in the bumper.

The lock-file half of that failure (proxy URLs left in python/codegen/uv.lock) was fixed separately by #6987 (uv run --frozen); this branch has main merged with that change.

Tests

  • Reproduced the bumper's failure locally with a PATH that has uv but no uvx: pydabs-codegen on Update Go SDK to v0.190.0 #7155's base produced output byte-identical to the bumper's commit. With this change and the same PATH, it succeeds, and the pydabs diff shrinks from 703 files to the 13 real SDK changes, all ruff-formatted.
  • After merging main (with PyDABs: Pass --frozen to uv run so the Taskfile never rewrites uv.lock #6987), pydabs-codegen without uvx reproduces main's pydabs output exactly and leaves both lock files untouched.
  • ./task lint-python fmt-python checks.

This pull request and its description were written by Isaac.

The SDK bumper's image ships only the uv binary, not its uvx alias.
pydabs-codegen's uvx ruff steps therefore failed there: the bumper's
v0.190.0 PR (#7155) carried raw, unformatted pydabs codegen output with
circular imports, which failed validate-generated, the Python tests and
docs, and every pydabs acceptance test. bump-sdk-post stopped at that
step, and generate-clijson-post ignores its error, so nothing surfaced
in the bumper.

- Call ruff as uv tool run ruff@0.15.17 (what uvx is an alias for) in
  python/Taskfile.yml and the root RUFF var.
- bump-sdk skill: note that the bumper does not log the task's output
  and cannot run test-update (no ruff on PATH), and correct the claim
  that pypi.org is CI's default index.

Co-authored-by: Isaac <no-reply@databricks.com>
@janniklasrose
janniklasrose requested review from a team as code owners October 22, 2026 05:58
janniklasrose added a commit that referenced this pull request Oct 22, 2026
What the bumper would have committed with #6987 and #7156: in its
environment pydabs-codegen stopped at `uvx ruff ... format` (no uvx in
the image), leaving raw, unformatted codegen output with circular
imports and proxy URLs in python/codegen/uv.lock.

- Rerun generate-check: only the pydabs models and generated tests
  change (ruff fix + format), down to the real v0.190.0 additions.
- Restore python/codegen/uv.lock, which --frozen (#6987) leaves alone.
- test-update: no golden changes.

Co-authored-by: Isaac <no-reply@databricks.com>
@eng-dev-ecosystem-bot

eng-dev-ecosystem-bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 0d5a4f5

Run: 39766426753

Env ✅​pass 🙈​skip Time
✅​ aws linux-2core-8gb 281 15 4:17
✅​ aws-windows-latest-4core-16gb 283 13 3:14
✅​ azure linux-2core-8gb 280 15 4:42
✅​ azure-windows-latest-4core-16gb 282 13 3:12
✅​ gcp linux-2core-8gb 281 15 4:24
✅​ gcp-windows-latest-4core-16gb 283 13 3:05
Top 3 slowest tests (at least 2 minutes):
duration env testname
2:51 gcp-windows-latest-4core-16gb TestAccept
2:50 azure-windows-latest-4core-16gb TestAccept
2:42 aws-windows-latest-4core-16gb TestAccept

…-run-ruff

# Conflicts:
#	python/Taskfile.yml
@janniklasrose
janniklasrose added this pull request to the merge queue Oct 22, 2026
Merged via the queue into main with commit e5cdfb9 Oct 22, 2026
38 checks passed
@janniklasrose
janniklasrose deleted the janniklasrose/uv-tool-run-ruff branch October 22, 2026 17:04
@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: e5cdfb9

Run: 39821150798

Env 🔄​flaky ✅​pass 🙈​skip Time
🔄​ aws linux-2core-8gb 3 1448 1204 199:35
🔄​ aws-windows-latest-4core-16gb 8 1368 1229 215:12
🔄​ azure linux-2core-8gb 9 1291 1256 98:54
✅​ azure-windows-latest-4core-16gb 1225 1281 115:55
✅​ gcp linux-2core-8gb 1289 1260 101:32
✅​ gcp-windows-latest-4core-16gb 1214 1285 118:49
17 interesting tests: 17 flaky
Test Name aws linux-2core-8gb aws-windows-latest-4core-16gb azure linux-2core-8gb
🔄​ TestAccept 🔄​f ✅​p 🔄​f
🔄​ TestAccept/bundle/invariant/no_drift 🔄​f 🔄​f 🔄​f
🔄​ TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=1 🔄​f ✅​p ✅​p
🔄​ TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN= ✅​p 🔄​f ✅​p
🔄​ TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=genie_space.yml.tmpl/READPLAN= ✅​p ✅​p 🔄​f
🔄​ TestAccept/bundle/resources/apps/lifecycle-started ✅​p 🔄​f ✅​p
🔄​ TestAccept/bundle/resources/apps/lifecycle-started/DMS= ✅​p 🔄​f ✅​p
🔄​ TestAccept/bundle/resources/dashboards/nested-folders ✅​p ✅​p 🔄​f
🔄​ TestAccept/bundle/resources/dashboards/nested-folders/DMS=true/READPLAN= ✅​p ✅​p 🔄​f
🔄​ TestAccept/bundle/resources/grants/schemas/duplicate_privileges/DMS= ✅​p ✅​p 🔄​f
🔄​ TestAccept/bundle/resources/grants/schemas/duplicate_privileges/DMS=true ✅​p ✅​p 🔄​f
🔄​ TestAccept/bundle/resources/postgres_roles/update ✅​p 🔄​f 🙈​s
🔄​ TestAccept/bundle/resources/postgres_roles/update/DMS=true ✅​p 🔄​f
🔄​ TestFsCpFileToDir ✅​p ✅​p 🔄​f
🔄​ TestFsCpFileToDir/dbfs_to_uc-volumes ✅​p ✅​p 🔄​f
🔄​ TestFilerRecursiveDelete ✅​p 🔄​f ✅​p
🔄​ TestFilerRecursiveDelete/files ✅​p 🔄​f ✅​p
Top 50 slowest tests (at least 2 minutes):
duration env testname
26:13 aws linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=
25:55 aws linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=true
23:49 aws-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=
22:36 aws-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=true
20:13 aws linux-2core-8gb TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=
20:11 aws linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS=
19:25 aws linux-2core-8gb TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=
17:34 aws linux-2core-8gb TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=
16:59 aws-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/resize-terminated-fallback/DMS=true
16:29 aws-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS=true
16:19 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=
15:42 aws linux-2core-8gb TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS=true
15:41 aws-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DMS=
14:04 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=
14:01 aws linux-2core-8gb TestAccept/bundle/deploy/spark-jar-task/DMS=
13:12 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=
12:57 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=
12:11 aws-windows-latest-4core-16gb TestAccept/bundle/deploy/spark-jar-task/DMS=
11:33 aws linux-2core-8gb TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=1
11:11 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=
11:10 aws linux-2core-8gb TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=1
10:52 aws-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/resize-terminated-fallback/DMS=
10:24 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=1
10:21 aws linux-2core-8gb TestAccept/bundle/resources/clusters/resize-terminated-fallback/DMS=true
10:16 aws linux-2core-8gb TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=
10:13 aws linux-2core-8gb TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=
10:00 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=1
9:41 aws linux-2core-8gb TestAccept/bundle/deploy/spark-jar-task/DMS=true
8:52 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=
8:49 aws linux-2core-8gb TestAccept/bundle/resources/clusters/deploy/data_security_mode/DMS=true
8:42 aws linux-2core-8gb TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=1
8:39 aws linux-2core-8gb TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=
8:25 aws linux-2core-8gb TestAccept/bundle/resources/clusters/deploy/simple/DMS=true
8:20 aws-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/deploy/update-after-create/DMS=
8:15 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=
8:12 gcp linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=true
8:11 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=1
8:08 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/deploy/local_ssd_count/DMS=
7:59 aws-windows-latest-4core-16gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=true
7:51 aws linux-2core-8gb TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=1
7:50 aws linux-2core-8gb TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=
7:48 gcp linux-2core-8gb TestAccept/bundle/resources/clusters/deploy/local_ssd_count/DMS=true
7:47 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/no_drift/DMS=true/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=1
7:46 gcp linux-2core-8gb TestAccept/bundle/resources/clusters/deploy/local_ssd_count/DMS=
7:44 aws linux-2core-8gb TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=
7:41 aws linux-2core-8gb TestAccept/bundle/invariant/delete_idempotent/DMS=/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=1
7:41 aws linux-2core-8gb TestAccept/bundle/resources/apps/lifecycle-started/DMS=
7:41 aws linux-2core-8gb TestAccept/bundle/invariant/destroy_idempotent/DMS=/INPUT_CONFIG=cluster_libraries.yml.tmpl/READPLAN=1
7:33 aws-windows-latest-4core-16gb TestAccept/bundle/invariant/no_drift/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=1
7:29 gcp-windows-latest-4core-16gb TestAccept/bundle/resources/clusters/lifecycle-started/DMS=true

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants