Skip to content

Pre-commit checks failing in GitHub Actions with Python 3.12(ubuntu:latest) #754

@nasudadada

Description

@nasudadada

Issue summary

Pre-commit checks failing in GitHub Actions with Python 3.12(ubuntu:latest)

This issue was discovered while working on #752 #753

Expected behavior

  • Pre-commit checks should run successfully in GitHub Actions environment

Actual behavior

Current Error Log from GitHub Actions (link to failed job)
Error Log
/home/runner/.local/bin/pre-commit run --show-diff-on-failure --color=always --all-files
[INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks.
[WARNING] repo `[https://github.com/pre-commit/pre-commit-hooks`](https://github.com/pre-commit/pre-commit-hooks%60) uses deprecated stage names (commit, push) which will be removed in a future version.  Hint: often `pre-commit autoupdate --repo [https://github.com/pre-commit/pre-commit-hooks`](https://github.com/pre-commit/pre-commit-hooks%60) will fix this.  if it does not -- consider reporting an issue to that repo.
[INFO] Initializing environment for https://github.com/psf/black.
[INFO] Initializing environment for https://github.com/PyCQA/pylint.
[INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/psf/black.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
[INFO] Installing environment for https://github.com/PyCQA/pylint.
[INFO] Once installed this environment will be reused.
[INFO] This may take a few minutes...
An unexpected error has occurred: CalledProcessError: command: ('/home/runner/.cache/pre-commit/repo8dfyi049/py_env-python3/bin/python', '-mpip', 'install', '.')
return code: 1
stdout:
    Processing /home/runner/.cache/pre-commit/repo8dfyi049
      Installing build dependencies: started
      Installing build dependencies: finished with status 'done'
      Getting requirements to build wheel: started
      Getting requirements to build wheel: finished with status 'error'
stderr:
      error: subprocess-exited-with-error
      
      × Getting requirements to build wheel did not run successfully.
      │ exit code: 1
      ╰─> [33 lines of output]
          Traceback (most recent call last):
            File "/home/runner/.cache/pre-commit/repo8dfyi049/py_env-python3/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
              main()
            File "/home/runner/.cache/pre-commit/repo8dfyi049/py_env-python3/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
              json_out['return_val'] = hook(**hook_input['kwargs'])
                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
            File "/home/runner/.cache/pre-commit/repo8dfyi049/py_env-python3/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 112, in get_requires_for_build_wheel
              backend = _build_backend()
                        ^^^^^^^^^^^^^^^^
            File "/home/runner/.cache/pre-commit/repo8dfyi049/py_env-python3/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 77, in _build_backend
              obj = import_module(mod_path)
                    ^^^^^^^^^^^^^^^^^^^^^^^
            File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module
              return _bootstrap._gcd_import(name[level:], package, level)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
            File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
            File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
            File "<frozen importlib._bootstrap>", line [131](https://github.com/Shopify/shopify_python_api/actions/runs/12671334535/job/35455806742#step:4:133)0, in _find_and_load_unlocked
            File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
            File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
            File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
            File "<frozen importlib._bootstrap>", line [133](https://github.com/Shopify/shopify_python_api/actions/runs/12671334535/job/35455806742#step:4:135)1, in _find_and_load_unlocked
            File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
            File "<frozen importlib._bootstrap_external>", line 995, in exec_module
            File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
            File "/tmp/pip-build-env-ziat_u1i/overlay/lib/python3.12/site-packages/setuptools/__init__.py", line 16, in <module>
              import setuptools.version
            File "/tmp/pip-build-env-ziat_u1i/overlay/lib/python3.12/site-packages/setuptools/version.py", line 1, in <module>
              import pkg_resources
            File "/tmp/pip-build-env-ziat_u1i/overlay/lib/python3.12/site-packages/pkg_resources/__init__.py", line 2191, in <module>
              register_finder(pkgutil.ImpImporter, find_on_path)
                              ^^^^^^^^^^^^^^^^^^^
          AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?
          [end of output]
      
      note: This error originates from a subprocess, and is likely not a problem with pip.
    error: subprocess-exited-with-error
    
    × Getting requirements to build wheel did not run successfully.
    │ exit code: 1
    ╰─> See above for output.
    
    note: This error originates from a subprocess, and is likely not a problem with pip.
Check the log at /home/runner/.cache/pre-commit/pre-commit.log
Error: The process '/home/runner/.local/bin/pre-commit' failed with exit code 3

Steps to reproduce the problem

  1. Create any Pull Request to this repository
  2. Wait for GitHub Actions to run
  3. Pre-commit check will fail with the error shown above

Reduced test case

Not applicable - This is a configuration/environment issue rather than a code issue.

Proposed solution

Upgrade pylint to v3.x.x series. I've confirmed this resolves the issue in my local environment:

  - repo: https://github.com/PyCQA/pylint
    rev: v3.3.3
    hooks:
      - id: pylint

Note: After upgrading to pylint v3.x.x, new lint warnings appear in the codebase.
These will need to be addressed in a separate PR after the version upgrade is approved.

This issue appears to be caused by deprecated features in Python 3.12 that pylint v2.15.8 depends on.


Checklist

  • I have described this issue in a way that is actionable (if possible)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions