Skip to content
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

gh-112088: Run autoreconf in GHA check_generated_files #112090

Merged
merged 1 commit into from
Nov 15, 2023

Conversation

vstinner
Copy link
Member

@vstinner vstinner commented Nov 14, 2023

The "Check if generated files are up to date" job of GitHub Actions now runs the "autoreconf -ivf -Werror" command instead of the "make regen-configure" command to avoid depending on the unstable quay.io server.

Copy link
Member

@gpshead gpshead left a comment

Choose a reason for hiding this comment

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

I think this is a good idea. It doesn't appear there is any reason for the quay.io image anymore given ubuntu-22.04 has a sufficiently good autoconf.

@vstinner
Copy link
Member Author

cc @erlend-aasland

Copy link
Member

@hugovk hugovk left a comment

Choose a reason for hiding this comment

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

Makefile.pre.in Outdated Show resolved Hide resolved
@vstinner
Copy link
Member Author

@hugovk: I completed the PR to address your review. Would you mind to review the updated PR?

Let's update https://github.com/python/cpython/blob/d4f83e1e3a19e2f881115f20d58ae6a019ddb48f/Doc/using/configure.rst#generated-files as well.

Done.

And backport?

I added the backport to 3.11 and 3.12 labels.

@vstinner
Copy link
Member Author

The main point of this PR is that Tools/build/regen-configure.sh now uses the same container image than the GitHub Action job, so the job doesn't have to run autoreconf in a container, but can run it directly.

The "Check if generated files are up to date" job of GitHub Actions
now runs the "autoreconf -ivf -Werror" command instead of the "make
regen-configure" command to avoid depending on the external quay.io
server.

Add Tools/build/regen-configure.sh script to regenerate the configure
with an Ubuntu container image. The
"quay.io/tiran/cpython_autoconf:271" container image
(https://github.com/tiran/cpython_autoconf) is no longer used.
@vstinner
Copy link
Member Author

Oh, there is a fix in the Changelog entry causing the Docs job to fail: fixed.

@vstinner
Copy link
Member Author

@erlend-aasland: It would be nice if you could review this change, since you made many configure changes last months ;-)

@erlend-aasland
Copy link
Contributor

Also, the devguide must be updated.

Copy link
Contributor

@erlend-aasland erlend-aasland left a comment

Choose a reason for hiding this comment

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

This looks good to me. (I'm a little bit puzzled by the aclocal.m4 and configure changes, but they are also fine.)

Thanks for doing this.

@erlend-aasland
Copy link
Contributor

IIRC, we did the autoconf version bump before the 3.12 freeze, so IMO we should backport this to 3.12.

@vstinner vstinner removed the needs backport to 3.11 only security fixes label Nov 15, 2023
@vstinner
Copy link
Member Author

This looks good to me. (I'm a little bit puzzled by the aclocal.m4 and configure changes, but they are also fine.)

I'm not sure if I picked the wrong pkg-config package. But well, for now, my main worry is more to make the whole Python workflow more reliable by avoiding depending on the external quay.io server which had multiple outages in several days.

With my change, the Python workflow no longer pulls an external container image, but simply reuse what's available on Ubuntu 22.04 in the GitHub Action.

IIRC, we did the autoconf version bump before the 3.12 freeze, so IMO we should backport this to 3.12.

Oh. So we cannot backport this change to 3.11?

@vstinner vstinner merged commit d9fd33a into python:main Nov 15, 2023
31 checks passed
@vstinner vstinner deleted the avoid_quay_io branch November 15, 2023 20:47
@miss-islington-app

This comment was marked as outdated.

miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Nov 15, 2023
…H-112090)

The "Check if generated files are up to date" job of GitHub Actions
now runs the "autoreconf -ivf -Werror" command instead of the "make
regen-configure" command to avoid depending on the external quay.io
server.

Add Tools/build/regen-configure.sh script to regenerate the configure
with an Ubuntu container image. The
"quay.io/tiran/cpython_autoconf:271" container image
(https://github.com/tiran/cpython_autoconf) is no longer used.
(cherry picked from commit d9fd33a)

Co-authored-by: Victor Stinner <[email protected]>
@bedevere-app

This comment was marked as outdated.

@bedevere-app bedevere-app bot removed the needs backport to 3.12 bug and security fixes label Nov 15, 2023
@vstinner
Copy link
Member Author

Merged. Thanks for reviews. Let's start with a backport to 3.12.

@erlend-aasland
Copy link
Contributor

Oh. So we cannot backport this change to 3.11?

No, 3.11 uses a patched Autoconf 2.69 from Alpine Linux, not a vanilla 2.69 installation.

@sethmlarson
Copy link
Contributor

@vstinner I was doing some work on release-tools adjacent to this, @zware pointed me to this PR. What are your thoughts on backporting the regen-configure makefile target to all supported versions so that release-tools can depend on it being there?

@gpshead
Copy link
Member

gpshead commented Nov 15, 2023

For 3.11 and earlier autoconf version configure generation udpates, ask the release managers (@pablogsal and @ambv) for those branches. (it makes sense for 3.12)

vstinner added a commit to vstinner/cpython that referenced this pull request Nov 16, 2023
…112090)

The "Check if generated files are up to date" job of GitHub Actions
now runs the "autoreconf -ivf -Werror" command instead of the "make
regen-configure" command to avoid depending on the external quay.io
server.

Add Tools/build/regen-configure.sh script to regenerate the configure
with an Ubuntu container image. The
"quay.io/tiran/cpython_autoconf:271" container image
(https://github.com/tiran/cpython_autoconf) is no longer used.

(cherry picked from commit d9fd33a)
@bedevere-app

This comment was marked as outdated.

1 similar comment
@bedevere-app

This comment was marked as duplicate.

vstinner added a commit that referenced this pull request Nov 16, 2023
) (#112159)

gh-112088: Run autoreconf in GHA check_generated_files (#112090)

The "Check if generated files are up to date" job of GitHub Actions
now runs the "autoreconf -ivf -Werror" command instead of the "make
regen-configure" command to avoid depending on the external quay.io
server.

Add Tools/build/regen-configure.sh script to regenerate the configure
with an Ubuntu container image. The
"quay.io/tiran/cpython_autoconf:271" container image
(https://github.com/tiran/cpython_autoconf) is no longer used.

(cherry picked from commit d9fd33a)
aisk pushed a commit to aisk/cpython that referenced this pull request Feb 11, 2024
…112090)

The "Check if generated files are up to date" job of GitHub Actions
now runs the "autoreconf -ivf -Werror" command instead of the "make
regen-configure" command to avoid depending on the external quay.io
server.

Add Tools/build/regen-configure.sh script to regenerate the configure
with an Ubuntu container image. The
"quay.io/tiran/cpython_autoconf:271" container image
(https://github.com/tiran/cpython_autoconf) is no longer used.
Glyphack pushed a commit to Glyphack/cpython that referenced this pull request Sep 2, 2024
…112090)

The "Check if generated files are up to date" job of GitHub Actions
now runs the "autoreconf -ivf -Werror" command instead of the "make
regen-configure" command to avoid depending on the external quay.io
server.

Add Tools/build/regen-configure.sh script to regenerate the configure
with an Ubuntu container image. The
"quay.io/tiran/cpython_autoconf:271" container image
(https://github.com/tiran/cpython_autoconf) is no longer used.
@efimov-mikhail
Copy link
Contributor

I can see using of aclocal 1.16.5 in this PR.
But in docs we write "Autoconf 2.71 and aclocal 1.16.4 are required to regenerate the configure script". (https://docs.python.org/3.14/using/configure.html#build-requirements).

Should we provide some changes to docs for update them?
@vstinner

@vstinner
Copy link
Member Author

Should we provide some changes to docs for update them?

Yes. Do you want to propose a PR to update the doc?

@efimov-mikhail
Copy link
Contributor

Yes. Do you want to propose a PR to update the doc?

Yes, I do.

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

Successfully merging this pull request may close these issues.

6 participants