#21 Fedora 31 master sync
Closed 4 years ago by churchyard. Opened 4 years ago by churchyard.

file modified
+4 -1
@@ -6,7 +6,7 @@ 

  

  # Keep the version at zero and increment only release

  Version:        0

- Release:        7%{?dist}

+ Release:        8%{?dist}

  

  Source0:        macros.pyproject

  Source1:        pyproject_buildrequires.py
@@ -87,6 +87,9 @@ 

  %license LICENSE

  

  %changelog

+ * Fri Oct 25 2019 Miro Hrončok <mhroncok@redhat.com> - 0-8

+ - When tox fails, print tox output before failing

+ 

  * Tue Oct 08 2019 Miro Hrončok <mhroncok@redhat.com> - 0-7

  - Move a verbose line of %%pyproject_buildrequires from stdout to stderr

  

file modified
+19 -17
@@ -7,7 +7,6 @@ 

  import contextlib

  from io import StringIO

  import subprocess

- import pathlib

  import re

  import tempfile

  import email.parser
@@ -18,13 +17,14 @@ 

  # Whitelist characters we can handle.

  VERSION_RE = re.compile('[a-zA-Z0-9.-]+')

  

+ 

  class EndPass(Exception):

      """End current pass of generating requirements"""

  

+ 

  try:

      import pytoml

      from packaging.requirements import Requirement, InvalidRequirement

-     from packaging.version import Version

      from packaging.utils import canonicalize_name, canonicalize_version

      try:

          import importlib.metadata as importlib_metadata
@@ -62,15 +62,14 @@ 

              requirement = Requirement(requirement_str)

          except InvalidRequirement as e:

              print_err(

-                 f'"WARNING: Skipping invalid requirement: {requirement_str}\n'

+                 f'WARNING: Skipping invalid requirement: {requirement_str}\n'

                  + f'    {e}',

              )

              return

  

          name = canonicalize_name(requirement.name)

-         if (requirement.marker is not None

-             and not requirement.marker.evaluate(environment=self.marker_env)

-         ):

+         if (requirement.marker is not None and

+                 not requirement.marker.evaluate(environment=self.marker_env)):

              print_err(f'Ignoring alien requirement:', requirement_str)

              return

  
@@ -96,11 +95,11 @@ 

                      f'Unknown character in version: {specifier.version}. '

                      + '(This is probably a bug in pyproject-rpm-macros.)',

                  )

-             if specifier.operator == "!=":

+             if specifier.operator == '!=':

                  lower = python3dist(name, '<', version)

                  higher = python3dist(name, '>', f'{version}.0')

                  together.append(

-                     f"({lower} or {higher})"

+                     f'({lower} or {higher})'

                  )

              else:

                  together.append(python3dist(name, specifier.operator, version))
@@ -122,6 +121,7 @@ 

          for req_str in requirement_strs:

              self.add(req_str, source=source)

  

+ 

  def get_backend(requirements):

      try:

          f = open('pyproject.toml')
@@ -131,16 +131,16 @@ 

          with f:

              pyproject_data = pytoml.load(f)

  

-     buildsystem_data = pyproject_data.get("build-system", {})

+     buildsystem_data = pyproject_data.get('build-system', {})

      requirements.extend(

-         buildsystem_data.get("requires", ()),

+         buildsystem_data.get('requires', ()),

          source='build-system.requires',

      )

  

      backend_name = buildsystem_data.get('build-backend')

      if not backend_name:

-         requirements.add("setuptools >= 40.8", source='default build backend')

-         requirements.add("wheel", source='default build backend')

+         requirements.add('setuptools >= 40.8', source='default build backend')

+         requirements.add('wheel', source='default build backend')

  

          backend_name = 'setuptools.build_meta'

  
@@ -154,7 +154,7 @@ 

  

  

  def generate_build_requirements(backend, requirements):

-     get_requires = getattr(backend, "get_requires_for_build_wheel", None)

+     get_requires = getattr(backend, 'get_requires_for_build_wheel', None)

      if get_requires:

          with hook_call():

              new_reqs = get_requires()
@@ -162,7 +162,8 @@ 

  

  

  def generate_run_requirements(backend, requirements):

-     prepare_metadata = getattr(backend, "prepare_metadata_for_build_wheel", None)

+     hook_name = 'prepare_metadata_for_build_wheel'

+     prepare_metadata = getattr(backend, hook_name, None)

      if not prepare_metadata:

          raise ValueError(

              'build backend cannot provide build metadata '
@@ -183,13 +184,14 @@ 

      with tempfile.NamedTemporaryFile('r') as depfile:

          r = subprocess.run(

              ['tox', '--print-deps-to-file', depfile.name, '-qre', toxenv],

-             check=True,

+             check=False,

              encoding='utf-8',

              stdout=subprocess.PIPE,

              stderr=subprocess.STDOUT,

          )

          if r.stdout:

-             print_err(r.stdout)

+             print_err(r.stdout, end='')

+         r.check_returncode()

          requirements.extend(depfile.read().splitlines(),

                              source=f'tox --print-deps-only: {toxenv}')

  
@@ -247,7 +249,7 @@ 

          '-x', '--extras', metavar='EXTRAS', default='',

          help='extra for runtime requirements (e.g. -x testing)',

          # XXX: a comma-separated list should be possible here

-         #help='comma separated list of "extras" for runtime requirements '

+         # help='comma separated list of "extras" for runtime requirements '

          #    + '(e.g. -x testing,feature-x)',

      )

  

no initial comment

Pull-Request has been closed by churchyard

4 years ago