Skip to content

Verify old version of Python has the lib2to3 import available #170187

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jun 10, 2025

Conversation

harryterkelsen
Copy link
Contributor

@harryterkelsen harryterkelsen commented Jun 6, 2025

The yapf.sh script checks for specific "known-to-work-with-YAPF" versions of Python to run YAPF with. On my machine, I have python3.11 and python3.12 (python3 is a symlink to python3.12). However, the python3.11 release doesn't have lib2to3 so the YAPF script fails with:

Checking Python formatting...
To fix, run `et format` or:                                                                                   

git apply <<DONE
  /usr/local/google/home/het/Projects/flutter/engine/src/flutter/tools/gn
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/usr/local/google/home/het/Projects/flutter/engine/src/flutter/third_party/yapf/yapf/__main__.py", line 16, in <module>
    import yapf
  File "/usr/local/google/home/het/Projects/flutter/engine/src/flutter/third_party/yapf/yapf/__init__.py", line 35, in <module>
    from yapf.yapflib import errors
  File "/usr/local/google/home/het/Projects/flutter/engine/src/flutter/third_party/yapf/yapf/yapflib/errors.py", line 16, in <module>
    from lib2to3.pgen2 import tokenize
ModuleNotFoundError: No module named 'lib2to3'

DONE

On my Ubuntu machine I cannot install lib2to3 through normal APT packages; apt install python3.11-lib2to3 fails since that package has been obsoleted. I've been able to work around this by manually editing the yapf.sh script to check if lib2to3 can be imported before using that version of Python.

See #158384

Pre-launch Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

@flutter-dashboard
Copy link

It looks like this pull request may not have tests. Please make sure to add tests or get an explicit test exemption before merging.

If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix?

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing.If you believe this PR qualifies for a test exemption, contact "@test-exemption-reviewer" in the #hackers channel in Discord (don't just cc them here, they won't see it!). The test exemption team is a small volunteer group, so all reviewers should feel empowered to ask for tests, without delegating that responsibility entirely to the test exemption group.

@harryterkelsen harryterkelsen requested a review from cbracken June 6, 2025 23:18
@github-actions github-actions bot added the engine flutter/engine repository. See also e: labels. label Jun 6, 2025
@harryterkelsen harryterkelsen changed the title Reverse order of checks for Python versions to run YAPF Verify old version of Python has the lib2to3 import available Jun 9, 2025
@harryterkelsen
Copy link
Contributor Author

@jason-simmons @chinmaygarde Thanks for the review. It looks like reversing the order caused LUCI to fail. I have a better fix which checks that lib2to3 can be imported before using that version of Python. PTAL

@jason-simmons
Copy link
Member

LGTM

@harryterkelsen harryterkelsen added this pull request to the merge queue Jun 10, 2025
Merged via the queue into flutter:master with commit db8a64f Jun 10, 2025
181 checks passed
@harryterkelsen harryterkelsen deleted the yapf-old-versions branch June 10, 2025 23:26
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jun 12, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Jun 12, 2025
Roll Flutter from 824868f5d1e6 to f79452e3f4ea (94 revisions)

flutter/flutter@824868f...f79452e

