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

Action started failing recently #210

Closed
epage opened this issue Sep 27, 2024 · 4 comments
Closed

Action started failing recently #210

epage opened this issue Sep 27, 2024 · 4 comments

Comments

@epage
Copy link

epage commented Sep 27, 2024

In all of my repos, I have a workflow like:

name: pre-commit

permissions: {} # none

on:
  pull_request:
  push:
    branches: [master]

jobs:
  pre-commit:
    permissions:
      contents: read
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - uses: actions/setup-python@v5
    - uses: pre-commit/[email protected]

See https://github.com/clap-rs/clap/blob/master/.github/workflows/pre-commit.yml

Recently, it started to fail

Run python -m pip install pre-commit
  python -m pip install pre-commit
  shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
  env:
    RUST_BACKTRACE: 1
    CARGO_TERM_COLOR: always
    CLICOLOR: 1
error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
    python3-xyz, where xyz is the package you are trying to
    install.
    
    If you wish to install a non-Debian-packaged Python package,
    create a virtual environment using python3 -m venv path/to/venv.
    Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
    sure you have python3-full installed.
    
    If you wish to install a non-Debian packaged Python application,
    it may be easiest to use pipx install xyz, which will manage a
    virtual environment for you. Make sure you have pipx installed.
    
    See /usr/share/doc/python3.12/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

https://github.com/clap-rs/clap/actions/runs/11062889874/job/30738117370?pr=5750

@asottile
Copy link
Member

read the output of the action before it

@epage
Copy link
Author

epage commented Sep 27, 2024

For anyone else looking into this, the "action before" being referred to is "setup-python". I kept to the default "don't specify the Python version" documented in this repo but have updated the version of "setup-python" to newer versions. This started failing when ubuntu-latest started getting mapped to the ubuntu-24.04 image.

The "output" being referred to is

Warning: Neither 'python-version' nor 'python-version-file' inputs were supplied. Attempting to find '.python-version' file.
Warning: .python-version doesn't exist.
Warning: The `python-version` input is not set.  The version of Python currently in `PATH` will be used.

I saw that but I took that as the python-version field being defaulted to python --version, not that it would skip installing any version. To resolve this problem, you have to pick a specific Python version to use. It seems there isn't a way to say "get latest" and so users will need to keep in sync versions of Python that work with versions of pre-commit as tools auto-update pre-commit but extra work is needed to auto-update Python version.

@asottile
Copy link
Member

python-version: 3.x I believe will auto update to latest -- but idk github made some weird choices with setup-python to make it "more like setup-node" for some reason

epage added a commit to epage/_rust that referenced this issue Sep 27, 2024
This is needed with the ubuntu-24.04 images so that `setup-python` will
install a version of Python that the pre-commit action can install into.

See pre-commit/action#210 for more of an analysis of this.
epage added a commit to epage/_rust that referenced this issue Sep 27, 2024
This is needed with the ubuntu-24.04 images so that `setup-python` will
install a version of Python that the pre-commit action can install into.

See pre-commit/action#210 for more of an analysis of this.
epage added a commit to epage/_rust that referenced this issue Sep 27, 2024
This is needed with the ubuntu-24.04 images so that `setup-python` will
install a version of Python that the pre-commit action can install into.

See pre-commit/action#210 for more of an analysis of this.
epage added a commit to epage/_rust that referenced this issue Sep 27, 2024
This is needed with the ubuntu-24.04 images so that `setup-python` will
install a version of Python that the pre-commit action can install into.

See pre-commit/action#210 for more of an analysis of this.
@epage
Copy link
Author

epage commented Sep 27, 2024

Thanks for the tip!

SRv6d pushed a commit to SRv6d/winnow that referenced this issue Sep 29, 2024
This is needed with the ubuntu-24.04 images so that `setup-python` will
install a version of Python that the pre-commit action can install into.

See pre-commit/action#210 for more of an analysis of this.
SRv6d pushed a commit to SRv6d/winnow that referenced this issue Sep 29, 2024
This is needed with the ubuntu-24.04 images so that `setup-python` will
install a version of Python that the pre-commit action can install into.

See pre-commit/action#210 for more of an analysis of this.
SRv6d pushed a commit to SRv6d/winnow that referenced this issue Sep 29, 2024
This is needed with the ubuntu-24.04 images so that `setup-python` will
install a version of Python that the pre-commit action can install into.

See pre-commit/action#210 for more of an analysis of this.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants