``0.9.0`` ========= |pypi| |docs| 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 ~~~~~~~~~~~~ - Added implementation for ``Surface.area`` `property `__ and ``CurvedPolygon.area`` `property `__ (`eb6077e `__). 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 `__). .. |pypi| image:: https://img.shields.io/pypi/v/bezier/0.9.0.svg :target: https://pypi.org/project/bezier/0.9.0/ :alt: PyPI link to release 0.9.0 .. |docs| image:: https://readthedocs.org/projects/bezier/badge/?version=0.9.0 :target: https://bezier.readthedocs.io/en/0.9.0/ :alt: Documentation for release 0.9.0