2025-06-12 [email protected] Roll Skia from 38b9f9b0e496 to b41e7017658e (12 revisions) (flutter/flutter#170514)
2025-06-12 [email protected] Fix `Semantics.identifier` on TextField not working on web (flutter/flutter#170395)
2025-06-12 [email protected] Revert "[a11y] Semantics flag refactor step 2: embedder part" (flutter/flutter#170498)
2025-06-12 [email protected] Copy `packages_autoroller` to `dev/packages_autoroller/run`. (flutter/flutter#170495)
2025-06-11 [email protected] Allow the Slider to always show the value indicator. (flutter/flutter#162223)
2025-06-11 [email protected] Update master branch `CHANGELOG.md` for 3.32.3. (flutter/flutter#170492)
2025-06-11 [email protected] Add time to first frame for `Mac_arm64_ios imitation_game_swiftui` (flutter/flutter#167602)
2025-06-11 [email protected] Make `DropdownMenu` TextField reactive to label changes (flutter/flutter#162062)
2025-06-11 [email protected] Roll Dart SDK from b569246d64bc to 9f741ef8a689 (1 revision) (flutter/flutter#170473)
2025-06-11 [email protected] [impellerc] add GLES shader define. (flutter/flutter#170375)
2025-06-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Pause UIScene migration (#170457)" (flutter/flutter#170487)
2025-06-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Fix DropdownButtonFormField focusing when replacing FocusNode (#166645)" (flutter/flutter#170477)
2025-06-11 [email protected] Pause UIScene migration (flutter/flutter#170457)
2025-06-11 [email protected] iOS tool dylibs do not need entitlements (flutter/flutter#170448)
2025-06-11 [email protected] Adds getters for different formats of build mode name (flutter/flutter#170251)
2025-06-11 [email protected] Remove all code in `conductor/core` that is now unused (flutter/flutter#170454)
2025-06-11 [email protected] Roll Packages from 974f152 to 0b322a2 (9 revisions) (flutter/flutter#170462)
2025-06-11 [email protected] Roll Skia from b78fdc3ba26b to 38b9f9b0e496 (7 revisions) (flutter/flutter#170453)
2025-06-11 [email protected] Fix remaining iconbuttontheme overrides in listtile (flutter/flutter#169029)
2025-06-11 [email protected] Fix DropdownButtonFormField focusing when replacing FocusNode (flutter/flutter#166645)
2025-06-11 [email protected] Add CupertinoRadio widget of the week video (flutter/flutter#170027)
2025-06-11 [email protected] Docs: Update docs for suffix icon interaction behaviour (flutter/flutter#169828)
2025-06-11 [email protected] [ Widget Preview ] Don't try to load previews with compile-time errors (flutter/flutter#170262)
2025-06-11 [email protected] [canvaskit] Manually trigger `input` event in text editing tests for Safari (flutter/flutter#170022)
2025-06-11 [email protected] Tiny clean-up in triage docs (flutter/flutter#170429)
2025-06-11 [email protected] Roll pub packages (flutter/flutter#170444)
2025-06-11 [email protected] [Impeller] Avoid creating paths when rendering arcs (flutter/flutter#170398)
2025-06-11 [email protected] Fix date picker calendar tap targets (portrait mode) (flutter/flutter#169163)
2025-06-11 [email protected] Add SK_SUPPORT_UNSPANNED_APIS staging flag (flutter/flutter#170139)
2025-06-11 [email protected] Roll Dart SDK from 6290dfd1d88a to b569246d64bc (4 revisions) (flutter/flutter#170430)
2025-06-11 [email protected] Roll Skia from 910070084066 to b78fdc3ba26b (33 revisions) (flutter/flutter#170412)
2025-06-11 [email protected] Use pathops module groups (flutter/flutter#169857)
2025-06-10 [email protected] Roll pub packages (flutter/flutter#170399)
2025-06-10 [email protected] Verify old version of Python has the `lib2to3` import available (flutter/flutter#170187)
2025-06-10 [email protected] Use "flutter pub get" to resolve packages when building the docs snippets tool (flutter/flutter#170381)
2025-06-10 [email protected] [engine] Reland: ensure engines spawned from an engine using dynamic rendering selection still use the dynamic surface. (flutter/flutter#170389)
2025-06-10 [email protected] Revert "Add call to Dart_NotifyDestroyed when the flutter view is des… (flutter/flutter#170309)
2025-06-10 [email protected] fix: set versionCodeOverride when split-per-abi is specified (flutter/flutter#169816)
2025-06-10 [email protected] fix: Skip native assets build test (flaky, takes 15m+) (flutter/flutter#170383)
2025-06-10 [email protected] Marks Linux web_benchmarks_ddc to be unflaky (flutter/flutter#167631)
2025-06-10 [email protected] Marks Linux web_benchmarks_ddc_hot_reload to be unflaky (flutter/flutter#168807)
2025-06-10 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[engine] ensure engines spawned from an engine using dynamic rendering selection still use the dynamic surface. (#170313)" (flutter/flutter#170377)
2025-06-10 [email protected] [a11y] Semantics flag refactor step 2: embedder part (flutter/flutter#167738)
2025-06-10 [email protected] Roll Dart SDK from c26e7ca44805 to 6290dfd1d88a (5 revisions) (flutter/flutter#170363)
2025-06-10 [email protected] Remove `pubspec.lock` files for `flutter_tools` and `widget_preview_scaffold`. (flutter/flutter#170364)
2025-06-10 [email protected] [engine] ensure engines spawned from an engine using dynamic rendering selection still use the dynamic surface. (flutter/flutter#170313)
...
feduke-nukem pushed a commit to Yobari-Timeliners/golub that referenced this pull request Jun 13, 2025
Roll Flutter from 824868f5d1e6 to f79452e3f4ea (94 revisions)

flutter/flutter@824868f...f79452e

2025-06-12 [email protected] Roll Skia from 38b9f9b0e496 to b41e7017658e (12 revisions) (flutter/flutter#170514)
2025-06-12 [email protected] Fix `Semantics.identifier` on TextField not working on web (flutter/flutter#170395)
2025-06-12 [email protected] Revert "[a11y] Semantics flag refactor step 2: embedder part" (flutter/flutter#170498)
2025-06-12 [email protected] Copy `packages_autoroller` to `dev/packages_autoroller/run`. (flutter/flutter#170495)
2025-06-11 [email protected] Allow the Slider to always show the value indicator. (flutter/flutter#162223)
2025-06-11 [email protected] Update master branch `CHANGELOG.md` for 3.32.3. (flutter/flutter#170492)
2025-06-11 [email protected] Add time to first frame for `Mac_arm64_ios imitation_game_swiftui` (flutter/flutter#167602)
2025-06-11 [email protected] Make `DropdownMenu` TextField reactive to label changes (flutter/flutter#162062)
2025-06-11 [email protected] Roll Dart SDK from b569246d64bc to 9f741ef8a689 (1 revision) (flutter/flutter#170473)
2025-06-11 [email protected] [impellerc] add GLES shader define. (flutter/flutter#170375)
2025-06-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Pause UIScene migration (#170457)" (flutter/flutter#170487)
2025-06-11 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Fix DropdownButtonFormField focusing when replacing FocusNode (#166645)" (flutter/flutter#170477)
2025-06-11 [email protected] Pause UIScene migration (flutter/flutter#170457)
2025-06-11 [email protected] iOS tool dylibs do not need entitlements (flutter/flutter#170448)
2025-06-11 [email protected] Adds getters for different formats of build mode name (flutter/flutter#170251)
2025-06-11 [email protected] Remove all code in `conductor/core` that is now unused (flutter/flutter#170454)
2025-06-11 [email protected] Roll Packages from 974f1522ee03 to 17c02a5 (9 revisions) (flutter/flutter#170462)
2025-06-11 [email protected] Roll Skia from b78fdc3ba26b to 38b9f9b0e496 (7 revisions) (flutter/flutter#170453)
2025-06-11 [email protected] Fix remaining iconbuttontheme overrides in listtile (flutter/flutter#169029)
2025-06-11 [email protected] Fix DropdownButtonFormField focusing when replacing FocusNode (flutter/flutter#166645)
2025-06-11 [email protected] Add CupertinoRadio widget of the week video (flutter/flutter#170027)
2025-06-11 [email protected] Docs: Update docs for suffix icon interaction behaviour (flutter/flutter#169828)
2025-06-11 [email protected] [ Widget Preview ] Don't try to load previews with compile-time errors (flutter/flutter#170262)
2025-06-11 [email protected] [canvaskit] Manually trigger `input` event in text editing tests for Safari (flutter/flutter#170022)
2025-06-11 [email protected] Tiny clean-up in triage docs (flutter/flutter#170429)
2025-06-11 [email protected] Roll pub packages (flutter/flutter#170444)
2025-06-11 [email protected] [Impeller] Avoid creating paths when rendering arcs (flutter/flutter#170398)
2025-06-11 [email protected] Fix date picker calendar tap targets (portrait mode) (flutter/flutter#169163)
2025-06-11 [email protected] Add SK_SUPPORT_UNSPANNED_APIS staging flag (flutter/flutter#170139)
2025-06-11 [email protected] Roll Dart SDK from 6290dfd1d88a to b569246d64bc (4 revisions) (flutter/flutter#170430)
2025-06-11 [email protected] Roll Skia from 910070084066 to b78fdc3ba26b (33 revisions) (flutter/flutter#170412)
2025-06-11 [email protected] Use pathops module groups (flutter/flutter#169857)
2025-06-10 [email protected] Roll pub packages (flutter/flutter#170399)
2025-06-10 [email protected] Verify old version of Python has the `lib2to3` import available (flutter/flutter#170187)
2025-06-10 [email protected] Use "flutter pub get" to resolve packages when building the docs snippets tool (flutter/flutter#170381)
2025-06-10 [email protected] [engine] Reland: ensure engines spawned from an engine using dynamic rendering selection still use the dynamic surface. (flutter/flutter#170389)
2025-06-10 [email protected] Revert "Add call to Dart_NotifyDestroyed when the flutter view is des… (flutter/flutter#170309)
2025-06-10 [email protected] fix: set versionCodeOverride when split-per-abi is specified (flutter/flutter#169816)
2025-06-10 [email protected] fix: Skip native assets build test (flaky, takes 15m+) (flutter/flutter#170383)
2025-06-10 [email protected] Marks Linux web_benchmarks_ddc to be unflaky (flutter/flutter#167631)
2025-06-10 [email protected] Marks Linux web_benchmarks_ddc_hot_reload to be unflaky (flutter/flutter#168807)
2025-06-10 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[engine] ensure engines spawned from an engine using dynamic rendering selection still use the dynamic surface. (#170313)" (flutter/flutter#170377)
2025-06-10 [email protected] [a11y] Semantics flag refactor step 2: embedder part (flutter/flutter#167738)
2025-06-10 [email protected] Roll Dart SDK from c26e7ca44805 to 6290dfd1d88a (5 revisions) (flutter/flutter#170363)
2025-06-10 [email protected] Remove `pubspec.lock` files for `flutter_tools` and `widget_preview_scaffold`. (flutter/flutter#170364)
2025-06-10 [email protected] [engine] ensure engines spawned from an engine using dynamic rendering selection still use the dynamic surface. (flutter/flutter#170313)
...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
engine flutter/engine repository. See also e: labels.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants