2020.2.3
ABI Changes
Packaging
-
Introduced first-class build and install support for
libbezier
via CMake. Achieved with the following PRs- Added
CMakeLists.txt
files to enable buildinglibbezier
with CMake (#175). - Added
-DTARGET_NATIVE_ARCH:BOOL=OFF
flag to enable portable release builds (#182).
and closed the following issues
- Use a shared library (rather than a static library) for
libbezier
(#54). - Enable Python installs to be "hybrid-editable" (#56). (This means that the Python files reference the source tree but the built components, i.e.
libbezier
and_speedup.so
, are already built and utilize caching of CMake.) - Use build system other than Python /
distutils
/setuptools
(#62). - Add ability to disable
-march=native
flag to make release builds portable across compatible operating systems (#181).
- Added
Python Changes
Additive Changes
Packaging
- Removed build dependency on
gfortran
and other heavyweight tools (and hacks) such asnumpy.distutils
. Now,libbezier
must be built before the Python package can be installed and the install location must be provided via theBEZIER_INSTALL_PREFIX
environment variable. Achieved with the following PRs - Switch from
manylinux1
tomanylinux2010
for built wheels (#178). - Delaying imports of
pkg_resources
,scipy
andsympy
until actually needed (if ever) (#194, #195, 38602d8). - Adding
matplotlib
topip install bezier[full]
(8beb036). - Avoiding
bezier.dll
name collision on Windows in wheels distributed on PyPI (#190). Fixed #189.
Breaking Changes
- Removed
bezier.get_dll()
helper (#184).
Documentation
- Changed "Read the Docs" landing page to point to
.../stable/
documentation (i.e. the last published release) instead of.../latest
documentation (i.e. the last merged commit). - Making sure CMake installed trees (on Linux, macOS and Windows) are verified in
doctest
as part of CI (48e4166). - Making sure
example_*.c
ABI examples are compiled and run (on Linux and macOS) indoctest
as part of CI (ffdcdf7, 9551495, 0766649). - Converting (untested, potentially stale) console codeblocks to
doctest
(that get run in CI) for Linux sections of binary extension documentation (#188). Fixed #74.