``0.10.0`` ========== |pypi| |docs| Python Changes -------------- Breaking Changes ~~~~~~~~~~~~~~~~ - Support for Python 2.7 has been dropped. With the impending `EOL`_ of Python 2.7 on January 1, 2020 many of the ``bezier`` dependencies such as ``numpy``, ``scipy`` and ``pytest`` have dropped support for Python 2.7 in their latest releases. Some changes related to this include: - Removing support for Python 2.7 (`3eaa5aa `__). - Updating all PyPy usage to be Python 3 only (`1e3037f `__). - Removing ``_bool_patch.h`` (`4ccc559 `__). .. _EOL: https://pythonclock.org/ Build ~~~~~ - Integrating ``black`` `code formatter`_ into the ``nox -s lint`` session to ensure consistent formatting (`e659532 `__). - Fully automating the building of wheels in the ``bezier-wheels`` `project`_ (`recent commits`_). Built wheels are uploaded to a Google Cloud Storage bucket. - Using the same set of optimal flags for Fortran 77 code (i.e. ``.f`` files) that are used for Fortran 90 code (i.e. ``.f90`` files) (`e7eb56e `__). - Unify ``requirements.txt`` files and add notes about why each dependency is required (`230814d `__, `1ae147f `__, `e710ee6 `__). - Changing ``imp`` usage to ``importlib`` due to deprecation of the former (`9231d92 `__). Fixed `#137 `__. - Ditching the ``--check-archs`` flag in the macOS script for building wheels since we can no longer support 32-bit on macOS due to NumPy (`37be384 `__). - Improved dev experience with Docker image used on CircleCI by adding a ``.dockerignore`` file for faster builds, suggesting ``--workdir`` and flag during local dev, setting ``WHEELHOUSE`` environment variable directly in the container (rather than in the CircleCI settings) and allowing "default" locations for pre-built wheels at ``/wheelhouse`` and ``${HOME}/wheelhouse`` (`08be336 `__, `26acc38 `__, `7634779 `__, `f9a8fcf `__). .. _recent commits: https://github.com/dhermes/bezier-wheels/compare/ee008511d5ff2736dfb44f770552e7553b00e8f0...424453f50fbb8f240ca60280b637a278f6e9ad4a .. _code formatter: https://black.readthedocs.io Miscellany ~~~~~~~~~~ - Make some functional test cases more lenient so that they pass on 32-bit CentOS 5, which is used for ``manylinux`` (`e7eb56e `__). This was part of a large effort to fully automate the building of wheels in the ``bezier-wheels`` `project`_. - Replacing ``pypy`` with ``pypy3`` in testing as the only non-CPython "unofficially supported" runtime. (This is part of the drop in support for Python 2.7.) Unfortunately the currently (as of August 2019) released versions of ``pypy3`` are not currently working with ``numpy >= 1.16`` (see `numpy/numpy#12740 `__) so the ``numpy == 1.15.4`` version is a pinned dependency. - Specifying the NumPy version in ``setup.py`` based on ``implementation_name`` (`7e9046d `__). - Add ``_pypy_speedup.c`` built with Cython 0.29.11 because the latest Cython (0.29.13 as of August 2019) corresponds to the versions of NumPy that are incompatible with PyPy (`7813e41 `__). - Pinning to ``numpy==1.15.4`` and ``scipy==1.2.0`` in wheelhouse for pre-built Docker container (`7634779 `__). - Added ``nox -s validate_functional_test_cases`` session to ensure that functional test cases always adhere to the JSON schema. - Added ``nox`` session and fixed some schema file bugs (`618653a `__). - Fixed curve intersections that did not adhere to schema (`35b158a `__). - Transposed ``nodes`` schema for curved polygon (`8c3ca89 `__). - Enable the ``nox`` session to run in CircleCI (`5a0a343 `__). - Updated ``@slow`` marker for ``pytest`` because it used a deprecated API (`46f8b57 `__). .. _project: https://github.com/dhermes/bezier-wheels Documentation ------------- - Changing all references to Mac OS X to macOS (`b10c2fc `__, `c1c2c6b `__, `131d17b `__). As of 10.12, the operating system has changed its name. - Splitting up ``algorithms/helpers``. The pre-amble has been moved into the ``algorithms`` landing page and the geometric and algebraic helpers have been moved into separate docs. (`889c913 `__). .. |pypi| image:: https://img.shields.io/pypi/v/bezier/0.10.0.svg :target: https://pypi.org/project/bezier/0.10.0/ :alt: PyPI link to release 0.10.0 .. |docs| image:: https://readthedocs.org/projects/bezier/badge/?version=0.10.0 :target: https://bezier.readthedocs.io/en/0.10.0/ :alt: Documentation for release 0.10.0