#20 Update to 20.0.23
Merged 3 years ago by lbalhar. Opened 3 years ago by lbalhar.
rpms/ lbalhar/python-virtualenv master  into  master

file modified
+51 -34
@@ -1,40 +1,48 @@ 

  Name:           python-virtualenv

- Version:        16.7.10

- Release:        2%{?dist}

+ Version:        20.0.23

+ Release:        1%{?dist}

  Summary:        Tool to create isolated Python environments

  

  License:        MIT

  URL:            http://pypi.python.org/pypi/virtualenv

  Source0:        %{pypi_source virtualenv}

  

- # Add /usr/share/python-wheels to file_search_dirs

+ # Add /usr/share/python-wheels to extra_search_dir

  Patch1: rpm-wheels.patch

  

  BuildArch:      noarch

- BuildRequires:  git-core

  

+ BuildRequires:  python3-appdirs

  BuildRequires:  python3-devel

+ BuildRequires:  python3-distlib

+ BuildRequires:  python3-filelock

  BuildRequires:  python3-setuptools

+ BuildRequires:  python3-setuptools_scm

+ BuildRequires:  python3-six

  

+ # docs need sphinx >= 3

  # docs need towncrier and that is not yet available when bootstrapping Python

- %bcond_without docs

+ %bcond_with docs

  %if %{with docs}

  BuildRequires:  python3-sphinx

  BuildRequires:  python3-sphinx_rtd_theme

  BuildRequires:  python3-towncrier

  %endif

  

- # we don't have all the dependencies

- # some tests also need internet connection

- %bcond_with tests

+ %bcond_without tests

  %if %{with tests}

+ BuildRequires:  fish

+ BuildRequires:  gcc

+ BuildRequires:  python3-coverage

+ BuildRequires:  python3-flaky

+ BuildRequires:  python3-packaging

  BuildRequires:  python3-pytest

  BuildRequires:  python3-pytest-xdist

- BuildRequires:  csh

- BuildRequires:  fish

- #BuildRequires:  xonsh -- the xonsh tests are failing :(

- #BuildRequires:  python3-pypiserver -- not available yet

- #BuildRequires:  python3-pytest-localserver -- not available yet

+ BuildRequires:  python3-pytest-mock

+ BuildRequires:  python3-pytest-randomly

+ BuildRequires:  python3-pytest-timeout

+ # FTBFS with Py 3.9: https://bugzilla.redhat.com/show_bug.cgi?id=1817770

+ # BuildRequires:  xonsh

  %endif

  

  # RPM installed wheels
@@ -52,7 +60,11 @@ 

  %package -n     python3-virtualenv

  Summary:        Tool to create isolated Python environments

  

+ Requires:       python3-appdirs

+ Requires:       python3-distlib

+ Requires:       python3-filelock

  Requires:       python3-setuptools

+ Requires:       python3-six

  Obsoletes:      python3-virtualenv-python26 < 16.6

  %{?python_provide:%python_provide python3-virtualenv}

  
@@ -81,16 +93,15 @@ 

  

  

  %prep

- %autosetup -p1 -S git -n virtualenv-%{version}

- %{__sed} -i -e "1s|#!/usr/bin/env python||" virtualenv.py 

+ %autosetup -p1 -n virtualenv-%{version}

+ %{__sed} -i -e "1s|#!/usr/bin/env python||" tasks/update_embedded.py

  

  # Remove the wheels provided by RPM packages

- # Those are the "recent" version shipped with virtualenv 16.6.1

- rm virtualenv_support/pip-*

- rm virtualenv_support/setuptools-*

- rm virtualenv_support/wheel-*

+ rm src/virtualenv/seed/embed/wheels/pip-*

+ rm src/virtualenv/seed/embed/wheels/setuptools-*

+ rm src/virtualenv/seed/embed/wheels/wheel-*

  

- test ! -f virtualenv_support/*.whl

+ test ! -f src/virtualenv/seed/embed/wheels/*.whl

  

  %build

  # Build code
@@ -98,7 +109,7 @@ 

  

  # Build docs

  %if %{with docs}

- %{__python3} setup.py build_sphinx

+ PYTHONPATH=src %{python3} setup.py build_sphinx

  rm -f build/sphinx/html/.buildinfo

  %endif

  
@@ -110,28 +121,31 @@ 

  mkdir tmp_path

  ln -s $(realpath %{__python3}) tmp_path/python

  export PATH="$(pwd)/tmp_path:$PATH"

- export PYTHONPATH="$(pwd)"

  unset SOURCE_DATE_EPOCH

- cp -p /usr/share/python-wheels/*.whl virtualenv_support

  

- # test_missing_certifi_pem patches bundled pip wheel, but ours is patched already

- # test_always_copy_option https://github.com/pypa/virtualenv/issues/1332

- python -m pytest -vv -n auto -k "not test_missing_certifi_pem and not test_always_copy_option"

+ # Skip tests which requires internet or some extra dependencies

+ # Requires internet:

+ # - test_base_bootstrap_via_pip_invoke

+ # - test_seed_link_via_app_data

+ # Detects system Python even it should not (problem with mock?):

+ # - test_py_info_to_system_raises

+ # Uses disabled functionalities around bundled wheels:

+ # - test_wheel_support_no_python_requires

+ # Requires xonsh (FTBFS with Py 3.9)

+ # - test_xonsh

+ # Does not work with beta release of Python:

+ # - test_version_satisfies_nok

+ %pytest -vv -k "not test_base_bootstrap_via_pip_invoke and not test_seed_link_via_app_data and not test_py_info_to_system_raises and not test_wheel_support_no_python_requires and not test_xonsh and not test_version_satisfies_nok"

  

- rm virtualenv_support/*.whl

  rm -r tmp_path

  %endif

  

  %files -n python3-virtualenv

- %license LICENSE.txt

- %doc docs/*rst PKG-INFO AUTHORS.txt

+ %license LICENSE

+ %doc docs/*rst README.md

  %{_bindir}/virtualenv

- %{python3_sitelib}/virtualenv.py

- %dir %{python3_sitelib}/virtualenv_support/

- %{python3_sitelib}/virtualenv_support/__init__.py

- %{python3_sitelib}/virtualenv_support/__pycache__/

+ %{python3_sitelib}/virtualenv/

  %{python3_sitelib}/virtualenv-*.egg-info/

- %{python3_sitelib}/__pycache__/*

  

  %if %{with docs}

  %files -n python-virtualenv-doc
@@ -140,6 +154,9 @@ 

  

  

  %changelog

+ * Mon Jun 15 2020 Lumír Balhar <lbalhar@redhat.com> - 20.0.23-1

+ - Update to 20.0.23 (#1742034)

+ 

  * Sat May 23 2020 Miro Hrončok <mhroncok@redhat.com> - 16.7.10-2

  - Rebuilt for Python 3.9

  

file modified
+187 -50
@@ -1,50 +1,187 @@ 

- diff --git a/virtualenv.py b/virtualenv.py

- index c7f71e6..3740014 100755

- --- a/virtualenv.py

- +++ b/virtualenv.py

- @@ -475,7 +475,18 @@ def virtualenv_support_dirs():

-  

-      # normal filesystem installation

-      if os.path.isdir(join(HERE, "virtualenv_support")):

- -        yield [join(HERE, "virtualenv_support")]

- +        dirs = [join(HERE, "virtualenv_support")]

- +        if os.path.isdir("/usr/share/python-wheels"):

- +            dirs.insert(0, "/usr/share/python-wheels")

- +        try:

- +            import ensurepip

- +            ensurepip_path = os.path.join(ensurepip.__path__[0], "_bundled")

- +        except (ImportError, AttributeError, IndexError):

- +            pass

- +        else:

- +            if os.path.isdir(ensurepip_path):

- +                dirs.insert(0, ensurepip_path)

- +        yield dirs

-      elif IS_ZIPAPP:

-          tmpdir = tempfile.mkdtemp()

-          try:

- @@ -998,6 +998,8 @@ def find_wheels(projects, search_dirs):

-                  )

-                  if project == "pip" and sys.version_info[0:2] == (3, 4):

-                      wheel = next(p for v, p in versions if v <= (19, 1, 1))

- +                elif project == "setuptools" and sys.version_info[0:2] == (3, 4):

- +                    wheel = next(p for v, p in versions if v < (44,))

-                  else:

-                      wheel = versions[0][1]

-                  wheels.append(wheel)

- @@ -1091,9 +1093,13 @@ def _install_wheel_with_search_dir(download, project_names, py_executable, searc

-          )

-      ).encode("utf8")

-  

- -    if sys.version_info[0:2] == (3, 4) and "pip" in project_names:

- -        at = project_names.index("pip")

- -        project_names[at] = "pip<19.2"

- +    if sys.version_info[0:2] == (3, 4):

- +        if "pip" in project_names:

- +            at = project_names.index("pip")

- +            project_names[at] = "pip<19.2"

- +        if "setuptools" in project_names:

- +            at = project_names.index("setuptools")

- +            project_names[at] = "setuptools<44"

-  

-      cmd = [py_executable, "-"] + project_names

-      logger.start_progress("Installing {}...".format(", ".join(project_names)))

+ From fd3e105dde6f4c14b4d85a325cd70c79d7b452cc Mon Sep 17 00:00:00 2001

+ From: Lumir Balhar <lbalhar@redhat.com>

+ Date: Fri, 22 May 2020 14:25:48 +0200

+ Subject: [PATCH] rpm wheels

+ 

+ ---

+  src/virtualenv/seed/embed/base_embed.py       |  5 ++++

+  src/virtualenv/seed/embed/pip_invoke.py       |  5 ++--

+  src/virtualenv/seed/embed/wheels/__init__.py  |  3 +++

+  src/virtualenv/seed/embed/wheels/acquire.py   | 24 ++++++++++++-------

+  .../seed/via_app_data/via_app_data.py         |  1 +

+  src/virtualenv/util/path/_system_wheels.py    | 22 +++++++++++++++++

+  6 files changed, 49 insertions(+), 11 deletions(-)

+  create mode 100644 src/virtualenv/util/path/_system_wheels.py

+ 

+ diff --git a/src/virtualenv/seed/embed/base_embed.py b/src/virtualenv/seed/embed/base_embed.py

+ index bffd494..349e5ff 100644

+ --- a/src/virtualenv/seed/embed/base_embed.py

+ +++ b/src/virtualenv/seed/embed/base_embed.py

+ @@ -6,6 +6,7 @@ from six import add_metaclass

+  

+  from virtualenv.util.path import Path

+  from virtualenv.util.six import ensure_str, ensure_text

+ +from virtualenv.util.path._system_wheels import get_system_wheels_paths

+  

+  from ..seeder import Seeder

+  

+ @@ -101,3 +102,7 @@ class BaseEmbed(Seeder):

+  

+      def __repr__(self):

+          return ensure_str(self.__unicode__())

+ +

+ +    def insert_system_wheels_paths(self, creator):

+ +        system_wheels_paths = get_system_wheels_paths(creator.interpreter.executable)

+ +        self.extra_search_dir = list(system_wheels_paths) + self.extra_search_dir

+ diff --git a/src/virtualenv/seed/embed/pip_invoke.py b/src/virtualenv/seed/embed/pip_invoke.py

+ index 25be493..f49a420 100644

+ --- a/src/virtualenv/seed/embed/pip_invoke.py

+ +++ b/src/virtualenv/seed/embed/pip_invoke.py

+ @@ -23,8 +23,9 @@ class PipInvoke(BaseEmbed):

+      def run(self, creator):

+          if not self.enabled:

+              return

+ +        self.insert_system_wheels_paths(creator)

+          with self.get_pip_install_cmd(creator.exe, creator.interpreter.version_release_str) as cmd:

+ -            with pip_wheel_env_run(creator.interpreter.version_release_str, self.app_data) as env:

+ +            with pip_wheel_env_run(creator.interpreter.version_release_str, creator.interpreter.executable, self.app_data) as env:

+                  self._execute(cmd, env)

+  

+      @staticmethod

+ @@ -46,8 +47,6 @@ class PipInvoke(BaseEmbed):

+              cmd.append("{}{}".format(key, "=={}".format(ver) if ver is not None else ""))

+          with ExitStack() as stack:

+              folders = set()

+ -            for context in (ensure_file_on_disk(get_bundled_wheel(p, version), self.app_data) for p in pkg_versions):

+ -                folders.add(stack.enter_context(context).parent)

+              folders.update(set(self.extra_search_dir))

+              for folder in folders:

+                  cmd.extend(["--find-links", str(folder)])

+ diff --git a/src/virtualenv/seed/embed/wheels/__init__.py b/src/virtualenv/seed/embed/wheels/__init__.py

+ index 90fea02..99cc251 100644

+ --- a/src/virtualenv/seed/embed/wheels/__init__.py

+ +++ b/src/virtualenv/seed/embed/wheels/__init__.py

+ @@ -38,3 +38,6 @@ BUNDLE_SUPPORT = {

+      },

+  }

+  MAX = "3.9"

+ +

+ +# Redefined here because bundled wheels are removed in RPM build

+ +BUNDLE_SUPPORT = None

+ diff --git a/src/virtualenv/seed/embed/wheels/acquire.py b/src/virtualenv/seed/embed/wheels/acquire.py

+ index 91b630d..4067f0e 100644

+ --- a/src/virtualenv/seed/embed/wheels/acquire.py

+ +++ b/src/virtualenv/seed/embed/wheels/acquire.py

+ @@ -12,6 +12,7 @@ from zipfile import ZipFile

+  

+  from virtualenv.info import IS_ZIPAPP

+  from virtualenv.util.path import Path

+ +from virtualenv.util.path._system_wheels import get_system_wheels_paths

+  from virtualenv.util.six import ensure_str, ensure_text

+  from virtualenv.util.subprocess import Popen, subprocess

+  from virtualenv.util.zipapp import ensure_file_on_disk

+ @@ -33,8 +34,9 @@ class WheelDownloadFail(ValueError):

+  def get_wheels(for_py_version, wheel_cache_dir, extra_search_dir, packages, app_data, download):

+      # not all wheels are compatible with all python versions, so we need to py version qualify it

+      processed = copy(packages)

+ -    # 1. acquire from bundle

+ -    acquire_from_bundle(processed, for_py_version, wheel_cache_dir)

+ +    # Do not use bundled wheels, they are removed in rpmbuild anyway

+ +    # acquire_from_bundle(processed, for_py_version, wheel_cache_dir)

+ +

+      # 2. acquire from extra search dir

+      acquire_from_dir(processed, for_py_version, wheel_cache_dir, extra_search_dir)

+      # 3. download from the internet

+ @@ -47,6 +49,7 @@ def get_wheels(for_py_version, wheel_cache_dir, extra_search_dir, packages, app_

+  

+  

+  def acquire_from_bundle(packages, for_py_version, to_folder):

+ +    raise NotImplementedError("Bundled wheels are not available")

+      for pkg, version in list(packages.items()):

+          bundle = get_bundled_wheel(pkg, for_py_version)

+          if bundle is not None:

+ @@ -67,6 +70,7 @@ def acquire_from_bundle(packages, for_py_version, to_folder):

+  

+  

+  def get_bundled_wheel(package, version_release):

+ +    raise NotImplementedError("Bundled wheels are not available")  # and BUNDLE_SUPPORT == None anyway

+      return BUNDLE_FOLDER / (BUNDLE_SUPPORT.get(version_release, {}) or BUNDLE_SUPPORT[MAX]).get(package)

+  

+  

+ @@ -156,7 +160,7 @@ def download_wheel(packages, for_py_version, to_folder, app_data):

+      cmd.extend(to_download)

+      # pip has no interface in python - must be a new sub-process

+  

+ -    with pip_wheel_env_run("{}.{}".format(*sys.version_info[0:2]), app_data) as env:

+ +    with pip_wheel_env_run("{}.{}".format(*sys.version_info[0:2]), sys.executable, app_data) as env:

+          process = Popen(cmd, env=env, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)

+          out, err = process.communicate()

+          if process.returncode != 0:

+ @@ -164,7 +168,7 @@ def download_wheel(packages, for_py_version, to_folder, app_data):

+  

+  

+  @contextmanager

+ -def pip_wheel_env_run(version, app_data):

+ +def pip_wheel_env_run(version, executable, app_data):

+      env = os.environ.copy()

+      env.update(

+          {

+ @@ -172,7 +176,11 @@ def pip_wheel_env_run(version, app_data):

+              for k, v in {"PIP_USE_WHEEL": "1", "PIP_USER": "0", "PIP_NO_INPUT": "1"}.items()

+          },

+      )

+ -    with ensure_file_on_disk(get_bundled_wheel("pip", version), app_data) as pip_wheel_path:

+ -        # put the bundled wheel onto the path, and use it to do the bootstrap operation

+ -        env[str("PYTHONPATH")] = str(pip_wheel_path)

+ -        yield env

+ +

+ +    paths = list(get_system_wheels_paths(executable))

+ +    pip_wheels = []

+ +    for path in paths:

+ +        pip_wheels.extend([str(wheel) for wheel in path.glob("pip-*")])

+ +    env[str("PYTHONPATH")] = pip_wheels[0]  # Use first pip in the list (ensurepip, if exists)

+ +

+ +    yield env

+ diff --git a/src/virtualenv/seed/via_app_data/via_app_data.py b/src/virtualenv/seed/via_app_data/via_app_data.py

+ index de3757d..db7c6d9 100644

+ --- a/src/virtualenv/seed/via_app_data/via_app_data.py

+ +++ b/src/virtualenv/seed/via_app_data/via_app_data.py

+ @@ -38,6 +38,7 @@ class FromAppData(BaseEmbed):

+      def run(self, creator):

+          if not self.enabled:

+              return

+ +        self.insert_system_wheels_paths(creator)

+          base_cache = self.base_cache / creator.interpreter.version_release_str

+          with self._get_seed_wheels(creator, base_cache) as name_to_whl:

+              pip_version = name_to_whl["pip"].stem.split("-")[1] if "pip" in name_to_whl else None

+ diff --git a/src/virtualenv/util/path/_system_wheels.py b/src/virtualenv/util/path/_system_wheels.py

+ new file mode 100644

+ index 0000000..a968dee

+ --- /dev/null

+ +++ b/src/virtualenv/util/path/_system_wheels.py

+ @@ -0,0 +1,22 @@

+ +from subprocess import check_output, CalledProcessError

+ +

+ +from virtualenv.util.path import Path

+ +

+ +

+ +def get_system_wheels_paths(executable):

+ +    # ensurepip wheels

+ +    # We need subprocess here to check ensurepip with the Python we are creating

+ +    # a new virtual environment for

+ +    try:

+ +        ensurepip_path = check_output((executable, "-u", "-c", 'import ensurepip; print(ensurepip.__path__[0])'), universal_newlines=True)

+ +        ensurepip_path = Path(ensurepip_path.strip()) / "_bundled"

+ +    except CalledProcessError:

+ +        pass

+ +    else:

+ +        if ensurepip_path.is_dir():

+ +            yield ensurepip_path

+ +

+ +    # Standard wheels path

+ +    wheels_dir = Path("/usr/share/python-wheels")

+ +    if wheels_dir.exists():

+ +        yield wheels_dir

+ -- 

+ 2.26.2

+ 

file modified
+1 -1
@@ -1,1 +1,1 @@ 

- SHA512 (virtualenv-16.7.10.tar.gz) = 28bd2f81d0df629cc69ad06401ba25f2fa5c3e9678255ae151e6f2ef7c7a2b0dc89671355dbb6fb1da3a562180ae3769abca160d9933f3aafba43a6fba08793c

+ SHA512 (virtualenv-20.0.23.tar.gz) = 747ae0031ae587dc2bdc0743dcab7b1673273a5c79fc4bcb539eacd899ddc064b622e567b654fc40bdfdaa90e311d2621856085417b8fd344878546b19cdce84

Big update to 20.0.21 with a complete rewrite from scratch. It builds without docs (require sphinx 3) but with tests (201 passed, 29 skipped, 7 deselected). Let's see what CI thinks about it.

Build failed.

rebased onto cdac36b3585c054dcc2875fdc50421a31792abb4

3 years ago

This needs to take precedence.

Build succeeded.

This needs to take precedence.

It does. There is the insert to possition 0 so ensurepip is before python-wheels in the final list.

Oh, it is confusing a bit to read. Is there a reason not to do the two additions in their actual order?

Oh, it is confusing a bit to read. Is there a reason not to do the two additions in their actual order?

I've used the same way and order as we have in the previous patch. Given the fact the extra_search_dir might not be empty, we have to use insert(0, … and because we need to have ensurepip path first we need to insert it as the last one. Do you know about a better way?

Not really, thanks for the explanation.

Btw the code is executed on the target python version? I.e. when you import ensurepip, and seek for the wheels, it searches e.g. In python3.4's ensurepip?

Btw the code is executed on the target python version? I.e. when you import ensurepip, and seek for the wheels, it searches e.g. In python3.4's ensurepip?

That's one thing I am aware of needs testing. I am afraid that it does only when you run python -m virtualenv but not just virtualenv.

Well, python3.4 -m virtualenv does not work, obviously, and virtualenv -p python3.4 downloads wheels for pip and setuptools from the Internet even the default is no-downloads.

I have to investigate it more because it's also hard to compare the behavior with the current version because it downloads a newer wheel even it has ensurepip path available.

1 new commit added

  • FIXUP Run ensurepip in Python we are creating an environment for
3 years ago

The fallback to download is enabled by default if virtualenv cannot find the proper set of weels. Nonetheless, it should not change anything now.

So, for Python 3.4, virtualenv installs pip and setuptools from ensurepip and wheel from python-wheels. For Python 3.8, virtualenv installs all three wheels from python-wheels.

Virtual environments seem to work well.

Build succeeded.

CIs are green and manual tests look good as well. This should not cause any disaster but it would be nice to have another pair of eyes/hands for review and test. I'm gonna rebuild all dependant packages in COPR. Some of them I know or maintain and they have comprehensive tests.

Build succeeded.

The rebuild is happening here: https://copr.fedorainfracloud.org/coprs/lbalhar/virtualenv/builds/

pre-commit: 3 failed tests but the latest version in rawhide requires virtualenv >= 20.0.8 so it should be compatible. Moreover, when I install everything from PyPI, all tests pass. This needs to be investigated.

asv: tests fail because asv uses --no-site-packages for virtualenv which has been deprecated for some time (since 2011) and its removed in the latest version: https://github.com/airspeed-velocity/asv/issues/923

pythonfinder fails to install build dependencies because python3-tox cannot be installed:

# dnf --repo=rawhide{,-source} repoquery --requires python3-tox

((python3.8dist(virtualenv) < 20.0.4 or python3.8dist(virtualenv) >= 20.0.4.0) with (python3.8dist(virtualenv) < 20.0.3 or python3.8dist(virtualenv) >= 20.0.3.0) with (python3.8dist(virtualenv) < 20.0.2 or python3.8dist(virtualenv) >= 20.0.2.0) with (python3.8dist(virtualenv) < 20 or python3.8dist(virtualenv) >= 20.0) with (python3.8dist(virtualenv) < 20.0.6 or python3.8dist(virtualenv) >= 20.0.6.0) with (python3.8dist(virtualenv) < 20.0.7 or python3.8dist(virtualenv) >= 20.0.7.0) with (python3.8dist(virtualenv) < 20.0.5 or python3.8dist(virtualenv) >= 20.0.5.0) with python3.8dist(virtualenv) >= 16 with (python3.8dist(virtualenv) < 20.0.1 or python3.8dist(virtualenv) >= 20.0.1.0))
…

Needs investigation

pip tests fail because AttributeError: module 'virtualenv' has no attribute 'path_locations'. This seems to cause all 418 errors. Upstream is aware of this but they use legacy virtualenv in CI: https://github.com/pypa/pip/commit/6fd36bdf16e735422678e0ed221211706fafbb41 and there is an empty pr: https://github.com/pypa/pip/pull/7698 :disappointed: This might be a candidate for help upstream.

pythonfinder fails to install build dependencies because python3-tox cannot be installed:
dnf --repo=rawhide{,-source} repoquery --requires python3-tox

((python3.8dist(virtualenv) < 20.0.4 or python3.8dist(virtualenv) >= 20.0.4.0) with (python3.8dist(virtualenv) < 20.0.3 or python3.8dist(virtualenv) >= 20.0.3.0) with (python3.8dist(virtualenv) < 20.0.2 or python3.8dist(virtualenv) >= 20.0.2.0) with (python3.8dist(virtualenv) < 20 or python3.8dist(virtualenv) >= 20.0) with (python3.8dist(virtualenv) < 20.0.6 or python3.8dist(virtualenv) >= 20.0.6.0) with (python3.8dist(virtualenv) < 20.0.7 or python3.8dist(virtualenv) >= 20.0.7.0) with (python3.8dist(virtualenv) < 20.0.5 or python3.8dist(virtualenv) >= 20.0.5.0) with python3.8dist(virtualenv) >= 16 with (python3.8dist(virtualenv) < 20.0.1 or python3.8dist(virtualenv) >= 20.0.1.0))

The upstream definition says virtualenv >= 16.0.0, !=20.0.0, !=20.0.1, !=20.0.2, !=20.0.3, !=20.0.4, !=20.0.5, !=20.0.6, !=20.0.7. And 20.0.20 > 20.0 and 20.0.20 > 20.0.[1-7]. I don't see a reason why this set og rules should prevent virtualenv 20.0.20 from installation.

Let me check the tox thing.

(python3.8dist(virtualenv) < 20.0.4 or python3.8dist(virtualenv) >= 20.0.4.0)  OK
(python3.8dist(virtualenv) < 20.0.3 or python3.8dist(virtualenv) >= 20.0.3.0)  OK
(python3.8dist(virtualenv) < 20.0.2 or python3.8dist(virtualenv) >= 20.0.2.0)  OK
(python3.8dist(virtualenv) < 20     or python3.8dist(virtualenv) >= 20.0)      OK
(python3.8dist(virtualenv) < 20.0.6 or python3.8dist(virtualenv) >= 20.0.6.0)  OK
(python3.8dist(virtualenv) < 20.0.7 or python3.8dist(virtualenv) >= 20.0.7.0)  OK
(python3.8dist(virtualenv) < 20.0.5 or python3.8dist(virtualenv) >= 20.0.5.0)  OK
python3.8dist(virtualenv) >= 16                                                OK
(python3.8dist(virtualenv) < 20.0.1 or python3.8dist(virtualenv) >= 20.0.1.0)  OK

I am lost.

I can install this virtualenv with new tox just fine into mock.

The problem was caused by wrong provides generated for python3-virtualenv with a wrong version from setuptools_scm. I am working on a fix.

1 new commit added

  • Fix setuptools_scm version
3 years ago

Build succeeded.

BTW The problem might be that we are in a git repo.

BTW The problem might be that we are in a git repo.

This is, probably, the case because I am not able to reproduce it. However, the environment variable fixes the problem.

After the last rebuild in copr, asv and pip are the same, pythonfinder and pre-commit are okay, problem in hatch needs investigation but does not seem to be related to virtualenv and pew uses incompatible CLI option (I'll create an issue, if not exists already).

3 new commits added

  • Avoid using git, not to confuse setuptools_scm
  • FIXUP Run ensurepip in Python we are creating an environment for
  • Update to 20.0.20 (#1742034)
3 years ago

Added my own commit to drop git instead of using SETUPTOOLS_SCM_PRETEND_VERSION.

Build succeeded.

Provides look good so the problem with them is fixed. We are ready for merge.

Build failed.

Build failed.

Build succeeded.

There was an issue with the Zuul rawhide image. This has been fixed now.

I'd be happier if we removed acquire_from_bundle, get_bundled_wheel and BUNDLE_SUPPORT or if we replaced them with NotImplementedError. That way, we would ensure nothing can use it. WDYT?

In the current version of the patch, the only call to acquire_from_bundle is commented out. There are two usages of get_bundled_wheel — the first one in acquire_from_bundle mentioned before and the second one in get_pip_install_cmd context manager (source code) where it just adds the folders where the bundled wheels should be located in to a search path but since those folders are empty it does not do anything.

acquire_from_bundle actually does something in the original virtualenv but it's commented out. get_bundled_wheel only returns a path which might not exist and it's up to the rest of the codebase to handle it.

I'd prefer to keep the patch small because then it will be easily maintainable. Touching BUNDLE_SUPPORT would mean conflict every time they update bundled wheels.

Or do you mean that something outside the virtualenv might use those functions? In that case, we can definitely raise NotImplementedError in acquire_from_bundle but doing the same in get_bundled_wheel would need a change in get_pip_install_cmd.

Or do you mean that something outside the virtualenv might use those functions?

That's what I mean.

Touching BUNDLE_SUPPORT would mean conflict every time they update bundled wheels.

We can redefine it at the end of the file? Not sure.

Build succeeded.

rebased onto b734cb4f7fe0437f677ebb73ab3040a4af9bf4a9

3 years ago

Build succeeded.

A completely new patch is ready. The simple part to explain is that BUNDLE_SUPPORT is None and get_bundled_wheel and acquire_from_bundle both raises NotImplementedError.

The default behavior is to install wheels via some internal copy or symlink magic and it works well with our sources of wheels even for Python 3.4 (ensurepip).

The tricky part is that you can use --seeder pip which then installs seed packages/wheels via pip. This basically means that virtualenv creates a command like this one:

PIP_USE_WHEEL=1 PIP_USER=0 PIP_NO_INPUT=1 PYTHONPATH=/usr/lib64/python3.4/ensurepip/_bundled/pip-9.0.1-py2.py3-none-any.whl /tmp/test342/bin/python -m pip -q install --only-binary :all: --no-index pip setuptools wheel --find-links /usr/lib64/python3.4/ensurepip/_bundled --find-links /usr/share/python-wheels

As you can see, I am able to supply the correct wheel to import as a pip via PYTHONPATH and also both directories with system wheels as --find-links. But, the problem for Python 3.4 is that pip selects pip-20.0.2-py2.py3-none-any.whl from /usr/share/python-wheels because it has higher version than the wheel in ensurepip folder. And this wheel cannot be installed for Python 3.4 because it's incompatible. This works well for Python >= 3.5.

I guess that we don't want to spend more time on this corner case for Python 3.4, do we?

I guess that we don't want to spend more time on this corner case for Python 3.4, do we?

Not really, but this will bite us with Python 2.7 soon as well :(

I'll look at the patch.

I wanted to say: "What if get_system_wheels_paths only yields "/usr/share/python-wheels" if ensurepip is not there?" But I've realized that ensurepip doesn't have wheel-....whl.

Here is WIP patch for a bug I've found: https://github.com/pypa/virtualenv/pull/1835

And here is internal PR for easier patch review: https://github.com/frenzymadness/virtualenv/pull/1/files

Based on the discussion with upstream, this might be the best approach and the next versions of virtualenv might make it easier.

I think that this is ready for review.

Merge Failed.

This change or one of its cross-repo dependencies was unable to be automatically merged with the current state of its repository. Please rebase the change and upload a new patchset.

rebased onto fc5acedf5b90a57a25e8087eedc0dfbe9aa84ba9

3 years ago

Rebased.

@churchyard yes, it is, should I rebase it to 20.0.21 or we want to finish 20.0.20 and do .21 as a separated PR?

I see no point of shipping 20.0.20 now and updating to 20.0.21 later. Given the Python 3.9 rebuild, we cannot ship this now anyway. So I'd rebase this.

Build succeeded.

rebased onto 21b632de2550f371a01140db73559bfa45384c39

3 years ago

Build failed.

rebased onto 0a2ff74fb6604da1071bbfe459ed128dbbb8e843

3 years ago

Build failed.

Build failed.

Build succeeded.

Let's see what does Python 3.9 think about this? [citest]

Koji build failed:

https://koji.fedoraproject.org/koji/taskinfo?taskID=45308039

nothing provides python(abi) = 3.8 needed by xonsh-0.9.17-1.fc33.noarch

I suggest to skip the xonsh tests for now (they are optional), see https://bugzilla.redhat.com/show_bug.cgi?id=1817770

rebased onto 65244962530cf85cf12846dbe454a74233315cf3

3 years ago

Failing tests disabled. [citest]

Build failed.

Build succeeded.

Are we gonna merge this or do we want somebody else to take a look?

I would very much appreciate if somebody else reviewed this as well.

Also, we need to test dependent packages (mostly python-pytest-virtualenv, python-virtualenv-api, python-virtualenv-clone, python-virtualenvwrapper, vex, pipsi, pipenv, internet enabled %check of python-tox). Full list:

$ repoquery --repo=koji{,-source} --whatrequires python3-virtualenv
asv-0:0.4.2-2.fc33.src
hatch-0:0.23.0-3.fc33.noarch
hatch-0:0.23.0-3.fc33.src
pew-0:1.2.0-6.fc33.noarch
pew-0:1.2.0-6.fc33.src
pipenv-0:2018.11.26-13.fc33.noarch
pipenv-0:2018.11.26-13.fc33.src
pipsi-0:0.9-16.fc33.noarch
pipsi-0:0.9-16.fc33.src
pre-commit-0:2.3.0-1.fc33.src
python-pip-0:20.1.1-3.fc33.src
python-pytest-cov-0:2.8.1-6.fc33.src
python-pytest-virtualenv-0:1.7.0-7.fc33.src
python-pythonfinder-0:1.2.1-5.fc33.src
python-resultsdb_api-0:2.1.3-6.fc33.src
python-virtualenv-api-0:2.1.16-12.fc33.src
python-virtualenv-clone-0:0.5.3-5.fc33.src
python-virtualenvwrapper-0:4.8.2-14.fc33.src
python3-jaraco-envs-0:2.0.0-2.fc33.noarch
python3-pytest-virtualenv-0:1.7.0-7.fc33.noarch
python3-tox-0:3.15.0-2.fc33.noarch
python3-virtualenv-api-0:2.1.16-12.fc33.noarch
python3-virtualenv-clone-0:0.5.3-5.fc33.noarch
python3-virtualenvwrapper-0:4.8.2-14.fc33.noarch
vex-0:0.0.19-6.fc33.noarch

I've done a rebuild of packages with virtualenv in build dependencies and with some tests. Found issues:

How many tests do we need to skip/deselect in pip?

pew cc @tadej

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

How many tests do we need to skip/deselect in pip?

A lot :disappointed: The last rebuild in COPR says: = 1283 passed, 25 skipped, 129 deselected, 5 xfailed, 163 warnings, 491 errors in 33.97s =

However, the support in pip is partially fixed and I'll try to finish it but no ETA

Pagure, are you kidding me? 163 comments by one click? O_o

Pagure, are you kidding me? 163 comments by one click? O_o

Pagure, are you kidding me? 163 comments by one click? O_o

Pagure, are you kidding me? 163 comments by one click? O_o

Pagure, are you kidding me? 163 comments by one click? O_o

Pagure, are you kidding me? 163 comments by one click? O_o

Pagure, are you kidding me? 163 comments by one click? O_o

Pagure, are you kidding me? 163 comments by one click? O_o

Pagure, are you kidding me? 163 comments by one click? O_o

Pagure, are you kidding me? 163 comments by one click? O_o

Pagure, are you kidding me? 163 comments by one click? O_o

Pagure, are you kidding me? 163 comments by one click? O_o

This looks like it should add new elements to the start of the list, but it doesn't: index is incremented even if path is in self.extra_search_dir .
I don't know how much of a problem it is in practice, but wouldn't it be better to instead build a new list and add it with e.g. self.extra_search_dir[:0] = new_entries?

AFAIK this should be just %{python3} now.

Despite the few nitpicks, the patch looks good to me. I still need to test a bit, especially with the dependent packages.

1 new commit added

  • fixup! Update to 20.0.21 (#1742034)
3 years ago

This looks like it should add new elements to the start of the list, but it doesn't: index is incremented even if path is in self.extra_search_dir .
I don't know how much of a problem it is in practice, but wouldn't it be better to instead build a new list and add it with e.g. self.extra_search_dir[:0] = new_entries?

You are right, there might be a very rare corner case where this might cause a problem with the order of the paths in the list if a path yielded from get_system_wheels_paths is already there but at the end of the list.

Both fixed. Given the fact that both list are very short, I used more readable old = new + old instead of old[:0] = new.

Thank you for the review.

Ah! I thought the reason for the loop was to mutate old in-place. Checking the code, I see it wasn't necessary.

+1, I wasn't able to find an issue.

1 new commit added

  • [SQUASH!] Update to 20.0.23
3 years ago

We have two positive reviews here so I'd merge it if the CI is happy with the latest update.

We have two positive reviews here so I'd merge it if the CI is happy with the latest update.

Actually, I though you don't plan to merge before pip is ready... this has confused me.

Do you plan to just ship it and let pip tests fail in the mean time?

Actually, I though you don't plan to merge before pip is ready... this has confused me.
Do you plan to just ship it and let pip tests fail in the mean time?

Getting pip ready will take quite some time. I can open a PR to disable failing tests there to hotfix it.

What does quite some time mean? Are we able to make it in Fedora 33 release time frame?

I believe so and my plan is to focus on it. But, do we really need to fix "the whole stack" before we release virtualenv? My plan is to fix the compatibility as soon as possible but I am also fine with releasing virtualenv now and skipping the tests in pip until they are compatible.

do we really need to fix "the whole stack" before we release virtualenv

No. But I'd argue we need to fix "the critical parts of the stack" before we release virtualenv. That includes pip. Can we skip the virtualenv tests for now? Yes, if we plan to fix them. Can we leave it FTBFS? I'd argue no.

Could you squash the things you want to squash?

rebased onto d4abf8f3fe4786c92b1fb99824cbdb6489b27660

3 years ago

Build succeeded.

A nitpick suggestion: Use %{python3} here as well? Or even %pytest.

Looks good to me. Feel free to address or dismiss the nitpick, merge and ship.

Thank you very much for this!

rebased onto 9aaabea

3 years ago

%pytest implemented, merging

Pull-Request has been merged by lbalhar

3 years ago

https://bodhi.fedoraproject.org/updates/FEDORA-2020-4123db1162 says the test is absent. I wonder whether it will show up in a while or not :/

Build succeeded.

pew cc @tadej

Thanks, @churchyard. I've queried upstream about their plans for the future (https://github.com/berdario/pew/issues/218) and asked about virtualenv 20 support (https://github.com/berdario/pew/issues/219).

Metadata
Flags
simple-koji-ci
success
Build completed for 9aaabea1
3 years ago
simple-koji-ci
success
Build completed for d4abf8f3
3 years ago
simple-koji-ci
success
Build completed for a31535ff
3 years ago
Zuul
success
Jobs result is success
3 years ago
Zuul
failure
Jobs result is failure
3 years ago
simple-koji-ci
success
Build completed for 65244962
3 years ago
Zuul
pending
Jobs result is pending
3 years ago
Zuul
success
Jobs result is success
3 years ago
Zuul
pending
Jobs result is pending
3 years ago
Zuul
failure
Jobs result is failure
3 years ago
Zuul
pending
Jobs result is pending
3 years ago
Zuul
failure
Jobs result is failure
3 years ago
simple-koji-ci
success
Build completed for 0a2ff74f
3 years ago
Zuul
pending
Jobs result is pending
3 years ago
Zuul
failure
Jobs result is failure
3 years ago
simple-koji-ci
success
Build completed for 21b632de
3 years ago
Zuul
pending
Jobs result is pending
3 years ago
Zuul
pending
Jobs result is pending
3 years ago
Zuul
success
Jobs result is success
3 years ago
simple-koji-ci
success
Build completed for fc5acedf
3 years ago
Zuul
pending
Jobs result is pending
3 years ago
Zuul
failure
Jobs result is failure
3 years ago
Zuul
success
Jobs result is success
3 years ago
simple-koji-ci
success
Build completed for b734cb4f
3 years ago
Zuul
pending
Jobs result is pending
3 years ago
Zuul
success
Jobs result is success
3 years ago
Zuul
pending
Jobs result is pending
3 years ago
Zuul
success
Jobs result is success
3 years ago
Zuul
pending
Jobs result is pending
3 years ago
Zuul
failure
Jobs result is failure
3 years ago
Zuul
pending
Jobs result is pending
3 years ago
Zuul
failure
Jobs result is failure
3 years ago
Zuul
pending
Jobs result is pending
3 years ago
Zuul
success
Jobs result is success
3 years ago
simple-koji-ci
success
Build completed for 5924856a
3 years ago
Zuul
pending
Jobs result is pending
3 years ago
Zuul
success
Jobs result is success
3 years ago
Zuul
pending
Jobs result is pending
3 years ago
Zuul
success
Jobs result is success
3 years ago
Zuul
pending
Jobs result is pending
3 years ago
Zuul
success
Jobs result is success
3 years ago
simple-koji-ci
success
Build completed for c165d42c
3 years ago
Zuul
pending
Jobs result is pending
3 years ago
Zuul
success
Jobs result is success
3 years ago
simple-koji-ci
success
Build completed for cdac36b3
3 years ago
Zuul
pending
Jobs result is pending
3 years ago
Fedora CI
success
Package tests for a31535ff: passed
3 years ago
Zuul
failure
Jobs result is failure
3 years ago
simple-koji-ci
success
Build completed for de8d6801
3 years ago
Zuul
pending
Jobs result is pending
3 years ago