0.9.0

PyPI link to release 0.9.0 Documentation for release 0.9.0

Documentation

  • Documenting the C ABI libbezier (4608364). Fixed #63. This documentation contains a page for each “module” which corresponds to the underlying Fortran module. Each module documents the routines in the corresponding header file, e.g. the surface document corresponds to the bezier/surface.h header. Fully working C examples have been added for each routine in bezier/curve.h and for the enum in bezier/status.h.
  • Adding section about environment variables to development document (5186e24). Fixed #78.
  • Remove dependency on rawgit.com (04d0f8d). The website is being turned down. Fixed #130.
  • Renaming the “Native Libraries” document as “Binary Extension” (f99db20). In the process, changed most references to the “native” Python extension to instead call it a “binary” extension.
  • Added a “Cython .pxd Declarations” document (f99db20). Fixed #122.
  • Moving all Python specific documentation under a specific URL path (3db483b). In particular, moving
    • /reference/... to /python/reference/...
    • /python-binary-extension.html to /python/binary-extension.html
    • /pxd/... to /python/pxd/....
  • Moving all algorithm specific documentation under a specific URL path (6e9c825). In particular, moving
    • /algorithm-helpers.html to /algorithms/helpers.html
    • /curve-curve-intersection.html to /algorithms/curve-curve-intersection.html

ABI Changes

New Features

  • Added surface.h::compute_area helper that can be used to compute the area of both a surface and a curved polygon (d4d7249).

Breaking Changes

  • Removing getters and setters for parameters used during curve-curve intersection (2fda3ae):
    • curve_intersection.h::set_max_candidates
    • curve_intersection.h::get_max_candidates
  • Removing dimension from curve.h::get_curvature (1e39c0c).

Python Changes

New Features

Non-Public API

  • Removing getters and setters for parameters used during curve-curve intersection (2fda3ae):
    • bezier._geometric_intersection.set_max_candidates()
    • bezier._geometric_intersection.get_max_candidates()
  • Removing cached values for Curve.length property, Surface.area property and Surface.is_valid property (34d48d6).

Build

  • Renaming libbezier.dll shared library to bezier.dll on Windows (d17a9bc). This follows the correct convention on Windows.
  • Adding Python 3.7 support and making it the default version used for testing (e368e9f).
  • Dropping support for Python 3.5 (f99db20).
  • Adding back -march=native for non-wheel builds (1566019). This way, when installing from source (either via a local checkout or from the source distribution on PyPI) the most optimal machine instructions will be produced. Fixed #99.
  • Removing all traces of 32-bit support for macOS (d7620ad). This was driven by a decision from the NumPy maintainers.

Miscellany

  • Adopted black code formatter (f21b52d).
  • Adding project URLs and keywords for PyPI (cfb070d).
  • Added 20 new surface-surface functional tests (9fd9c1e). See #121 for more information.
  • Removed time and memory benchmarks due to flakiness and lack of an environment that could be used for benchmarking (6a30dc2). See #125 to follow discussion on re-enabling such benchmarks.
  • Using DEBUG=True environment variable when running unit tests and other related tests (d84dffb).