Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

gh-101981: Build macOS as recommended by the devguide#102070

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Conversation

@erlend-aasland
Copy link
Contributor

@erlend-aaslanderlend-aasland commentedFeb 20, 2023
edited by miss-islington
Loading

Automerge-Triggered-By: GH:erlend-aasland

@erlend-aaslanderlend-aaslandforce-pushed theci/build-macos-as-recommended-by-the-devguide branch from5aa9d55 to3eaab15CompareFebruary 20, 2023 12:40
@erlend-aaslanderlend-aasland changed the titleCI: Build macOS as recommended by the devguidegh-101981: Build macOS as recommended by the devguideFeb 20, 2023
@erlend-aaslanderlend-aasland marked this pull request as ready for reviewFebruary 20, 2023 12:46
@erlend-aasland
Copy link
ContributorAuthor

Installing the Homebrew dependencies takes between 10 to 20 seconds of CI time. We can consider caching those deps (cc.@hugovk, as our CI/GitHub/DevOps oracle).

@erlend-aasland
Copy link
ContributorAuthor

ApparentlyTools/build/check_extension_modules.py is too fragile. We should harden it and ensure that it dumps enough debug info on failure, so we won't end up with a week of red CI crosses again.

@erlend-aaslanderlend-aasland added needs backport to 3.10only security fixes needs backport to 3.11only security fixes labelsFeb 20, 2023
@erlend-aasland
Copy link
ContributorAuthor

I intend to merge this as soon as the CI turns green. If there are objections, we can always revert or create a follow-up PR.

@corona10
Copy link
Member

corona10 commentedFeb 20, 2023
edited
Loading

@erlend-aasland What's difference between#101991?

Copy link
Member

@corona10corona10 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

lgtm

@erlend-aasland
Copy link
ContributorAuthor

@erlend-aasland What's difference between#101991?

Oh, sorry, I missed you had a similar PR!

@erlend-aasland
Copy link
ContributorAuthor

@erlend-aasland What's difference between#101991?

AFAICS, my PR is slightly cleaner in that it still uses multiple build steps (first set environment variables, then run configure, etc.); it makes debugging the CI easier. Also, I did not touch any of the tests.

@miss-islington
Copy link
Contributor

Status check is done, and it's a success ✅.

@miss-islingtonmiss-islington merged commit2713631 intopython:mainFeb 20, 2023
@miss-islington
Copy link
Contributor

Thanks@erlend-aasland for the PR 🌮🎉.. I'm working now to backport this PR to: 3.10, 3.11.
🐍🍒⛏🤖

@erlend-aaslanderlend-aasland deleted the ci/build-macos-as-recommended-by-the-devguide branchFebruary 20, 2023 13:07
@erlend-aasland
Copy link
ContributorAuthor

Thanks for the review, Dong-hee!

miss-islington pushed a commit to miss-islington/cpython that referenced this pull requestFeb 20, 2023
…-102070)(cherry picked from commit2713631)Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>Automerge-Triggered-By: GH:erlend-aasland
miss-islington pushed a commit to miss-islington/cpython that referenced this pull requestFeb 20, 2023
…-102070)(cherry picked from commit2713631)Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>Automerge-Triggered-By: GH:erlend-aasland
@corona10
Copy link
Member

corona10 commentedFeb 20, 2023
edited
Loading

it makes debugging the CI easier. Also, I did not touch any of the tests.

It looks like the GHA performance issue is resolved.
During the weekend it was not.

erlend-aasland reacted with thumbs up emoji

@corona10
Copy link
Member

AFAICS, my PR is slightly cleaner in that it still uses multiple build steps (first set environment variables, then run configure

see:#101991 (comment)

@hugovk
Copy link
Member

hugovk commentedFeb 20, 2023
edited
Loading

Re: caching Homebrew:

https://stackoverflow.com/a/65056232/724176 shows how to do it, but warns:

You should note that this cache is unlikely to speed up your workflow. Installing Homebrew bottles (the default) will usually have similar performance to downloading from GitHub/Azure's own storage cache since the bottle files are served on bintray's CDN.

https://stackoverflow.com/a/63681598/724176 has 3 options, which aren't great: 1 is caching everything; 2 means identifying and copying binaries; 3 is Docker.


Looking at thelog:

==> Running `brew cleanup pkg-config`...Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.

We can set that if it makes things quicker, we don't need to do any cleanup, the whole CI run is disposed of after the run. And the first SO answer above setsHOMEBREW_NO_AUTO_UPDATE, that may save time too.

Here's a run ofmain with this PR,brew install takes 25s:

WithHOMEBREW_NO_AUTO_UPDATE it drops to 15s:

And withHOMEBREW_NO_INSTALL_CLEANUP it's 16s, basically the same:

So let's add them.

     needs: check_source     if: needs.check_source.outputs.run_tests == 'true'     env:+      HOMEBREW_NO_AUTO_UPDATE: 1+      HOMEBREW_NO_INSTALL_CLEANUP: 1       PYTHONSTRICTEXTENSIONBUILD: 1     steps:     - uses: actions/checkout@v3

Edit: Well, these are all within the expected range anyway:

Installing the Homebrew dependencies takes between 10 to 20 seconds of CI time.

But these env vars shouldn'tadd time :)

miss-islington added a commit that referenced this pull requestFeb 20, 2023
(cherry picked from commit2713631)Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>Automerge-Triggered-By: GH:erlend-aasland
@erlend-aasland
Copy link
ContributorAuthor

@hugovk, yeah adding theHOMEBREW_* variables makes sense.@corona10, can you update your PR to include those?

corona10 reacted with thumbs up emoji

@hugovk
Copy link
Member

And they're documented athttps://docs.brew.sh/Manpage#environment

erlend-aasland reacted with thumbs up emoji

erlend-aasland pushed a commit that referenced this pull requestFeb 20, 2023
…) (#102073)gh-101981: Build macOS as recommended by the devguide (GH-102070)(cherry picked from commit2713631)
jaraco pushed a commit to jaraco/cpython that referenced this pull requestFeb 20, 2023
carljm added a commit to carljm/cpython that referenced this pull requestFeb 20, 2023
* main: (60 commits)pythongh-102056: Fix a few bugs in error handling of exception printing code (python#102078)pythongh-102011: use sys.exception() instead of sys.exc_info() in docs where possible (python#102012)pythongh-101566: Sync with zipp 3.14. (pythonGH-102018)pythonGH-99818: improve the documentation for zipfile.Path and Traversable (pythonGH-101589)pythongh-88233: zipfile: handle extras after a zip64 extra (pythonGH-96161)pythongh-101981: Apply HOMEBREW related environment variables (pythongh-102074)pythongh-101907: Stop using `_Py_OPCODE` and `_Py_OPARG` macros (pythonGH-101912)pythongh-101819: Adapt _io types to heap types, batch 1 (pythonGH-101949)pythongh-101981: Build macOS as recommended by the devguide (pythonGH-102070)pythongh-97786: Fix compiler warnings in pytime.c (python#101826)pythongh-101578: Amend PyErr_{Set,Get}RaisedException docs (python#101962)  Misc improvements to the float tutorial (pythonGH-102052)pythongh-85417: Clarify behaviour on branch cuts in cmath module (python#102046)pythongh-100425: Update tutorial docs related to sum() accuracy (FH-101854)  Add missing 'is' to `cmath.log()` docstring (python#102049)pythongh-100210: Correct the comment link for unescaping HTML (python#100212)pythongh-97930: Also include subdirectory in makefile. (python#102030)pythongh-99735: Use required=True in argparse subparsers example (python#100927)  Fix incorrectly documented attribute in csv docs (python#101250)pythonGH-84783: Make the slice object hashable (pythonGH-101264)  ...
@ned-deily
Copy link
Member

ned-deily commentedFeb 21, 2023
edited
Loading

Sorry that I'm a bit late to this discussion but I have to point out that there appears to be a bit of a misunderstanding here of whatconfigure does and, thus, this PR is not doing what its title asserts :)

configure goes to great lengths to ensure that the necessary environment specified at the timeconfigure is run is preserved in the generatedMakefile such that whenevermake is run the necessary environment variable values are created in themake environment. That means that, once you have runconfigure, you can go back later, in a different terminal session, say, and runmake without having to define the essential environment variables (likeCFLAGS andLDFLAGS) as they were set atconfigure time.

However, theMakefile does allow for augmenting those environment variables if they are defined in the environment when runningmake. So, if those environment variables have been defined externally when runningmake, you may get different results of a build. That's fine if that's what you want to do. But, by default, you should not have to define those variables for a normal build after runningconfigure. That's the way things have worked for a very long time.

Note that the devguide recipe for 3.10+ deliberately doesnot export any environment variables in the shell environment when runningconfigue andmake; by placing the environment variables definitions on theconfigure command line, they are local to theconfigure process and its children (and preserved by it in theMakefile). With the github workflow as merged here, theCFLAGS andLDFLAGS values are effectively unnecessarily being exported into each subsequent build step by usingGITHUB_ENV. This isn't just a stylistic change; it bypasses a small but important test of the build process that those variables are being properly preserved and recreated bymake steps so that we are confident that the Makefile stands alone and is not dependent on externally defining any configuration-related variables.

CAM-Gerlach, erlend-aasland, gpshead, and hauntsaninja reacted with thumbs up emoji

@erlend-aasland
Copy link
ContributorAuthor

@ned-deily, this is true (I noticed my error post merge, see my comments on Discord). Dong-hee had a fixup PR ready at some point, but he reverted that specific change. I definitely agree that we should provide the environment variables only whenconfigure is run!

ned-deily reacted with thumbs up emoji

@miss-islington
Copy link
Contributor

Thanks@erlend-aasland for the PR 🌮🎉.. I'm working now to backport this PR to: 3.9.
🐍🍒⛏🤖

@miss-islington
Copy link
Contributor

Thanks@erlend-aasland for the PR 🌮🎉.. I'm working now to backport this PR to: 3.8.
🐍🍒⛏🤖

@miss-islington
Copy link
Contributor

Sorry,@erlend-aasland, I could not cleanly backport this to3.9 due to a conflict.
Please backport usingcherry_picker on command line.
cherry_picker 27136310414965a3ea7f835e416cf74b91cefb48 3.9

@miss-islingtonmiss-islington self-assigned thisFeb 21, 2023
@miss-islington
Copy link
Contributor

Sorry@erlend-aasland, I had trouble checking out the3.8 backport branch.
Please retry by removing and re-adding the "needs backport to 3.8" label.
Alternatively, you can backport usingcherry_picker on the command line.
cherry_picker 27136310414965a3ea7f835e416cf74b91cefb48 3.8

@erlend-aasland
Copy link
ContributorAuthor

I'll create backports for 3.9 and 3.8 with the fixup in#102131 applied.

carljm added a commit to carljm/cpython that referenced this pull requestFeb 22, 2023
* main: (225 commits)pythongh-102056: Fix a few bugs in error handling of exception printing code (python#102078)pythongh-102011: use sys.exception() instead of sys.exc_info() in docs where possible (python#102012)pythongh-101566: Sync with zipp 3.14. (pythonGH-102018)pythonGH-99818: improve the documentation for zipfile.Path and Traversable (pythonGH-101589)pythongh-88233: zipfile: handle extras after a zip64 extra (pythonGH-96161)pythongh-101981: Apply HOMEBREW related environment variables (pythongh-102074)pythongh-101907: Stop using `_Py_OPCODE` and `_Py_OPARG` macros (pythonGH-101912)pythongh-101819: Adapt _io types to heap types, batch 1 (pythonGH-101949)pythongh-101981: Build macOS as recommended by the devguide (pythonGH-102070)pythongh-97786: Fix compiler warnings in pytime.c (python#101826)pythongh-101578: Amend PyErr_{Set,Get}RaisedException docs (python#101962)  Misc improvements to the float tutorial (pythonGH-102052)pythongh-85417: Clarify behaviour on branch cuts in cmath module (python#102046)pythongh-100425: Update tutorial docs related to sum() accuracy (FH-101854)  Add missing 'is' to `cmath.log()` docstring (python#102049)pythongh-100210: Correct the comment link for unescaping HTML (python#100212)pythongh-97930: Also include subdirectory in makefile. (python#102030)pythongh-99735: Use required=True in argparse subparsers example (python#100927)  Fix incorrectly documented attribute in csv docs (python#101250)pythonGH-84783: Make the slice object hashable (pythonGH-101264)  ...
@bedevere-bot
Copy link

GH-102186 is a backport of this pull request to the3.9 branch.

erlend-aasland added a commit to erlend-aasland/cpython that referenced this pull requestFeb 23, 2023
…thonGH-102070)Automerge-Triggered-By: GH:erlend-aasland.(cherry picked from commit2713631)Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
@bedevere-bot
Copy link

GH-102187 is a backport of this pull request to the3.8 branch.

python-sidebar pushed a commit to python-sidebar/Python-Documentation-Fork-With-TOC that referenced this pull requestSep 1, 2024
python-sidebar pushed a commit to python-sidebar/Python-Documentation-Fork-With-TOC that referenced this pull requestSep 1, 2024
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

@corona10corona10corona10 approved these changes

@ned-deilyned-deilyAwaiting requested review from ned-deily

@ezio-melottiezio-melottiAwaiting requested review from ezio-melottiezio-melotti is a code owner

Assignees

@miss-islingtonmiss-islington

Labels

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

6 participants

@erlend-aasland@corona10@miss-islington@bedevere-bot@hugovk@ned-deily

[8]ページ先頭

©2009-2025 Movatter.jp