Skip to content

@jcfr jcfr released this May 23, 2019 · 16 commits to master since this release

Assets 2

@jcfr jcfr released this Mar 5, 2019 · 77 commits to master since this release

Assets 2

@jcfr jcfr released this Oct 3, 2018 · 101 commits to master since this release

Assets 2

@jcfr jcfr released this Oct 3, 2018 · 108 commits to master since this release

Assets 2

@jcfr jcfr released this Oct 3, 2018 · 175 commits to master since this release

Assets 2

@jcfr jcfr released this Oct 3, 2018 · 177 commits to master since this release

Scikit-build 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 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 @xoviat for the contribution. See #301.

  • CMake modules:

    • CMake module PythonExtensions: Set symbol visibility to export only the module init function.
      This applies to GNU and MSVC compilers. Thanks @xoviat. See #299.

    • Add CMake module F2PY useful to find the f2py executable for building Python
      extensions with Fortran. Thanks to @xoviat for moving forward with the integration. Concept for the
      module comes from the work of @scopatz done in PyNE project.
      See #273.

    • Update CMake module NumPy setting variables NumPy_CONV_TEMPLATE_EXECUTABLE
      and NumPy_FROM_TEMPLATE_EXECUTABLE. Thanks @xoviat for the contribution. See #278.

  • Setup keywords:

    • Add support for cmake_languages setup keyword.

    • Add support for include_package_data and exclude_package_data setup keywords as well as parsing of See #315. Thanks @reiver-dev for reporting the issue.

    • Add support for cmake_minimum_required_version setup keyword. See #312.
      Suggested by @henryiii.

    • Install cmake if found in setup_requires list. See #313. Suggested by @henryiii.

  • Add support for --cmake-executable scikit-build command line option. Thanks @henryborchers for the suggestion.
    See #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 @isuruf for the suggestion and @xoviat for contributing
    the feature. See #283.

  • Run cmake and develop command when command test is executed.

Bug fixes

  • Fix support of --hide-listing when building wheel.

  • CMake module Cython: Fix escaping of spaces associated with CYTHON_FLAGS when
    provided as command line arguments to the cython executable through CMake cache entries. See #265
    fixed by @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 Thanks @benjaminjack for reporting the issue.
    See #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 @jonwoodring for reporting
    the issue on the mailing list.

  • Set skbuild <version> as wheel generator.
    See PEP-0427 and #191.

  • Ensure is considered when generating source distribution. Thanks @seanlis for reporting
    the problem and providing an initial patch, and thanks @henryiii for implementing the corresponding test.
    See #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

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.


  • 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
        used in
    • 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.



  • Fix miscellaneous pylint warnings.
Assets 2

@jcfr jcfr released this Jun 8, 2017 · 289 commits to master since this release

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 #256.


  • Update make_a_release section including instructions to update README.rst
    with up-to-date pypi download statistics based on Google big table.
Assets 6

@jcfr jcfr released this Feb 16, 2017 · 293 commits to master since this release

Scikit-build 0.6.0

New features

  • Improve py_modules support: Python modules generated by CMake are now
    properly included in binary distribution.
  • Improve developer mode support for py_modules generated by CMake.

Bug fixes

  • Do not implicitly install python modules when the beginning of their name
    match a package explicitly listed. For example, if a project has a package
    foo/ and a module, and only package foo
    was listed in, is not installed anymore.
  • CMake module cmake-modules/targetLinkLibrariesWithDynamicLookup: Fix the
    caching of dynamic lookup variables. See #240 fixed by blowekamp.


  • wheel: As suggested by thewtex, unpinning version of the package
    by requiring >=0.29.0 instead of ==0.29.0 will avoid uninstalling a newer
    version of wheel package on up-to-date system.



  • Extend test_hello, test_setup, and test_sdist_hide_listing to
    (1) check if python modules are packaged into source and wheel distributions
    and (2) check if python modules are copied into the source tree when developer
    mode is enabled.

Internal API

  • Fix skbuild.setuptools_wrap.strip_package to handle empty package.
  • Teach skbuild.command.build_py.build_py.find_modules function to look
    for py_module file in CMAKE_INSTALL_DIR.
  • Teach skbuild.utils.PythonModuleFinder]( to search forpython module`
    in the CMake install tree.
  • Update skbuild.setuptools_wrap._consolidate to copy file into the CMake
    tree only if it exists.
  • Update skbuild.setuptools_wrap._copy_file to create directory only if
    there is one associated with the destination file.
Assets 6

@jcfr jcfr released this Dec 23, 2016 · 311 commits to master since this release

Scikit-build 0.5.1

Bug fixes

  • Ensure file copied in “develop” mode have “mode bits” maintained.
Assets 4

@jcfr jcfr released this Dec 22, 2016 · 314 commits to master since this release

Scikit-build 0.5.0

New features

Bug fixes

  • Fix scikit-build source distribution and add test. See #214 Thanks @isuruf for reporting the issue.
  • Support building extension within a virtualenv on windows. See #119.



  • setuptools: As suggested by @mivade in #212, remove the hard requirement for ==28.8.0 and require version >= 28.0.0. This allows to “play” nicely with conda where it is problematic to update the version of setuptools. See pypa/pip#2751 and ContinuumIO/anaconda-issues#542.


  • Improve “push_dir” tests to not rely on build directory name. Thanks @isuruf for reporting the issue.
  • travis/install_pyenv: Improve MacOSX build time updating scikit-ci-addons
  • Add get_cmakecache_variables utility function.

Internal API


  • appveyor.yml:
  • Remove unused “on_failure: event logging” and “notifications: GitHubPullRequest”
  • Remove unused SKIP env variable
Assets 4
You can’t perform that action at this time.