Scikit-build

Latest version: v0.17.6

Safety actively analyzes 630217 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 5 of 10

0.9.0

==================

New Features
------------

* Add support for building distutils based extensions associated with ``ext_modules`` setup keyword along
side skbuild based extensions. This means using ``build_ext`` command (and associated ``--inplace``
argument) is supported. Thanks :user:`Erotemic` for the contribution. See :issue:`284`.

Bug fixes
---------

* Fix build of wheels if path includes spaces. See issue :issue:`375`. Thanks :user:`padraic-padraic`
for the contribution.

* Ensure wheel platform name is correctly set when providing custom ``CMAKE_OSX_DEPLOYMENT_TARGET``
and ``CMAKE_OSX_ARCHITECTURES`` values are provided. Thanks :user:`nonhermitian` for the contribution.
See :issue:`377`.

* Fix testing with recent version of pytest by updating the pytest-runner requirements expression in ``setup.py``.
Thanks :user:`mackelab` for the contribution.

0.8.1

==================

Bug fixes
---------

* Fix ``bdist_wheel`` command to support ``wheel >= 0.32.0``. Thanks :user:`fbudin69500` for reporting
issue :issue:`360`.

Tests
-----

* Fix ``test_distribution.py`` updating use of ``Path.files()`` and requiring ``path.py>=11.5.0``.

0.8.0

==================

New Features
------------

* Introduced :const:`skbuild.constants.CMAKE_DEFAULT_EXECUTABLE` to facilitate distribution
of scikit-build in package manager like `Nixpkgs <https://github.com/NixOS/nixpkgs>`_ where
all paths to dependencies are hardcoded. Suggested by :user:`FRidh`.

* Setup keywords:

* If not already set, ``zip_safe`` option is set to ``False``. Suggested by :user:`blowekamp`.

* Add support for ``--skip-generator-test`` when a generator is explicitly selected using
``--generator``. This allows to speed up overall build when the build environment is known.

Bug fixes
---------

* Fix support for building project with CMake source directory outside of the
``setup.py`` directory. See :issue:`335` fixed by :user:`massich`.

* Fix reading of ``.cmake`` files having any character not available in
`CP-1252 <https://en.wikipedia.org/wiki/Windows-1252>`_ (the default code page on
windows). See :issue:`334` fixed by :user:`bgermann`.

* Fix parsing of macOS specific arguments like ``--plat-name macosx-X.Y-x86_64``
and ``-DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=X.Y`` and ensure that the ones specified as
command line arguments override the default values or the one hard-coded in the
``cmake_args`` setup keyword. Thanks :user:`yonip` for the help addressing :issue:`342`.

* Support case where relative directory set in ``package_dir`` has an ending slash.
For example, specifying ``package_dir={'awesome': 'src/awesome/'},`` is now
properly handled.

* Fix support for isolated build environment ensuring the CMake project is reconfigured
when ``pip install -e .`` is called multiple times. See :issue:`352`.

Documentation
-------------

* README: Update overall download count.

* Add logo and update sphinx configuration. Thanks :user:`SteveJordanKW` for the design work.

* Update :ref:`CMake installation <installation_cmake>` section. Thanks :user:`thewtex`.

* Add :ref:`support_isolated_build` section.

* Add :ref:`optimized_incremental_build` section.

* Update :ref:`usage documentation <usage-setuptools_options>` to specify that ``--universal`` and
``--python-tags`` have no effect.
Thanks :user:`bgermann` for the suggestion. See :issue:`353`.

* Simplify documentation merging ``Extension Build System`` section with the ``Advanced Usage`` section.
Thanks :user:`thewtex` for the suggestion.

Tests
-----

* Add ``check_wheel_content`` utility function.

* Skip ``test_setup_requires_keyword_include_cmake`` if running in conda test environment or
if https://pypi.org is not reachable. Suggested by :user:`Luthaf`.

* Continuous Integration

* TravisCI:

* Remove testing of linux now covered by CircleCI, add testing for Python 3.5, 3.6 and 3.7 on macOS.
* Ensure system python uses latest version of pip

* AppVeyor, CircleCI: Add testing for Python 3.7

* Remove uses of unneeded ``$<RUN_ENV>`` command wrapper. scikit-build should already take care of
setting up the expected environment.

* Always install up-to-date `scikit-ci`_ and `scikit-ci-addons`_.

* Simplify release process managing ``versioning`` with `python-versioneer <https://github.com/warner/python-versioneer/>`_
and update :ref:`making_a_release` documentation.

0.7.1

==================

Documentation
-------------

* Fix description and classifier list in setup.py.
* Fix link in README.

0.7.0

==================

New Features
------------

* Faster incremental build by re-configuring the project only if needed. This was achieved by (1) adding support
to retrieve the environment mapping associated with the generator set in the ``CMakeCache.txt`` file, (2) introducing
a :func:`CMake spec file <skbuild.constants.CMAKE_SPEC_FILE()>` storing the CMake version as well as the
the CMake arguments and (3) re-configuring only if either the generator or the CMake specs change.
Thanks :user:`xoviat` for the contribution. See :issue:`301`.

* CMake modules:

* CMake module :doc:`/cmake-modules/PythonExtensions`: Set symbol visibility to export only the module init function.
This applies to GNU and MSVC compilers. Thanks :user:`xoviat`. See :issue:`299`.

* Add CMake module :doc:`/cmake-modules/F2PY` useful to find the ``f2py`` executable for building Python
extensions with Fortran. Thanks to :user:`xoviat` for moving forward with the integration. Concept for the
module comes from the work of :user:`scopatz` done in `PyNE <https://github.com/pyne/pyne>`_ project.
See :issue:`273`.

* Update CMake module :doc:`/cmake-modules/NumPy` setting variables ``NumPy_CONV_TEMPLATE_EXECUTABLE``
and ``NumPy_FROM_TEMPLATE_EXECUTABLE``. Thanks :user:`xoviat` for the contribution. See :issue:`278`.

* Setup keywords:

* Add support for :ref:`cmake_languages <usage-cmake_languages>` setup keyword.

* Add support for ``include_package_data`` and ``exclude_package_data`` setup keywords as well as parsing of
``MANIFEST.in``. See :issue:`315`. Thanks :user:`reiver-dev` for reporting the issue.

* Add support for ``cmake_minimum_required_version`` setup keyword. See :issue:`312`.
Suggested by :user:`henryiii`.

* Install cmake if found in ``setup_requires`` list. See :issue:`313`. Suggested by :user:`henryiii`.

* Add support for ``--cmake-executable`` scikit-build command line option. Thanks :user:`henryborchers` for the suggestion.
See :issue:`317`.

* Use ``_skbuild/platform-X.Y`` instead of ``_skbuild`` to build package. This allows to have a different build
directory for each python version. Thanks :user:`isuruf` for the suggestion and :user:`xoviat` for contributing
the feature. See :issue:`283`.

* Run cmake and ``develop`` command when command ``test`` is executed.


Bug fixes
---------

* Fix support of ``--hide-listing`` when building wheel.

* CMake module :doc:`/cmake-modules/Cython`: Fix escaping of spaces associated with ``CYTHON_FLAGS`` when
provided as command line arguments to the cython executable through CMake cache entries. See :issue:`265`
fixed by :user:`neok-m4700`.

* Ensure package data files specified in the ``setup()`` function using ``package_data`` keyword are packaged
and installed.

* Support specifying a default directory for all packages not already associated with one using syntax like
``package_dir={'':'src'}`` in ``setup.py``. Thanks :user:`benjaminjack` for reporting the issue.
See :issue:`274`.

* Improve ``--skip-cmake`` command line option support so that it can re-generate a source distribution or a python
wheel without having to run cmake executable to re-configure and build. Thanks to :user:`jonwoodring` for reporting
the issue on the `mailing list <https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!topic/scikit-build/-ManO0dhIV4>`_.

* Set ``skbuild <version>`` as wheel generator.
See `PEP-0427 <https://www.python.org/dev/peps/pep-0427/#file-contents>`_ and :issue:`191`.

* Ensure ``MANIFEST.in`` is considered when generating source distribution. Thanks :user:`seanlis` for reporting
the problem and providing an initial patch, and thanks :user:`henryiii` for implementing the corresponding test.
See :issue:`260`.

* Support generation of source distribution for git repository having submodules. This works only for version
of git >= 2.11 supporting the ``--recurse-submodules`` option with ``ls-files`` command.

Internal API
------------

* Add :meth:`skbuild.cmaker.get_cmake_version`.

Python Support
--------------

* Tests using Python 3.3.x were removed and support for this version of python is not guaranteed anymore. Support was
removed following the deprecation warnings reported by version 0.31.0 of wheel package, these were causing the tests
``test_source_distribution`` and ``test_wheel`` to fail.

Tests
-----

* Speedup execution of tests that do not require any CMake language enabled. This is achieved by (1) introducing the
test project ``hello-no-language``, (2) updating test utility functions ``execute_setup_py`` and ``project_setup_py_test``
to accept the optional parameter ``disable_languages_test`` allowing to skip unneeded compiler detection in test project
used to verify that the selected CMake generator works as expected, and (3) updating relevant tests to use the new test
project and parameters.

Overall testing time on all continuous integration services was reduced:

* AppVeyor:

* from **~16 to ~7** minutes for 64 and 32-bit Python 2.7 tests done using Visual Studio Express 2008
* from more than **2 hours to ~50 minutes** for 64 and 32-bit Python 3.5 tests done using Visual Studio 2015. Improvement specific
to Python 3.x were obtained by caching the results of slow calls to ``distutils.msvc9compiler.query_vcvarsall`` (for Python 3.3 and 3.4) and
``distutils._msvccompiler._get_vc_env`` (for Python 3.5 and above).
These functions were called multiple times to create the list of :class:`skbuild.platform_specifics.windows.CMakeVisualStudioCommandLineGenerator`
used in :class:`skbuild.platform_specifics.windows.WindowsPlatform`.


* CircleCI: from **~7 to ~5** minutes.

* TravisCI: from **~21 to ~10** minutes.

* Update maximum line length specified in flake8 settings from 80 to 120 characters.

* Add ``prepend_sys_path`` utility function.

* Ensure that the project directory is prepended to ``sys.path`` when executing test building sample project
with the help of ``execute_setup_py`` function.

* Add codecov config file for better defaults and prevent associated Pull Request checks from reporting failure
when coverage only slightly changes.

Documentation
-------------

* Improve internal API documentation:

* :mod:`skbuild.platform_specifics.windows`
* :mod:`skbuild.command`
* :mod:`skbuild.command.generate_source_manifest`
* :mod:`skbuild.utils`

* Split usage documentation into a ``Basic Usage`` and ``Advanced Usage`` sections.

Cleanups
--------

* Fix miscellaneous pylint warnings.

0.6.1

==================

Bug fixes
---------

* Ensure CMake arguments passed to scikit-build and starting with ``-DCMAKE_*``
are passed to the test project allowing to determine which generator to use.
For example, this ensures that arguments like ``-DCMAKE_MAKE_PROGRAM:FILEPATH=/path/to/program``
are passed. See :issue:`256`.

Documentation
-------------

* Update :doc:`/make_a_release` section including instructions to update ``README.rst``
with up-to-date pypi download statistics based on Google big table.

Page 5 of 10

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.