|
1 | 1 | Traits CHANGELOG |
2 | 2 | ================ |
3 | 3 |
|
4 | | -Release 7.0.0 |
| 4 | +Release 6.4.0 |
5 | 5 | ------------- |
6 | 6 |
|
7 | | -TBD Release summary |
| 7 | +Released: 2022-08-12 |
8 | 8 |
|
9 | | -Released: XXXX-XX-XX |
| 9 | +Traits 6.4 is a minor feature release of Traits, which focuses mainly on typing |
| 10 | +stub and documentation updates. |
10 | 11 |
|
11 | | -Migrating from earlier versions of Traits |
12 | | -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 12 | +Migrating from Traits 6.3 |
| 13 | +~~~~~~~~~~~~~~~~~~~~~~~~~ |
13 | 14 |
|
14 | | -Traits 7.0 should be largely backwards compatible with earlier versions |
15 | | -of Traits, but there are some things to watch out for. |
| 15 | +Traits 6.4 should be largely backwards compatible with Traits 6.3, but there |
| 16 | +are a couple of things to watch out for. |
16 | 17 |
|
| 18 | +* Reminder: while the ``Either`` and ``Trait`` trait types are not yet formally |
| 19 | + deprecated, the intention is to eventually deprecate and remove them. |
| 20 | + Projects are encouraged to update their code to use ``Union`` instead. |
| 21 | +* Similarly, any uses of the ``Unicode`` trait type in your project should |
| 22 | + be replaced with ``Str``. |
17 | 23 | * Validation of items within a container (e.g., ``foos = List(MyTraitType)``) |
18 | 24 | now always matches the validation used for the item trait at top level (e.g., |
19 | 25 | ``foo = MyTraitType``). Previously, the validation methods used could differ, |
20 | 26 | thanks to a bug in the container implementations. For most trait types this |
21 | 27 | will make no difference, but for the ``Tuple`` trait type this change has the |
22 | 28 | consequence that lists will no longer be accepted as valid for ``Tuple`` |
23 | 29 | traits inside list items. See issue #1619 and PR #1625 for more information. |
| 30 | +* Related to the above: a top-level ``Tuple()`` trait declaration currently |
| 31 | + accepts Python ``list`` objects, while a ``Tuple`` declaration with explicit |
| 32 | + item types (for example ``Tuple(Int(), Int())``) does not. The support for |
| 33 | + ``list`` objects in plain ``Tuple()`` is deprecated, and will be removed in a |
| 34 | + future version of Traits. See PR #1627 for more information. |
| 35 | + |
| 36 | +Detailed PR-by-PR changes |
| 37 | +~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 38 | + |
| 39 | +The following people contributed code changes for this release: |
| 40 | + |
| 41 | +* Caio Agiani |
| 42 | +* Steve Allen |
| 43 | +* Mark Dickinson |
| 44 | +* Sai Rahul Poruri |
| 45 | +* Corran Webster |
| 46 | + |
| 47 | +Features |
| 48 | +~~~~~~~~ |
| 49 | +* ``ETSConfig`` attributes now support deletion. This makes it easier to make |
| 50 | + temporary changes to ``ETSConfig`` attributes during unit testing. (#1670, |
| 51 | + #1686) |
| 52 | +* ``Complex`` trait type validation is now more lenient: any type that |
| 53 | + implements ``__complex__`` will be accepted. (#1594) |
| 54 | +* ``BaseFloat`` validation is now more lenient, and matches ``Float`` |
| 55 | + validation: ``BaseFloat`` now also accepts objects whose type has an |
| 56 | + ``__index__`` method. (#1595) |
| 57 | + |
| 58 | +Changes |
| 59 | +~~~~~~~ |
| 60 | +* An ``enumerate`` alias has been removed from ``traits.trait_base``. In the |
| 61 | + unlikely event of code that imports ``enumerate`` from ``traits.trait_base``, |
| 62 | + use the built-in ``enumerate`` instead. (#1681) |
| 63 | +* Fast validation tuples ``int_fast_validate``, ``float_fast_validate`` and |
| 64 | + ``complex_fast_validate`` have been removed from the ``traits.trait_types`` |
| 65 | + module. (#1601) |
24 | 66 |
|
25 | | -TBD Release details |
| 67 | +Fixes |
| 68 | +~~~~~ |
| 69 | +* ``TraitListObject``, ``TraitDict`` object and ``TraitSetObject`` now use the |
| 70 | + ``validate`` method of the appropriate ``CTrait`` instances to validate |
| 71 | + items, keys and values. Previously the handler's ``validate`` method was |
| 72 | + used; this gave buggy behaviour in cases where the handler's ``validate`` |
| 73 | + method differed from the actual validation in use. (#1625) |
| 74 | +* Fix specification of ``default_value`` that incorrectly disregarded |
| 75 | + ``default_value_type``. (#1631) |
| 76 | +* Fix incorrect results from ``clone_traits`` applied to ``List``, ``Dict`` |
| 77 | + and ``Set`` traits. (#1624) |
| 78 | +* The ``find_resource`` and ``store_resource`` tests are now skipped |
| 79 | + if the ``pkg_resources`` module is not present in the environment. (#1679) |
| 80 | +* An ``ETSConfig`` test has been renamed so that it's properly picked up |
| 81 | + by the test runner. (#1671) |
| 82 | +* Fix some ``ETSConfig`` tests that assume unittest as the test runner. (#1683) |
| 83 | +* Rename various test-related classes to avoid pytest trying to harvest test |
| 84 | + methods from them. (#1684) |
| 85 | +* Overriding a default for a ``List`` or other collection trait in a subclass |
| 86 | + now works as expected. Previously, the behaviour was unusably buggy. (#1645) |
| 87 | + |
| 88 | +Deprecations |
| 89 | +~~~~~~~~~~~~ |
| 90 | +* ``Tuple`` traits currently accept Python ``list`` objects in some (but |
| 91 | + not all) circumstances. That feature is deprecated, and will be removed |
| 92 | + in a future version of Traits. (#1627) |
| 93 | + |
| 94 | +Type stubs |
| 95 | +~~~~~~~~~~ |
| 96 | +* Add stubs for ``Array``, ``ArrayOrNone``, and ``CArray``. (#1682) |
| 97 | +* Fix various stubs for ``traits.trait_types``; add stubs for |
| 98 | + ``traits.ctraits``. (#1661) |
| 99 | +* Fix that ``TraitError`` stubs weren't exposed at ``traits.api`` level. |
| 100 | + (#1658) |
| 101 | +* Make ``Int`` and ``Float`` type stubs more accurate. (#1656) |
| 102 | +* Fix incorrect type stubs for the ``Dict`` trait type. (#1655) |
| 103 | + |
| 104 | +Documentation |
| 105 | +~~~~~~~~~~~~~ |
| 106 | +* Make ``ETSConfig`` class documentation visible in the API docs. (#1688) |
| 107 | +* Add copy buttons to code samples in documentation. (#1651, #1653) |
| 108 | +* Document ``Date``, ``Datetime`` and ``Time`` trait types. (#1641) |
| 109 | +* Fix some missing mentions of ``Set`` in notification docs. (#1618) |
| 110 | +* Document the ``'some_trait.-'`` pattern for ``on_trait_change``. (#1592) |
| 111 | +* Document that ``Either`` should not be used in new code. (#1699) |
| 112 | +* Document that ``TraitPrefixMap`` and ``TraitPrefixList`` are deprecated. |
| 113 | + (#1702) |
| 114 | +* Document that the Trait factory function should not be used in new code. |
| 115 | + (#1700) |
| 116 | +* Miscellaneous minor fixes. (#1583, #1611, #1652, #1680) |
| 117 | + |
| 118 | +Build and continuous integration |
| 119 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 120 | +* Don't collect traits-stubs tests under pytest. As a result of this |
| 121 | + and other fixes, the test suite now passes under pytest. (#1690) |
| 122 | +* Update ``etstool.py`` for Python 3.8 support. Python 3.8 is now the |
| 123 | + default Python version for builds. (#1694) |
| 124 | +* Use PySide6 for Python >= 3.8 instead of PySide2 in CI testing. (#1685) |
| 125 | +* Add ``pyproject.toml`` files for both Traits and traits-stubs. (#1689, #1676) |
| 126 | +* Add Python 3.11 to some workflow runs. (#1600, #1660, #1674) |
| 127 | +* Add Python 3.10 to install-from-PyPI workflow. (#1576) |
| 128 | +* Allow running the main test workflow manually. (#1607) |
| 129 | +* Switch Slack channel used to report GitHub Actions failures. (#1650) |
| 130 | +* Exclude ``build`` directory in flake8 configuration. (#1635) |
| 131 | +* Re-include NumPy as a test dependency on Python 3.10. (#1593) |
| 132 | + |
| 133 | +Maintenance and refactoring |
| 134 | +~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 135 | +* ``.gitignore`` cleanup and updates. (#1678, #1687) |
| 136 | +* Return ``PyErr_Format`` calls in ``traits/ctraits.c``. (#1640) |
| 137 | +* Update copyright header end year to 2022. (#1612) |
| 138 | +* The ``ci-src-requirements.txt`` file isn't used; remove it. (#1602) |
26 | 139 |
|
27 | 140 |
|
28 | 141 | Release 6.3.2 |
|
0 commit comments