Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-scikit-build for openSUSE:Factory checked in at 2022-03-25 21:55:00 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-scikit-build (Old) and /work/SRC/openSUSE:Factory/.python-scikit-build.new.1900 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-scikit-build" Fri Mar 25 21:55:00 2022 rev:8 rq:964858 version:0.13.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-scikit-build/python-scikit-build.changes 2022-02-05 23:24:36.111342504 +0100 +++ /work/SRC/openSUSE:Factory/.python-scikit-build.new.1900/python-scikit-build.changes 2022-03-25 21:55:21.582317398 +0100 @@ -1,0 +2,7 @@ +Fri Mar 25 13:17:01 UTC 2022 - Ben Greiner <c...@bnavigator.de> + +- Update to 0.13.1 + * Do not throw an error when printing info and a logger is + disconnected. #652 + +------------------------------------------------------------------- Old: ---- scikit-build-0.13.0.tar.gz New: ---- scikit-build-0.13.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-scikit-build.spec ++++++ --- /var/tmp/diff_new_pack.JBb5ny/_old 2022-03-25 21:55:22.094317885 +0100 +++ /var/tmp/diff_new_pack.JBb5ny/_new 2022-03-25 21:55:22.102317893 +0100 @@ -19,7 +19,7 @@ %{?!python_module:%define python_module() python3-%{**}} %define skip_python2 1 Name: python-scikit-build -Version: 0.13.0 +Version: 0.13.1 Release: 0 Summary: Improved build system generator for Python C/C++/Fortran/Cython extensions License: MIT ++++++ scikit-build-0.13.0.tar.gz -> scikit-build-0.13.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scikit-build-0.13.0/CHANGES.rst new/scikit-build-0.13.1/CHANGES.rst --- old/scikit-build-0.13.0/CHANGES.rst 2022-02-02 20:24:25.000000000 +0100 +++ new/scikit-build-0.13.1/CHANGES.rst 2022-02-07 19:51:43.000000000 +0100 @@ -5,6 +5,22 @@ This is the list of changes to scikit-build between each release. For full details, see the commit logs at http://github.com/scikit-build/scikit-build +Scikit-build 0.13.1 +=================== + +This release fixes two bugs affecting Windows. Users should use ``"ninja; +platform_system!='Windows"``, at least for now, since MSVC ships with Ninja, +and that Ninja is better at finding the matching MSVC than the Python package +is. Including it may slow down the search and force the IDE generator instead, +but will at least no longer discover GCC instead. + +Bug fixes +--------- + +* On Windows, don't let Ninja find something other than what it's supposed to + look for. Ensure the Ninja package is used for the search, just like normal + runs, if installed. :pr:`652`. +* Do not throw an error when printing info and a logger is disconnected. :pr:`652` Scikit-build 0.13.0 =================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scikit-build-0.13.0/PKG-INFO new/scikit-build-0.13.1/PKG-INFO --- old/scikit-build-0.13.0/PKG-INFO 2022-02-02 20:24:35.140333000 +0100 +++ new/scikit-build-0.13.1/PKG-INFO 2022-02-07 19:51:56.193712700 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: scikit-build -Version: 0.13.0 +Version: 0.13.1 Summary: Improved build system generator for Python C/C++/Fortran/Cython extensions Home-page: https://github.com/scikit-build/scikit-build Author: The scikit-build team diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scikit-build-0.13.0/docs/usage.rst new/scikit-build-0.13.1/docs/usage.rst --- old/scikit-build-0.13.0/docs/usage.rst 2022-02-02 20:24:25.000000000 +0100 +++ new/scikit-build-0.13.1/docs/usage.rst 2022-02-07 19:51:43.000000000 +0100 @@ -42,9 +42,21 @@ Then, add a ``pyproject.toml`` to list the build system requirements:: [build-system] - requires = ["setuptools", "wheel", "scikit-build", "cmake", "ninja"] + requires = [ + "setuptools>=42", + "wheel", + "scikit-build", + "cmake", + "ninja; platform_system!='Windows'" + ] + build-backend = "setuptools.build_meta" +You can add lower limits to ``cmake`` or ``scikit-build`` as needed. Ninja +should be limited to non-Windows systems, as MSVC 2017+ ships with Ninja +already, and there are fall-backs if Ninja is missing, and the Python Ninja +seems to be less likely to find MSVC than the built-in one currently. + .. note:: By default, scikit-build looks in the project top-level directory for a diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scikit-build-0.13.0/scikit_build.egg-info/PKG-INFO new/scikit-build-0.13.1/scikit_build.egg-info/PKG-INFO --- old/scikit-build-0.13.0/scikit_build.egg-info/PKG-INFO 2022-02-02 20:24:35.000000000 +0100 +++ new/scikit-build-0.13.1/scikit_build.egg-info/PKG-INFO 2022-02-07 19:51:56.000000000 +0100 @@ -1,6 +1,6 @@ Metadata-Version: 2.1 Name: scikit-build -Version: 0.13.0 +Version: 0.13.1 Summary: Improved build system generator for Python C/C++/Fortran/Cython extensions Home-page: https://github.com/scikit-build/scikit-build Author: The scikit-build team diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scikit-build-0.13.0/skbuild/_version.py new/scikit-build-0.13.1/skbuild/_version.py --- old/scikit-build-0.13.0/skbuild/_version.py 2022-02-02 20:24:35.140333000 +0100 +++ new/scikit-build-0.13.1/skbuild/_version.py 2022-02-07 19:51:56.193712700 +0100 @@ -8,11 +8,11 @@ version_json = ''' { - "date": "2022-02-02T13:16:32-0500", + "date": "2022-02-07T13:44:12-0500", "dirty": false, "error": null, - "full-revisionid": "1ebee61903a75b00e7d685cac7e4e9ad9eeecf0b", - "version": "0.13.0" + "full-revisionid": "4d5f087c731675445988ad48364377d10b110b65", + "version": "0.13.1" } ''' # END VERSION_JSON diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scikit-build-0.13.0/skbuild/platform_specifics/abstract.py new/scikit-build-0.13.1/skbuild/platform_specifics/abstract.py --- old/scikit-build-0.13.0/skbuild/platform_specifics/abstract.py 2022-02-02 20:24:25.000000000 +0100 +++ new/scikit-build-0.13.1/skbuild/platform_specifics/abstract.py 2022-02-07 19:51:43.000000000 +0100 @@ -50,6 +50,15 @@ f.write("PROJECT(compiler_test NONE)\n") for language in languages: f.write("ENABLE_LANGUAGE({:s})\n".format(language)) + f.write('if("${_SKBUILD_FORCE_MSVC}")\n' + ' math(EXPR FORCE_MAX "${_SKBUILD_FORCE_MSVC}+9")\n' + ' math(EXPR FORCE_MIN "${_SKBUILD_FORCE_MSVC}")\n' + ' if(NOT MSVC)\n' + ' message(FATAL_ERROR "MSVC is required to pass this check.")\n' + " elseif(MSVC_VERSION LESS FORCE_MIN OR MSVC_VERSION GREATER FORCE_MAX)\n" + ' message(FATAL_ERROR "MSVC ${MSVC_VERSION} does pass this check.")\n' + " endif()\n" + 'endif()\n') @staticmethod def cleanup_test(): @@ -210,6 +219,7 @@ if generator.architecture: cmd.extend(['-A', generator.architecture]) cmd.extend(cmake_args) + cmd.extend(generator.args) status = subprocess.call(cmd, env=generator.env) @@ -232,7 +242,7 @@ .. automethod:: __init__ """ - def __init__(self, name, env=None, toolset=None, arch=None): + def __init__(self, name, env=None, toolset=None, arch=None, args=None): """Instantiate a generator object with the given ``name``. By default, ``os.environ`` is associated with the generator. Dictionary @@ -241,9 +251,10 @@ variable in ``env`` is used. Some CMake generators support a ``toolset`` specification to tell the native - build system how to choose a compiler. + build system how to choose a compiler. You can also include CMake arguments. """ self._generator_name = name + self.args = args or [] self.env = dict( list(os.environ.items()) + list(env.items() if env else [])) self._generator_toolset = toolset diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scikit-build-0.13.0/skbuild/platform_specifics/unix.py new/scikit-build-0.13.1/skbuild/platform_specifics/unix.py --- old/scikit-build-0.13.0/skbuild/platform_specifics/unix.py 2022-02-02 20:24:25.000000000 +0100 +++ new/scikit-build-0.13.1/skbuild/platform_specifics/unix.py 2022-02-07 19:51:43.000000000 +0100 @@ -1,5 +1,7 @@ """This module defines object specific to Unix platform.""" +import os + from .abstract import CMakeGenerator from . import abstract @@ -11,7 +13,14 @@ def __init__(self): super(UnixPlatform, self).__init__() + try: + import ninja + ninja_executable_path = os.path.join(ninja.BIN_DIR, "ninja") + ninja_args = ['-DCMAKE_MAKE_PROGRAM:FILEPATH=' + ninja_executable_path] + except ImportError: + ninja_args = [] + self.default_generators = [ - CMakeGenerator("Ninja"), + CMakeGenerator("Ninja", args=ninja_args), CMakeGenerator("Unix Makefiles") ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scikit-build-0.13.0/skbuild/platform_specifics/windows.py new/scikit-build-0.13.1/skbuild/platform_specifics/windows.py --- old/scikit-build-0.13.0/skbuild/platform_specifics/windows.py 2022-02-02 20:24:25.000000000 +0100 +++ new/scikit-build-0.13.1/skbuild/platform_specifics/windows.py 2022-02-07 19:51:43.000000000 +0100 @@ -16,12 +16,40 @@ from . import abstract +VS_YEAR_TO_VERSION = { + "2008": 9, + "2010": 10, + "2012": 11, + "2013": 12, + "2015": 14, + "2017": 15, + "2019": 16, + "2022": 17, +} +"""Describes the version of `Visual Studio` supported by +:class:`CMakeVisualStudioIDEGenerator` and +:class:`CMakeVisualStudioCommandLineGenerator`. + +The different version are identified by their year. +""" + +VS_YEAR_TO_MSC_VER = { + "2008":"1500", # VS 2008 + "2010":"1600", # VS 2010 + "2012":"1700", # VS 2012 + "2013":"1800", # VS 2012 + "2015":"1900", # VS 2015 + "2017":"1910", # VS 2017 - can be +9 + "2019":"1920", # VS 2019 - can be +9 + "2022":"1930", # VS 2022 - can be +9 +} + + class WindowsPlatform(abstract.CMakePlatform): """Windows implementation of :class:`.abstract.CMakePlatform`.""" def __init__(self): super(WindowsPlatform, self).__init__() - version = sys.version_info self._vs_help = "" vs_help_template = textwrap.dedent( """ @@ -33,10 +61,7 @@ ).strip().format(pyver="%s.%s" % sys.version_info[:2]) # For Python 2.7 to Python 3.2: VS2008 - if ( - (version.major == 2 and version.minor >= 7) or - (version.major == 3 and version.minor <= 2) - ): + if (2, 7) <= sys.version_info < (3, 3): supported_vs_years = [("2008", None)] self._vs_help = vs_help_template % ( supported_vs_years[0][0], @@ -45,12 +70,7 @@ ) # For Python 3.3 to Python 3.4: VS2010 - elif ( - version.major == 3 and ( - version.minor >= 3 and - version.minor <= 4 - ) - ): + elif (3, 3) <= sys.version_info < (3, 5): supported_vs_years = [("2010", None)] self._vs_help = vs_help_template % ( supported_vs_years[0][0], @@ -59,7 +79,7 @@ ) # For Python 3.5: VS2019, VS2017, VS2015 - elif version.major == 3 and version.minor == 5: + elif (3, 5) <= sys.version_info < (3, 6): supported_vs_years = [("2019", "v142"), ("2017", "v140"), ("2015", None)] self._vs_help = vs_help_template % ( supported_vs_years[0][0], @@ -75,7 +95,7 @@ ).strip() # For Python 3.6 and above: VS2022, VS2019, VS2017 - elif version.major == 3 and version.minor >= 6: + elif (3, 6) <= sys.version_info: supported_vs_years = [("2022", "v143"), ("2019", "v142"), ("2017", "v141")] self._vs_help = vs_help_template % ( supported_vs_years[0][0], @@ -96,12 +116,23 @@ else: raise RuntimeError("Only Python >= 2.7 is supported on Windows.") + try: + import ninja + ninja_executable_path = os.path.join(ninja.BIN_DIR, "ninja") + ninja_args = ['-DCMAKE_MAKE_PROGRAM:FILEPATH=' + ninja_executable_path] + except ImportError: + ninja_args = [] + + extra = [] for vs_year, vs_toolset in supported_vs_years: + vs_version = VS_YEAR_TO_MSC_VER[vs_year] + args = ["-D_SKBUILD_FORCE_MSVC={}".format(vs_version)] self.default_generators.extend([ - CMakeVisualStudioCommandLineGenerator("Ninja", vs_year, vs_toolset), + CMakeVisualStudioCommandLineGenerator("Ninja", vs_year, vs_toolset, args=ninja_args + args), CMakeVisualStudioIDEGenerator(vs_year, vs_toolset), - CMakeVisualStudioCommandLineGenerator("NMake Makefiles", vs_year, vs_toolset), ]) + extra.append(CMakeVisualStudioCommandLineGenerator("NMake Makefiles", vs_year, vs_toolset, args=args)) + self.default_generators.extend(extra) @property def generator_installation_help(self): @@ -109,24 +140,6 @@ return self._vs_help -VS_YEAR_TO_VERSION = { - "2008": 9, - "2010": 10, - "2012": 11, - "2013": 12, - "2015": 14, - "2017": 15, - "2019": 16, - "2022": 17, -} -"""Describes the version of `Visual Studio` supported by -:class:`CMakeVisualStudioIDEGenerator` and -:class:`CMakeVisualStudioCommandLineGenerator`. - -The different version are identified by their year. -""" - - class CMakeVisualStudioIDEGenerator(CMakeGenerator): """ Represents a Visual Studio CMake generator. @@ -359,7 +372,7 @@ .. automethod:: __init__ """ - def __init__(self, name, year, toolset=None): + def __init__(self, name, year, toolset=None, args=None): """Instantiate CMake command-line generator. The generator ``name`` can be values like `Ninja`, `NMake Makefiles` @@ -375,5 +388,5 @@ """ vc_env = _get_msvc_compiler_env(VS_YEAR_TO_VERSION[year], toolset) env = {str(key.upper()): str(value) for key, value in vc_env.items()} - super(CMakeVisualStudioCommandLineGenerator, self).__init__(name, env) + super(CMakeVisualStudioCommandLineGenerator, self).__init__(name, env, args=args) self._description = "{} ({})".format(self.name, CMakeVisualStudioIDEGenerator(year, toolset).description) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scikit-build-0.13.0/skbuild/utils/__init__.py new/scikit-build-0.13.1/skbuild/utils/__init__.py --- old/scikit-build-0.13.0/skbuild/utils/__init__.py 2022-02-02 20:24:25.000000000 +0100 +++ new/scikit-build-0.13.1/skbuild/utils/__init__.py 2022-02-07 19:51:43.000000000 +0100 @@ -26,6 +26,17 @@ logging_module = False +def _log_warning(msg, *args): + try: + if logging_module: + distutils_log.warning(msg, *args) + else: + distutils_log.warn(msg, *args) + except ValueError: + # Setuptools might disconnect the logger. That shouldn't be an error for a warning. + print(msg % args) + + class ContextDecorator(object): """A base class or mixin that enables context managers to work as decorators.""" @@ -174,12 +185,7 @@ if os.path.exists(updated_module_file): module_file = updated_module_file if not os.path.isfile(module_file): - if logging_module: - distutils_log.warning( - "file %s (for module %s) not found", module_file, module) - else: - distutils_log.warn( - "file %s (for module %s) not found", module_file, module) + _log_warning("file %s (for module %s) not found", module_file, module) return False return True diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/scikit-build-0.13.0/tests/test_skbuild.py new/scikit-build-0.13.1/tests/test_skbuild.py --- old/scikit-build-0.13.0/tests/test_skbuild.py 2022-02-02 20:24:25.000000000 +0100 +++ new/scikit-build-0.13.1/tests/test_skbuild.py 2022-02-07 19:51:43.000000000 +0100 @@ -85,31 +85,30 @@ ] ]) - generator = None - # If environment exists, update the expected generator if ( has_vs_for_python_vcvars or has_vs_ide_vcvars ) and which("ninja.exe"): - generator = "Ninja" + assert get_best_generator().name == "Ninja" + + elif has_vs_2017: + vs_generator = "Visual Studio 15 2017" + # Early versions of 2017 may not ship with Ninja (TODO: check) + assert get_best_generator().name in {"Ninja", vs_generator} - elif has_vs_2017 or has_vs_2019 or has_vs_2022: + elif has_vs_2019 or has_vs_2022: # ninja is provided by the CMake extension bundled with Visual Studio 2017 # C:/Program Files (x86)/Microsoft Visual Studio/2017/Professional/Common7/IDE/CommonExtensions/Microsoft/CMake/Ninja/ninja.exe # noqa: E501 - generator = "Ninja" + assert get_best_generator().name == "Ninja" - elif has_vs_ide_vcvars or has_vs_2017: - generator = vs_generator + elif has_vs_ide_vcvars: + assert get_best_generator().name == vs_generator elif has_vs_for_python_vcvars: - generator = "NMake Makefiles" - - assert (get_best_generator().name == generator) + assert get_best_generator().name == "NMake Makefiles" elif this_platform in ["darwin", "linux"]: - generator = "Unix Makefiles" - if which("ninja"): - generator = "Ninja" + generator = "Ninja" if which("ninja") else "Unix Makefiles" assert get_best_generator().name == generator @@ -192,10 +191,11 @@ pytest.skip("env. variable %s is not set" % env_var) valid_path_expected = bool(int(os.environ[env_var])) + vs_path = find_visual_studio(VS_YEAR_TO_VERSION[vs_year]) if valid_path_expected: - assert os.path.exists(find_visual_studio(VS_YEAR_TO_VERSION[vs_year])) + assert os.path.exists(vs_path) else: - assert find_visual_studio(VS_YEAR_TO_VERSION[vs_year]) == "" + assert vs_path == "" @pytest.mark.skipif(sys.version_info < (3, 5), reason="Python 3.5+ required on Windows")