Skip to content

Cygwin job is broken on "Set up virtualenv" step #2004

Description

@EliahKagan

The Cygwin CI test job is failing now, including when rerun at the tip of the main branch where it formerly passed. The failure occurs in the "Set up virtualenv" step, which runs python -m venv .venv. The log does not how a detailed error message, just:

Run python -m venv .venv
  python -m venv .venv
  echo 'BASH_ENV=.venv/bin/activate' >>"$GITHUB_ENV"
  shell: C:\tools\cygwin\bin\bash.exe --login --norc -eo pipefail -o igncr "{0}"
  env:
    CHERE_INVOKING: 1
    CYGWIN_NOWINPATH: 1
    CYGWIN: 
+ python -m venv .venv
Error: Command '['/cygdrive/d/a/GitPython/GitPython/.venv/bin/python', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
Error: Process completed with exit code 1.

I first noticed this when checking the current status of #1988 (see #1988 (comment)), but it is not specific to that PR.

I do not know why this happens.

Activity

  1. Byron commented on Feb 21, 2025

    @Byron
    Member

    It is very puzzling indeed, and seemingly impossible to error out without any form of message.

  2. EliahKagan commented on Feb 25, 2025

    @EliahKagan
    MemberAuthor

    The absence of output is due to venv not showing the error in its output. In 4605dd6, I had venv not install pip but instead attempted to do so in a very similar way to how venv does, in a subsequent step. That produces this error:

    Traceback (most recent call last):
      File "/usr/lib/python3.9/runpy.py", line 188, in _run_module_as_main
        mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
      File "/usr/lib/python3.9/runpy.py", line 147, in _get_module_details
        return _get_module_details(pkg_main_name, error)
      File "/usr/lib/python3.9/runpy.py", line 111, in _get_module_details
        __import__(pkg_name)
      File "/usr/lib/python3.9/ensurepip/__init__.py", line [30](https://github.com/EliahKagan/GitPython/actions/runs/13454947366/job/37596811693#step:10:31), in <module>
        _SETUPTOOLS_VERSION = _get_most_recent_wheel_version("setuptools")
      File "/usr/lib/python3.9/ensurepip/__init__.py", line 27, in _get_most_recent_wheel_version
        return str(max(_wheels[pkg], key=distutils.version.LooseVersion))
    ValueError: max() arg is an empty sequence
    

    I haven't found a good way to fix this entirely, but in #2007 I have worked around it by having the Cygwin CI job install pip in the virtual environment using the bootstrap script, which fixes the problem that kept tests from running, but does not fix the problem for test_installation where it also separately occurs.

  3. added a commit that references this issue on Feb 25, 2025
  4. EliahKagan commented on Jun 14, 2025

    @EliahKagan
    MemberAuthor

    #2053 fixes this properly (at least with Python 3.9, which is all we test on Cygwin currently).

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions