#6 Update to 0.12.0 (#1714369), move python2-pluggy to a separate package
Merged 2 months ago by churchyard. Opened 3 months ago by churchyard.
rpms/ churchyard/python-pluggy 0.12.0  into  master

file added
+214

@@ -0,0 +1,214 @@ 

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

+ From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>

+ Date: Wed, 3 Jul 2019 00:51:04 +0200

+ Subject: [PATCH 1/3] Replace importlib_metadata with importlib.metadata on

+  Python 3.8+

+ 

+ Fixes https://github.com/pytest-dev/pluggy/issues/222

+ ---

+  changelog/222.trivial.rst     |  2 ++

+  docs/conf.py                  |  9 +++++++--

+  setup.py                      |  2 +-

+  src/pluggy/manager.py         |  8 ++++++--

+  testing/test_pluginmanager.py | 10 ++++++++--

+  5 files changed, 24 insertions(+), 7 deletions(-)

+  create mode 100644 changelog/222.trivial.rst

+ 

+ diff --git a/changelog/222.trivial.rst b/changelog/222.trivial.rst

+ new file mode 100644

+ index 0000000..0263e8c

+ --- /dev/null

+ +++ b/changelog/222.trivial.rst

+ @@ -0,0 +1,2 @@

+ +Replace ``importlib_metadata`` backport with ``importlib.metadata`` from the

+ +standard library on Python 3.8+.

+ diff --git a/docs/conf.py b/docs/conf.py

+ index 550071d..0346563 100644

+ --- a/docs/conf.py

+ +++ b/docs/conf.py

+ @@ -1,5 +1,10 @@

+  # -*- coding: utf-8 -*-

+ -import importlib_metadata

+ +import sys

+ +

+ +if sys.version_info >= (3, 8):

+ +    from importlib import metadata

+ +else:

+ +    import importlib_metadata as metadata

+  

+  

+  extensions = [

+ @@ -24,7 +29,7 @@

+  copyright = u"2016, Holger Krekel"

+  author = "Holger Krekel"

+  

+ -release = importlib_metadata.version(project)

+ +release = metadata.version(project)

+  # The short X.Y version.

+  version = u".".join(release.split(".")[:2])

+  

+ diff --git a/setup.py b/setup.py

+ index 0f26fa0..ae2cd84 100644

+ --- a/setup.py

+ +++ b/setup.py

+ @@ -37,7 +37,7 @@ def main():

+          author_email="holger@merlinux.eu",

+          url="https://github.com/pytest-dev/pluggy",

+          python_requires=">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*",

+ -        install_requires=["importlib-metadata>=0.12"],

+ +        install_requires=['importlib-metadata>=0.12;python_version<"3.8"'],

+          extras_require={"dev": ["pre-commit", "tox"]},

+          classifiers=classifiers,

+          packages=["pluggy"],

+ diff --git a/src/pluggy/manager.py b/src/pluggy/manager.py

+ index 27c86f6..6aecb2a 100644

+ --- a/src/pluggy/manager.py

+ +++ b/src/pluggy/manager.py

+ @@ -1,9 +1,13 @@

+  import inspect

+ +import sys

+  from . import _tracing

+  from .hooks import HookImpl, _HookRelay, _HookCaller, normalize_hookimpl_opts

+  import warnings

+  

+ -import importlib_metadata

+ +if sys.version_info >= (3, 8):

+ +    from importlib import metadata

+ +else:

+ +    import importlib_metadata as metadata

+  

+  

+  def _warn_for_function(warning, function):

+ @@ -279,7 +283,7 @@ def load_setuptools_entrypoints(self, group, name=None):

+          :return: return the number of loaded plugins by this call.

+          """

+          count = 0

+ -        for dist in importlib_metadata.distributions():

+ +        for dist in metadata.distributions():

+              for ep in dist.entry_points:

+                  if (

+                      ep.group != group

+ diff --git a/testing/test_pluginmanager.py b/testing/test_pluginmanager.py

+ index b226c41..693280c 100644

+ --- a/testing/test_pluginmanager.py

+ +++ b/testing/test_pluginmanager.py

+ @@ -2,8 +2,9 @@

+  ``PluginManager`` unit and public API testing.

+  """

+  import pytest

+ +import sys

+  import types

+ -import importlib_metadata

+ +

+  from pluggy import (

+      PluginManager,

+      PluginValidationError,

+ @@ -12,6 +13,11 @@

+      HookspecMarker,

+  )

+  

+ +if sys.version_info >= (3, 8):

+ +    from importlib import metadata

+ +else:

+ +    import importlib_metadata as metadata

+ +

+  

+  hookspec = HookspecMarker("example")

+  hookimpl = HookimplMarker("example")

+ @@ -466,7 +472,7 @@ class Distribution(object):

+      def my_distributions():

+          return (dist,)

+  

+ -    monkeypatch.setattr(importlib_metadata, "distributions", my_distributions)

+ +    monkeypatch.setattr(metadata, "distributions", my_distributions)

+      num = pm.load_setuptools_entrypoints("hello")

+      assert num == 1

+      plugin = pm.get_plugin("myname")

+ 

+ From 763b661fc15c04f85bcf6b501280641b88041d0a Mon Sep 17 00:00:00 2001

+ From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>

+ Date: Wed, 3 Jul 2019 01:02:41 +0200

+ Subject: [PATCH 2/3] Workaround

+  https://github.com/pytest-dev/pytest/issues/5523

+ 

+ ---

+  tox.ini | 2 +-

+  1 file changed, 1 insertion(+), 1 deletion(-)

+ 

+ diff --git a/tox.ini b/tox.ini

+ index 431aceb..eb917aa 100644

+ --- a/tox.ini

+ +++ b/tox.ini

+ @@ -38,7 +38,7 @@ commands =

+  minversion=2.0

+  testpaths = testing

+  #--pyargs --doctest-modules --ignore=.tox

+ -addopts=-ra

+ +addopts=-r a

+  filterwarnings =

+    error

+  

+ 

+ From 1bf30d695d13c656015eaf0b29d9445d3788da68 Mon Sep 17 00:00:00 2001

+ From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>

+ Date: Wed, 3 Jul 2019 01:09:26 +0200

+ Subject: [PATCH 3/3] Update tests matrix to reflect recent changes in pytest

+ 

+ No Python 3.8 on AppVeyor yet.

+ ---

+  .travis.yml  | 8 ++++----

+  appveyor.yml | 3 +--

+  tox.ini      | 2 +-

+  3 files changed, 6 insertions(+), 7 deletions(-)

+ 

+ diff --git a/.travis.yml b/.travis.yml

+ index 994146d..d72f517 100644

+ --- a/.travis.yml

+ +++ b/.travis.yml

+ @@ -32,16 +32,16 @@ jobs:

+        env: TOXENV=py37-pytestrelease-coverage

+      - python: '3.8-dev'

+        env: TOXENV=py38-pytestrelease-coverage

+ -    - python: '2.7'

+ -      env: TOXENV=py27-pytestmaster-coverage

+ -    - python: '2.7'

+ -      env: TOXENV=py27-pytestfeatures-coverage

+      - python: '3.6'

+        env: TOXENV=py36-pytestmaster-coverage

+      - python: '3.6'

+        env: TOXENV=py36-pytestfeatures-coverage

+      - python: '3.6'

+        env: TOXENV=benchmark

+ +    - python: '3.7'

+ +      env: TOXENV=py37-pytestmaster-coverage

+ +    - python: '3.7'

+ +      env: TOXENV=py37-pytestfeatures-coverage

+  

+      - stage: deploy

+        python: '3.6'

+ diff --git a/appveyor.yml b/appveyor.yml

+ index 8d1a57d..560151c 100644

+ --- a/appveyor.yml

+ +++ b/appveyor.yml

+ @@ -7,9 +7,8 @@ environment:

+    - TOXENV: "py34-pytestrelease"

+    - TOXENV: "py35-pytestrelease"

+    - TOXENV: "py36-pytestrelease"

+ +  - TOXENV: "py37-pytestrelease"

+    - TOXENV: "pypy-pytestrelease"

+ -  - TOXENV: "py27-pytestmaster"

+ -  - TOXENV: "py27-pytestfeatures"

+    - TOXENV: "py36-pytestmaster"

+    - TOXENV: "py36-pytestfeatures"

+  

+ diff --git a/tox.ini b/tox.ini

+ index eb917aa..ebcd004 100644

+ --- a/tox.ini

+ +++ b/tox.ini

+ @@ -1,5 +1,5 @@

+  [tox]

+ -envlist=linting,docs,py{27,34,35,36,py,py3}-pytestrelease,py{27,36}-pytest{master,features}

+ +envlist=linting,docs,py{27,34,35,36,37,38,py,py3}-pytestrelease,py{36,37}-pytest{master,features}

+  

+  [testenv]

+  commands=

file modified
+11 -47

@@ -1,16 +1,10 @@ 

  %global pypi_name pluggy

  

- %if 0%{?fedora} || 0%{?rhel} > 7

- %bcond_without python3

- %else

- %bcond_with python3

- %endif

- 

  # Turn the tests off when bootstrapping Python, because pytest requires pluggy

  %bcond_without tests

  

  Name:           python-pluggy

- Version:        0.11.0

+ Version:        0.12.0

  Release:        1%{?dist}

  Summary:        The plugin manager stripped of pytest specific details

  

@@ -18,91 +12,61 @@ 

  URL:            https://github.com/pytest-dev/pluggy

  Source0:        %{pypi_source}

  

+ # Use importlib.metadata from stdlib on Python 3.8

+ Patch0:         %{url}/pull/223.patch

  

  BuildArch:      noarch

- BuildRequires:  python2-devel

- BuildRequires:  python2-setuptools

- BuildRequires:  python2-setuptools_scm

- %if %{with tests}

- BuildRequires:  python2-pytest

- %endif

  

- %if %{with python3}

  BuildRequires:  python3-devel

  BuildRequires:  python3-setuptools

  BuildRequires:  python3-setuptools_scm

  %if %{with tests}

  BuildRequires:  python3-pytest

+ BuildRequires:  (python3-importlib-metadata if python3 < 3.8)

  %endif

- %endif # with python3

  

  %global _description\

  The plugin manager stripped of pytest specific details.

  

  %description %_description

  

- %package -n python2-%{pypi_name}

- Summary: %summary

- %{?python_provide:%python_provide python2-%{pypi_name}}

- 

- %description -n python2-%{pypi_name} %_description

- 

- %if %{with python3}

  %package -n python3-%{pypi_name}

  Summary:  %summary

  

  %description -n python3-%{pypi_name}

  The plugin manager stripped of pytest specific details.

  

- %endif # with python3

- 

  

  %prep

- %autosetup -n %{pypi_name}-%{version}

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

  

  

  %build

- %py2_build

- 

- %if %{with python3}

  %py3_build

- %endif # with python3

  

  

  %install

- %if %{with python3}

  %py3_install

- %endif # with python3

- 

- %py2_install

  

  %if %{with tests}

  %check

- PYTHONPATH=$PWD %{__python2} -m pytest testing

- 

- %if %{with python3}

- PYTHONPATH=$PWD %{__python3} -m pytest testing

+ # TODO investigate test_load_setuptools_instantiation failure

+ PYTHONPATH=$PWD %{__python3} -m pytest testing -k "not test_load_setuptools_instantiation"

  %endif

- %endif # with tests

  

  

- %files -n python2-%{pypi_name}

- %doc README.rst

- %license LICENSE

- %{python2_sitelib}/%{pypi_name}/

- %{python2_sitelib}/%{pypi_name}-%{version}-py%{python2_version}.egg-info/

- 

- 

- %if %{with python3}

  %files -n python3-%{pypi_name}

  %{python3_sitelib}/%{pypi_name}/

  %{python3_sitelib}/%{pypi_name}-%{version}-py%{python3_version}.egg-info/

  %doc README.rst

  %license LICENSE

- %endif # with python3

  

  

  %changelog

+ * Wed Jun 26 2019 Miro Hrončok <mhroncok@redhat.com> - 0.12.0-1

+ - Update to 0.12.0 (#1714369)

+ - Move python2-pluggy to a separate package

+ 

  * Tue May 14 2019 Thomas Moschny <thomas.moschny@gmx.de> - 0.11.0-1

  - Update to 0.11.0.

  

file modified
+1 -1

@@ -1,1 +1,1 @@ 

- SHA512 (pluggy-0.11.0.tar.gz) = 8808f5015fa6f33fcb07047c644706bf3acceed1e107dd617395e61aa9765a45e3a641e49c610ab817ebaa2c4f3b32a15bf347579206e979fe6b844ba2f684b5

+ SHA512 (pluggy-0.12.0.tar.gz) = a3a64caefc797334b73b0614e467613b99909037a62dcbfbb0cf917788ee8d12af4f43d7c371634ac6eb6f32a5aa08e51aa8179e70b5998d4d055cd7f535129f

Thank you for this PR! It looks good to me and I'd merge it.

Added missing BR for python3-importlib-metadata

rebased onto f616a8e

3 months ago

Shall we do this? I can open a package review request for python2-pluggy.

1 new commit added

  • Use importlib.metadata from stdlib on Python 3.8
2 months ago

Metadata Update from @churchyard:
- Request assigned

2 months ago

Will merge and build this once the repo for python2-pluggy is created.

Pull-Request has been merged by churchyard

2 months ago