@@ -4,40 +4,153 @@ Traits CHANGELOG
44Release 7.0.0
55-------------
66
7- Released: XXXX-XX-XX
7+ Released: 2025-01-24
88
9- TBD Release summary
9+ This is a major release of the Traits package. Some highlights:
10+
11+ * Python versions through Python 3.13 are now supported.
12+ * The Traits package now includes (partial) type hints. (Type hints
13+ were previously distributed in a separate ``traits-stubs `` package.)
14+ * There is some experimental and provisional support for async
15+ observer dispatch.
16+ * Many long-deprecated pieces of functionality have finally been removed
17+ from the codebase.
1018
1119Detailed changes
1220~~~~~~~~~~~~~~~~
1321
22+ The following people contributed code changes and reviews for this release:
23+
24+ * Mark Dickinson
25+ * Robert Haschke
26+ * Chengyu Liu
27+ * Frank Longford
28+ * Sai Rahul Poruri
29+ * Matt Smarte
30+ * Corran Webster
31+
1432Features
1533~~~~~~~~
1634* The traits package now ships with stub files directly, instead of requiring
1735 those files to be installed via the separate ``traits-stubs `` package.
1836 (#1714)
37+ * Experimental support for async dispatch has been added. This API should
38+ be considered provisional, and may change in the future. (#1771)
39+ * Python versions through 3.13 are now supported. (#1773)
40+ * Event types ``TraitChangeEvent ``, ``ListChangeEvent ``, ``DictChangeEvent ``
41+ and ``SetChangeEvent `` for the ``event `` received by observers are now
42+ available in ``traits.observation.api ``. This is useful for those wanting to
43+ use the types in type annotations. (#1805)
44+
45+ Changes
46+ ~~~~~~~
47+ * The behaviour of observers using ``dispatch="ui" `` when no GUI system is
48+ present (in particular, if Pyface has not performed toolkit selection)
49+ has changed. Previously, if such an observer was triggered then
50+ it would raise an exception. Now it will raise with a clear error message
51+ if triggered from a thread other than the main thread, and will execute
52+ synchronously if triggered on the main thread. (#1740)
53+ * ``AttributeError``s raised by ``some_trait_default `` methods are
54+ no longer swallowed. (#1762)
55+ * The ``Date `` trait type no longer accepts ``datetime `` instances
56+ unless ``allow_datetime=True `` is used. (#1736)
57+ * The ``Date ``, ``Time `` and ``Datetime `` trait types no longer
58+ accept a value of ``None `` unless ``allow_none=True `` is used. (#1736)
59+ * Calling an interface class no longer performs implicit adaptation.
60+ Adaptation must be performed explicitly, using the ``adapt `` function.
61+ (#1719)
1962
2063Removals
2164~~~~~~~~
22- * Remove deprecated ``rich_compare `` Trait metadata. (#1698)
23- * Remove deprecated ``find_resource `` and ``store_resource `` functions. (#1697)
24- * Remove deprecated ``TraitList ``, ``TraitDict `` and ``TraitTuple `` classes.
65+ * Python versions earlier than 3.8 are no longer supported. (#1773)
66+ * Removed deprecated ``rich_compare `` Trait metadata. (#1698)
67+ * Removed deprecated ``find_resource `` and ``store_resource `` functions. (#1697)
68+ * Removed deprecated ``TraitList ``, ``TraitDict `` and ``TraitTuple `` classes.
2569 (#1634)
26- * Remove the deprecated ability of ``cTrait.default_value `` to set the default
70+ * Removed the deprecated ability of ``cTrait.default_value `` to set the default
2771 value of a trait. It can now only be used for getting, not for setting.
2872 (#1632)
29- * Remove the deprecated ``typecode `` parameter to ``Array `` trait types.
73+ * Removed the deprecated ``typecode `` parameter to ``Array `` trait types.
3074 (#1633)
31- * Remove the deprecated ``nose_tools `` module. (#1636)
32- * Remove the deprecated ``Long ``, ``CLong ``, ``BaseLong `` and ``BaseCLong ``
75+ * Removed the deprecated ``nose_tools `` module. (#1636)
76+ * Removed the deprecated ``Long ``, ``CLong ``, ``BaseLong `` and ``BaseCLong ``
3377 trait types. Use ``Int ``, ``CInt ``, ``BaseInt `` and ``BaseCInt `` instead.
3478 (#1701)
35- * Remove the deprecated ``TraitPrefixList `` and ``TraitPrefixMap `` classes.
79+ * Removed the deprecated ``TraitPrefixList `` and ``TraitPrefixMap `` classes.
3680 Use ``PrefixList `` and ``PrefixMap `` instead. (#1703)
81+ * Removed the deprecated ``Function ``, ``Method `` and ``Symbol `` trait types.
82+ (#1819)
83+ * Removed the deprecated ``SingletonHasTraits ``, ``SingletonHasStrictTraits ``
84+ and ``SingletonHasPrivateTraits `` classes. (#1794)
85+ * Removed the deprecated ``HasTraits.get `` and ``HasTraits.set `` methods.
86+ (#1738)
87+ * Removed the deprecated ``MetaHasTraits.add_listener `` and
88+ ``MetaHasTraits.remove_listener `` methods. (#1730)
89+ * Removed the deprecated ``Color ``, ``RGBColor `` and ``Font `` traits.
90+ Code that needs these trait types should import them from TraitsUI instead.
91+ (#1737)
92+ * Removed the deprecated trait type aliases ``ListInt ``, ``ListFloat ``,
93+ ``ListStr ``, ``ListUnicode ``, ``ListComplex ``, ``ListBool ``,
94+ ``ListFunction ``, ``ListMethod ``, ``ListThis ``, ``DictStrAny ``,
95+ ``DictStrStr ``, ``DictStrInt ``, ``DictStrFloat ``, ``DictStrBool ``,
96+ ``DictStrList ``. (#1723)
97+ * Removed the deprecated ``clean_filename `` and ``clean_timestamp ``
98+ utilities. (#1820)
99+
100+ Fixes
101+ ~~~~~
102+ * Fixed build error on Python 3.13 triggered by removal of the
103+ ``PyTRASHCAN_SAFE_BEGIN `` and ``PyTRASHCAN_SAFE_END `` macros. (#1767)
104+ * Fixed warning messages from use of ``PyDict_GetItem `` in Python >= 3.13.
105+ (#1818)
106+ * Fixed a race condition in test of background thread notification. (#1798)
107+ * Fixed missing observer registration when inserting into a nested
108+ list. (#1761)
109+ * Fixed a use of the deprecated ``datetime.datetime.utcnow `` method. (#1758)
110+ * Fixed a use of a deprecated TraitsUI version check. (#1746)
111+ * Fixed various type stubs. (#1718)
112+
113+ Tests
114+ ~~~~~
115+ * Reworked ``ui_dispatch `` tests to no longer require Qt. (#1792)
116+ * Removed Cython-based tests (after fixing them). (#1793, #1759)
117+ * Fixed two tests that were triggering TraitsUI deprecation warnings. (#1790)
118+ * Remove uses of ``UITester `` from the test suite. (#1788)
119+ * Fix a fragile ``configure_traits `` test that could fail on warnings unrelated
120+ to the test goal. (#1749)
37121
38122Build and continuous integration
39123~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
40- * Include Python 3.11 in the workflow that tests wheels from PyPI. (#1715)
124+ * Added Python 3.11 to the workflow that tests wheels from PyPI. (#1715)
125+ * Added dependabot config to aid keeping GitHub Actions up to date. (#1776)
126+ * Brought various GitHub Actions up to date. (#1814, #1810, #1808,
127+ #1807, #1800, #1799, #1797, #1796, #1780, #1779, #1778, #1777)
128+ * Removed uses of the ``voxmedia `` action for Slack notification. (#1782)
129+ * Fix the set of architectures tested in the PyPI workflow. (#1795)
130+ * Removed PySide as a test dependency. (#1791)
131+ * Fixed a couple of compiler warnings related to integer conversions in the
132+ Windows build. (#1774)
133+ * Temporarily pinned the Python 3.13 version to avoid an upstream bug with
134+ Python 3.13.0a4. (#1775, #1773)
135+ * Updated workflows for Python 3.12 support. (#1757)
136+ * Updated workflows for compatibility with Ubuntu 22.04. (#1727)
137+ * Updated workflows to use Python 3.11 final. (#1725)
138+ * Moved cibuildwheel config to ``pyproject.toml ``. (#1717)
139+ * Temporarily pinned ``setuptools `` to avoid an incompatibility with EDM
140+ runtimes. (#1722)
141+ * The PyPI release workflow has been modernized. (#1716)
142+
143+
144+ Documentation
145+ ~~~~~~~~~~~~~
146+ * Clarify behaviour of observers listening to ``attr1:attr2 ``. (#1806)
147+ * Fixed Trait documenter tests for Sphinx >= 7.2. (#1755)
148+ * Fixed inconsistent spacing style in docs. (#1728)
149+
150+ Miscellaneous
151+ ~~~~~~~~~~~~~
152+ * Copyright header updates. (#1816, #1768, #1729)
153+ * The parser for the ``observe `` mini-language was regenerated. (#1743)
41154
42155
43156Release 6.4.1
0 commit comments