Bug 2209020 - python-argcomplete fails to build with pip 23.1.2
Summary: python-argcomplete fails to build with pip 23.1.2
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: python-argcomplete
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Miro Hrončok
QA Contact: Fedora Extras Quality Assurance
URL: https://copr.fedorainfracloud.org/cop...
Whiteboard:
Depends On:
Blocks: 2186979
TreeView+ depends on / blocked
 
Reported: 2023-05-22 10:16 UTC by Miro Hrončok
Modified: 2023-05-26 11:52 UTC (History)
6 users (show)

Fixed In Version: python-argcomplete-2.0.0-7.fc39
Clone Of:
Environment:
Last Closed: 2023-05-26 11:52:25 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Miro Hrončok 2023-05-22 10:16:14 UTC
When checking the impact of upgradign pip from 23.0.1 to 23.1.2 in https://src.fedoraproject.org/rpms/python-pip/pull-request/123 I realized python-argcomplete repeatedly fails with the new pip but succeeds with the old one.

The error is:


======================================================================
FAIL: test_console_script_module (test.test.TestBashGlobal.test_console_script_module)
Test completing a console_script for a module.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/argcomplete-2.0.0/test/test.py", line 1293, in test_console_script_module
    self._test_console_script()
  File "/builddir/build/BUILD/argcomplete-2.0.0/test/test.py", line 1283, in _test_console_script
    self.assertEqual(self.sh.run_command('echo $?'), '0\r\n', install_output)
AssertionError: '1\r\n' != '0\r\n'
- 1
+ 0
 : Processing /builddir/build/BUILD/argcomplete-2.0.0/test/test_package
  Installing build dependencies ... [?25l- \ | / - error
  error: subprocess-exited-with-error
  
  × pip subprocess to install build dependencies did not run successfully.
  │ exit code: 1
  ╰─> [7 lines of output]
      WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f5a0e412190>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/setuptools/
      WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f5a0ca518d0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/setuptools/
      WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f5a0ca9fe90>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/setuptools/
      WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f5a0e61cd10>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/setuptools/
      WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f5a0e17e290>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/setuptools/
      ERROR: Could not find a version that satisfies the requirement setuptools>=40.8.0 (from versions: none)
      ERROR: No matching distribution found for setuptools>=40.8.0
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× pip subprocess to install build dependencies 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.
[?25h

======================================================================
FAIL: test_console_script_module_wheel (test.test.TestBashGlobal.test_console_script_module_wheel)
Test completing a console_script for a module from a wheel.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/argcomplete-2.0.0/test/test.py", line 1303, in test_console_script_module_wheel
    self._test_console_script(wheel=True)
  File "/builddir/build/BUILD/argcomplete-2.0.0/test/test.py", line 1283, in _test_console_script
    self.assertEqual(self.sh.run_command('echo $?'), '0\r\n', install_output)
AssertionError: '1\r\n' != '0\r\n'
- 1
+ 0
 : Processing /builddir/build/BUILD/argcomplete-2.0.0/test/test_package
  Installing build dependencies ... [?25l- \ | / - error
  error: subprocess-exited-with-error
  
  × pip subprocess to install build dependencies did not run successfully.
  │ exit code: 1
  ╰─> [7 lines of output]
      WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f85102b2c90>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/setuptools/
      WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f850ea25cd0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/setuptools/
      WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f850ea73ad0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/setuptools/
      WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f85105f1c90>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/setuptools/
      WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f8510152410>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/setuptools/
      ERROR: Could not find a version that satisfies the requirement setuptools>=40.8.0 (from versions: none)
      ERROR: No matching distribution found for setuptools>=40.8.0
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× pip subprocess to install build dependencies 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.
[?25h

======================================================================
FAIL: test_console_script_package (test.test.TestBashGlobal.test_console_script_package)
Test completing a console_script for a package.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/argcomplete-2.0.0/test/test.py", line 1298, in test_console_script_package
    self._test_console_script(package=True)
  File "/builddir/build/BUILD/argcomplete-2.0.0/test/test.py", line 1283, in _test_console_script
    self.assertEqual(self.sh.run_command('echo $?'), '0\r\n', install_output)
AssertionError: '1\r\n' != '0\r\n'
- 1
+ 0
 : Processing /builddir/build/BUILD/argcomplete-2.0.0/test/test_package
  Installing build dependencies ... [?25l- \ | / - error
  error: subprocess-exited-with-error
  
  × pip subprocess to install build dependencies did not run successfully.
  │ exit code: 1
  ╰─> [7 lines of output]
      WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f5b5d74e690>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/setuptools/
      WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f5b5bbe30d0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/setuptools/
      WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f5b5bc2b9d0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/setuptools/
      WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f5b5d752310>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/setuptools/
      WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f5b5bc40d10>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/setuptools/
      ERROR: Could not find a version that satisfies the requirement setuptools>=40.8.0 (from versions: none)
      ERROR: No matching distribution found for setuptools>=40.8.0
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× pip subprocess to install build dependencies 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.
[?25h

======================================================================
FAIL: test_console_script_package_wheel (test.test.TestBashGlobal.test_console_script_package_wheel)
Test completing a console_script for a package from a wheel.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/argcomplete-2.0.0/test/test.py", line 1308, in test_console_script_package_wheel
    self._test_console_script(package=True, wheel=True)
  File "/builddir/build/BUILD/argcomplete-2.0.0/test/test.py", line 1283, in _test_console_script
    self.assertEqual(self.sh.run_command('echo $?'), '0\r\n', install_output)
AssertionError: '1\r\n' != '0\r\n'
- 1
+ 0
 : Processing /builddir/build/BUILD/argcomplete-2.0.0/test/test_package
  Installing build dependencies ... [?25l- \ | / - error
  error: subprocess-exited-with-error
  
  × pip subprocess to install build dependencies did not run successfully.
  │ exit code: 1
  ╰─> [7 lines of output]
      WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f140e0f4490>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/setuptools/
      WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f140c897790>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/setuptools/
      WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f140c897190>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/setuptools/
      WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f140e429d10>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/setuptools/
      WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7f140df8b2d0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/setuptools/
      ERROR: Could not find a version that satisfies the requirement setuptools>=40.8.0 (from versions: none)
      ERROR: No matching distribution found for setuptools>=40.8.0
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× pip subprocess to install build dependencies 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.
[?25h

----------------------------------------------------------------------
Ran 148 tests in 125.304s

FAILED (failures=4, skipped=2, expected failures=13)
Test failed: <unittest.runner.TextTestResult run=148 errors=0 failures=4>
error: Test failed: <unittest.runner.TextTestResult run=148 errors=0 failures=4>
error: Bad exit status from /var/tmp/rpm-tmp.F6kYFS (%check)
    Bad exit status from /var/tmp/rpm-tmp.F6kYFS (%check)


I believe pip defaults to isolated builds now and will always attempt to install build dependencies (setuptools>=40.8.0 in this case because that I the default when no build dependencies are mentioned in pyproject.toml) from the internet to a temporary virtual environment.

I think this can be fixed by adding --no-build-isolation to pip install in tests:

$ pip install --help | grep isolation
  --no-build-isolation        Disable isolation when building a modern source

Reproducible: Always

Steps to Reproduce:
Build python-argcomplete e.g. in https://copr.fedorainfracloud.org/coprs/churchyard/pip-23.1.2
Actual Results:  
Build fails.

Expected Results:  
Build succeeds.

All logs available at https://copr.fedorainfracloud.org/coprs/churchyard/pip-23.1.2/package/python-argcomplete/

Comment 2 Fedora Update System 2023-05-26 11:51:20 UTC
FEDORA-2023-a69809648f has been submitted as an update to Fedora 39. https://bodhi.fedoraproject.org/updates/FEDORA-2023-a69809648f

Comment 3 Fedora Update System 2023-05-26 11:52:25 UTC
FEDORA-2023-a69809648f has been pushed to the Fedora 39 stable repository.
If problem still persists, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.