Skip to content

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

Closed
@EliahKagan

Description

@EliahKagan
Member

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

Byron

Byron commented on Feb 21, 2025

@Byron
Member

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

EliahKagan

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.

added a commit that references this issue on Feb 25, 2025

Merge pull request #2007 from EliahKagan/cygwin-py39-venv

fe7533e

8 remaining items

Loading
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

      Participants

      @Byron@EliahKagan

      Issue actions

        Cygwin job is broken on "Set up virtualenv" step · Issue #2004 · gitpython-developers/GitPython