Skip to content

refactor: remove workaround for python <3.7#1292

Open
jbedard wants to merge 1 commit into
mainfrom
virtualenv-drop-legacy-loader
Open

refactor: remove workaround for python <3.7#1292
jbedard wants to merge 1 commit into
mainfrom
virtualenv-drop-legacy-loader

Conversation

@jbedard

@jbedard jbedard commented Jul 11, 2026

Copy link
Copy Markdown
Member

Changes are visible to end-users: no

Test plan

  • Covered by existing test cases

@jbedard jbedard requested a review from xangcastle July 11, 2026 02:18
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@aspect-workflows

aspect-workflows Bot commented Jul 11, 2026

Copy link
Copy Markdown

✨ Aspect Workflows Tasks

📅 Sat Jul 11 02:18:39 UTC 2026

❌ 2 failed tasks

  • ❌ test-e2e-bazel-8 [test] · ⏱ 3m 41s · 🐙 GitHub Actions · ☑️ Check
    💬 failed in test · Bazel test failed (8 tests failed)
  • ❌ test-e2e-bazel-9 [test] · ⏱ 3m 19s · 🐙 GitHub Actions · ☑️ Check
    💬 failed in test · Bazel test failed (6 tests failed)

✅ 34 successful tasks

  • ✅ buildifier · ⏱ 16.1s · 🐙 GitHub Actions · ☑️ Check
    💬 Format complete (clean)
  • ✅ gazelle · ⏱ 15.5s · 🐙 GitHub Actions · ☑️ Check
    💬 Gazelle complete (clean)
  • ✅ test-e2e-interpreter-input-validation-bazel-8 [test] · ⏱ 18.1s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (1/1 passed)
  • ✅ test-e2e-interpreter-input-validation-bazel-9 [test] · ⏱ 1m 28s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (1/1 passed)
  • ✅ test-e2e-interpreter-runtime-metadata-bazel-8 [test] · ⏱ 20.6s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (2/2 passed)
  • ✅ test-e2e-interpreter-runtime-metadata-bazel-9 [test] · ⏱ 40s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (2/2 passed)
  • ✅ test-e2e-interpreter-toolchain-settings-bazel-8 [test] · ⏱ 17.3s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (1/1 passed)
  • ✅ test-e2e-interpreter-toolchain-settings-bazel-9 [test] · ⏱ 46.6s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (1/1 passed)
  • ✅ test-e2e-rules-proto-grpc-python-bazel-8 [test] · ⏱ 1m 51s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (1/1 passed)
  • ✅ test-e2e-rules-proto-grpc-python-bazel-9 [test] · ⏱ 1m 52s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (1/1 passed)
  • ✅ test-examples-debugger-bazel-8 [test] · ⏱ 23.6s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (1/1 passed)
  • ✅ test-examples-debugger-bazel-9 [test] · ⏱ 47.8s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (1/1 passed)
  • ✅ test-examples-dev_deps-bazel-8 [test] · ⏱ 39.9s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (1/1 passed)
  • ✅ test-examples-dev_deps-bazel-9 [test] · ⏱ 57.7s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (1/1 passed)
  • ✅ test-examples-django-bazel-8 [test] · ⏱ 27.4s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (1/1 passed)
  • ✅ test-examples-django-bazel-9 [test] · ⏱ 50.6s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (1/1 passed)
  • ✅ test-examples-multi_version-bazel-8 [test] · ⏱ 30.6s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (2/2 passed)
  • ✅ test-examples-multi_version-bazel-9 [test] · ⏱ 55s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (2/2 passed)
  • ✅ test-examples-protobuf-bazel-8 [test] · ⏱ 1m 49s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (1/1 passed)
  • ✅ test-examples-protobuf-bazel-9 [test] · ⏱ 2m 4s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (1/1 passed)
  • ✅ test-examples-py_binary-bazel-8 [test] · ⏱ 17.5s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (1/1 passed)
  • ✅ test-examples-py_binary-bazel-9 [test] · ⏱ 41.7s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (1/1 passed)
  • ✅ test-examples-py_pex_binary-bazel-8 [test] · ⏱ 21.4s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (1/1 passed)
  • ✅ test-examples-py_pex_binary-bazel-9 [test] · ⏱ 1m 23s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (1/1 passed)
  • ✅ test-examples-py_venv-bazel-8 [test] · ⏱ 20.2s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (3/3 passed)
  • ✅ test-examples-py_venv-bazel-9 [test] · ⏱ 57.7s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (3/3 passed)
  • ✅ test-examples-pytest-bazel-8 [test] · ⏱ 47.7s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (9/9 passed)
  • ✅ test-examples-pytest-bazel-9 [test] · ⏱ 1m 7s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (9/9 passed)
  • ✅ test-examples-uv_pip_compile-bazel-8 [test] · ⏱ 24.7s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (1/1 passed)
  • ✅ test-examples-uv_pip_compile-bazel-9 [test] · ⏱ 58.4s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (1/1 passed)
  • ✅ test-examples-virtual_deps-bazel-8 [test] · ⏱ 31.5s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (1/1 passed)
  • ✅ test-examples-virtual_deps-bazel-9 [test] · ⏱ 51.3s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (1/1 passed)
  • ✅ test-root-bazel-8 [test] · ⏱ 3m · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (235/235 passed)
  • ✅ test-root-bazel-9 [test] · ⏱ 3m 10s · 🐙 GitHub Actions · ☑️ Check
    💬 Bazel test complete (234/234 passed)

❌ Test Failures

❌ _diff_test //interpreter-features-tkinter:amd64_layers_listing_test failed in 90ms:

diff: files "interpreter-features-tkinter/_amd64_layers_listing.listing" and "interpreter-features-tkinter/snapshots/amd64_layers_listing.yaml" differ. &#10;&#10;@@//interpreter-features-tkinter:snapshots/amd64_layers_listing.yaml is out of date. To update this file, run:&#10;&#10;    bazel run //interpreter-features-tkinter:amd64_layers_listing&#10;&#10;&#10;

in tasks test-e2e-bazel-8, test-e2e-bazel-9

Reproduce with:

cd e2e/cases
aspect test -- //interpreter-features-tkinter:amd64_layers_listing_test
# vanilla bazel
cd e2e/cases
bazel test -- //interpreter-features-tkinter:amd64_layers_listing_test

❌ _diff_test //oci/py_image_layer:my_app_layers_multi_test_test failed in 60ms:

diff: files "oci/py_image_layer/_my_app_layers_multi_test.listing" and "oci/py_image_layer/snapshots/my_app_layers_multi_listing.yaml" differ. &#10;&#10;@@//oci/py_image_layer:snapshots/my_app_layers_multi_listing.yaml is out of date. To update this file, run:&#10;&#10;    bazel run //oci/py_image_layer:my_app_layers_multi_test&#10;&#10;&#10;

in task test-e2e-bazel-9

Reproduce with:

cd e2e/cases
aspect test -- //oci/py_image_layer:my_app_layers_multi_test_test
# vanilla bazel
cd e2e/cases
bazel test -- //oci/py_image_layer:my_app_layers_multi_test_test

❌ _diff_test //oci/py_venv_image_layer:my_app_amd64_layers_test failed in 51ms:

diff: files "oci/py_venv_image_layer/_my_app_amd64_layers.listing" and "oci/py_venv_image_layer/snapshots/my_app_amd64_layers_listing.yaml" differ. &#10;&#10;@@//oci/py_venv_image_layer:snapshots/my_app_amd64_layers_listing.yaml is out of date. To update this file, run:&#10;&#10;    bazel run //oci/py_venv_image_layer:my_app_amd64_layers&#10;&#10;&#10;

in tasks test-e2e-bazel-8, test-e2e-bazel-9

Reproduce with:

cd e2e/cases
aspect test -- //oci/py_venv_image_layer:my_app_amd64_layers_test
# vanilla bazel
cd e2e/cases
bazel test -- //oci/py_venv_image_layer:my_app_amd64_layers_test

❌ _diff_test //oci/py_venv_image_layer:my_app_arm64_layers_test failed in 55ms:

diff: files "oci/py_venv_image_layer/_my_app_arm64_layers.listing" and "oci/py_venv_image_layer/snapshots/my_app_arm64_layers_listing.yaml" differ. &#10;&#10;@@//oci/py_venv_image_layer:snapshots/my_app_arm64_layers_listing.yaml is out of date. To update this file, run:&#10;&#10;    bazel run //oci/py_venv_image_layer:my_app_arm64_layers&#10;&#10;&#10;

in tasks test-e2e-bazel-8, test-e2e-bazel-9

Reproduce with:

cd e2e/cases
aspect test -- //oci/py_venv_image_layer:my_app_arm64_layers_test
# vanilla bazel
cd e2e/cases
bazel test -- //oci/py_venv_image_layer:my_app_arm64_layers_test

❌ _diff_test //oci/py_image_layer:my_app_layers_test_test failed in 55ms:

diff: files "oci/py_image_layer/_my_app_layers_test.listing" and "oci/py_image_layer/snapshots/my_app_layers_listing.yaml" differ. &#10;&#10;@@//oci/py_image_layer:snapshots/my_app_layers_listing.yaml is out of date. To update this file, run:&#10;&#10;    bazel run //oci/py_image_layer:my_app_layers_test&#10;&#10;&#10;

in tasks test-e2e-bazel-8, test-e2e-bazel-9

Reproduce with:

cd e2e/cases
aspect test -- //oci/py_image_layer:my_app_layers_test_test
# vanilla bazel
cd e2e/cases
bazel test -- //oci/py_image_layer:my_app_layers_test_test

+ 1 more failure — not shown (across test-e2e-bazel-8).

🔁 Reproduce

❌ test (test-e2e-bazel-9)

cd e2e/cases
aspect test -- \
  //interpreter-features-tkinter:amd64_layers_listing_test \
  //oci/py_image_layer:my_app_layers_test_test \
  //oci/py_venv_image_layer:my_app_amd64_layers_test \
  //oci/py_image_layer:my_app_layers_multi_test_test \
  //oci/py_venv_image_layer:my_app_arm64_layers_test \
  //oci/py_image_layer:my_app_layers_fp_test_test
# vanilla bazel
cd e2e/cases
bazel test -- \
  //interpreter-features-tkinter:amd64_layers_listing_test \
  //oci/py_image_layer:my_app_layers_test_test \
  //oci/py_venv_image_layer:my_app_amd64_layers_test \
  //oci/py_image_layer:my_app_layers_multi_test_test \
  //oci/py_venv_image_layer:my_app_arm64_layers_test \
  //oci/py_image_layer:my_app_layers_fp_test_test

❌ test (test-e2e-bazel-8)

cd e2e/cases
aspect test -- \
  //interpreter-features-tkinter:amd64_layers_listing_test \
  //uv-deps-650/crossbuild:app_arm64_layers_test \
  //oci/py_venv_image_layer:my_app_amd64_layers_test \
  //oci/py_image_layer:my_app_layers_test_test \
  //oci/py_venv_image_layer:my_app_arm64_layers_test \
  //oci/py_image_layer:my_app_layers_multi_test_test \
  //oci/py_image_layer:my_app_layers_fp_test_test \
  //uv-deps-650/crossbuild:app_amd64_layers_test
# vanilla bazel
cd e2e/cases
bazel test -- \
  //interpreter-features-tkinter:amd64_layers_listing_test \
  //uv-deps-650/crossbuild:app_arm64_layers_test \
  //oci/py_venv_image_layer:my_app_amd64_layers_test \
  //oci/py_image_layer:my_app_layers_test_test \
  //oci/py_venv_image_layer:my_app_arm64_layers_test \
  //oci/py_image_layer:my_app_layers_multi_test_test \
  //oci/py_image_layer:my_app_layers_fp_test_test \
  //uv-deps-650/crossbuild:app_amd64_layers_test

Install aspect: aspect.build/docs/cli/install


⏱ Last updated Sat Jul 11 04:47:04 UTC 2026 · 📊 GitHub API quota 216/15,000 (1% used, resets in 40m)
🚀 Powered by Aspect CLI (v2026.28.2)  |  Aspect Build · X · LinkedIn · YouTube

@github-actions

Copy link
Copy Markdown

py_binary startup benchmark

Version Mean (ms) Median (ms) ± stddev vs BCR vs main Build (s)
BCR 1.11.7 (baseline) 175.721 174.641 ±3.772 56.07
HEAD main 56.425 56.211 ±1.298 -67.9% 10.07
This PR 58.957 58.802 ±1.545 -66.4% +4.5% 7.40

Measured with hyperfine --warmup 5 --runs 50 on Linux
Gate: PR vs HEAD main (threshold: 10%). BCR is shown only as a historical baseline.
Build time: cold bazel build //:bench with isolated output base, no disk cache.

sys.path quality

Version sys.path entries distinct site-packages roots duplicate realpaths
BCR 1.11.7 (baseline) 6 1 0
HEAD main 7 2 0
This PR 7 2 0

sys.path quality measured by bench_syspath inside the assembled venv. Duplicate realpaths indicate symlink redundancy; many distinct site-packages roots suggest an inefficient venv layout.

Bazel analysis benchmark

Version Mean (ms) Median (ms) ± stddev vs BCR vs main Packages Targets
BCR 2.0.0-alpha.4 (baseline) 10208.621 10174.744 ±116.204 101 301
HEAD main 9376.182 9359.061 ±79.691 -8.2% 101 301
This PR 9384.273 9361.219 ±139.853 -8.1% +0.1% 101 301

Measured with hyperfine --warmup 1 --runs 10 on Linux
Gate: PR vs HEAD main (threshold: 10%). BCR is shown only as a historical baseline.
Command: cold bazel build --nobuild //workspace/... with isolated output base, no disk cache.

Auxiliary metrics

Version Loaded packages Configured targets
BCR 2.0.0-alpha.4 (baseline) 101 301
HEAD main 101 301
This PR 101 301

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant