Release Notes

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

Next Release

Cleanups

  • Fix miscellaneous pylint warnings.

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

Documentation

  • Update How to Make a Release section including instructions to update README.rst with up-to-date pypi download statistics based on Google big table.

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/__init__.py and a module fooConfig.py, and only package foo was listed in setup.py, fooConfig.py is not installed anymore.
  • CMake module targetLinkLibrariesWithDynamicLookup: Fix the caching of dynamic lookup variables. See #240 fixed by @blowekamp.

Requirements

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

Documentation

Tests

  • 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

Scikit-build 0.5.1

Bug fixes

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

Scikit-build 0.5.0

New features

  • If available, uses Ninja build system generator on all platforms. An advantages is that ninja automatically parallelizes the build based on the number of CPUs.
  • Automatically set the expected Visual Studio environment when Ninja or NMake Makefiles generators are used.
  • Support Microsoft Visual C++ Compiler for Python 2.7. See #216.
  • Update long signature: <LinkFlagsVar> is now optional
  • Add support for short signature: check_dynamic_lookup(<ResultVar>). See SimpleITK/SimpleITK#80.

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.

Documentation

  • hacking:

Requirements

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

Tests

  • 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

Cleanups

  • appveyor.yml:
  • Remove unused “on_failure: event logging” and “notifications: GitHubPullRequest”
  • Remove unused SKIP env variable

Scikit-build 0.4.0

New features

  • Add support for --hide-listing option
  • allow to build distributions without displaying files being included
  • useful when building large project on Continuous Integration service limiting the amount of log produced by the build
  • CMake module: skbuild/resources/cmake/FindPythonExtensions.cmake
  • Function python_extension_module: add support for module suffix

Bug fixes

  • Do not package python modules under “purelib” dir in non-pure wheel
  • CMake module: skbuild/resources/cmake/targetLinkLibrariesWithDynamicLookup.cmake:
  • Fix the logic checking for cross-compilation (the regression was introduced by #51 and #47
  • It configure the text project setting CMAKE_ENABLE_EXPORTS to ON. Doing so ensure the executable compiled in the test exports symbols (if supported by the underlying platform)

Docs

Tests

  • tests/samples: Simplify project removing unneeded install rules and file copy
  • Simplify continuous integration
  • Makefile:
  • Fix coverage target
  • Add docs-only target allowing to regenerate the Sphinx documentation without opening a new page in the browser.

Scikit-build 0.3.0

New features

  • Improve support for “pure”, “CMake” and “hybrid” python package
  • a “pure” package is a python package that have all files living in the project source tree
  • an “hybrid” package is a python package that have some files living in the project source tree and some files installed by CMake
  • a “CMake” package is a python package that is fully generated and installed by CMake without any of his files existing in the source tree
  • Add support for source distribution. See #84
  • Add support for setup arguments specific to scikit-build:
  • cmake_args: additional option passed to CMake
  • cmake_install_dir: relative directory where the CMake project being built should be installed
  • cmake_source_dir: location of the CMake project
  • Add CMake module FindNumPy.cmake
  • Automatically set package_dir to reasonable defaults
  • Support building project without CMakeLists.txt

Bug fixes

  • Fix dispatch of arguments to setuptools, CMake and build tool. See #118
  • Force binary wheel generation. See #106
  • Fix support for py_modules (6716723)
  • Do not raise error if calling “clean” command twice

Documentation

Tests

  • Ensure each test run in a dedicated temporary directory
  • Add tests to raise coverage from 70% to 91%
  • Refactor CI testing infrastructure introducing CI drivers written in python for AppVeyor, CircleCI and TravisCI
  • Switch from nose to py.test
  • Relocate sample projects into a dedicated home: https://github.com/scikit-build/scikit-build-sample-projects

Cleanups

  • Refactor commands introducing set_build_base_mixin and new_style
  • Remove unused code