Releases: enthought/enable
Version 6.0.0
This is a major version update to add support for Python 3.11, PySide 6.4+, and TraitsUI 8. As part of this update, a number of backwards-incompatible changes were made. Perhaps the most significant of these was the removal of the partially implemented and buggy OpenGL Kiva backend, but it also included removing support for legacy Numeric APIs, changing modules with "qt4" in their name to use "qt" instead, some changes to make the various Kiva APIs more consistent, and some changes to the mapping of font families to bring them in line with documentation and other libraries.
Building Enable, with its complex dependencies has sometimes been challenging for users, so this release includes Github actions that use cibuildwheel
to automatically build binary wheels across a wide variety of Python versions, operating systems and architectures and upload them to PyPI. This should make pip-based installs of Enable significantly easier.
Finally, as is usual for a release, there are a number of smaller bugfixes and minor improvements, such as bringing the PyCairo and Quartz backends back into a working state.
Thanks to:
- Mark Dickinson
- Chengyu Liu
- Didrik Pinte
- Corran Webster
- John Wiggins
Enhancements
- Move
kiva.image
tokiva.oldagg
and makekiva.image
a stub (#1054) - Map
MODERN
fonts to monospace andTELETYPE
to typewriter (#977) - Normalize setting of colors across backends (#1052)
- Support for PySide 6.4+ (#1045, #1053)
- Remove support for old Numeric APIs (#1011)
- Python 3.11 support (#1042)
- Remove OpenGL backend (#1029)
- Code modernization (#933, #1015)
Fixes
- Fix
draw_path_at_points
for the Quartz Kiva backend (#1051) - Do explicit type conversions for PyQt5 on Python 3.10+ (#1041)
- Handle namespace changes for Pyface 8 and TraitsUI 8 (#1025, #1028, #1033, #1043)
- Better feedback for constraints examples if kiwisolver unavailable (#1019)
Testing and CI
Version 5.3.1
This is a bugfix release that aims to improve compatibility and completeness
of the various Kiva backends. In particular, there are improvements for font
selection and rendering, and some fixes for path and curve rendering
(particularly for arcs). There are still some discrepancies in how things are
drawn, but it is more likely that something reasonable will be produced on all
backends.
This also includes some fixes provided by Brecht Machiels to return the
wxPython backend to a working condition.
On the build and CI front, we have added SWIG to the pyproject.toml, and no
longer ship any Cython-generated C++ files. With these changes it should be
possible to pip install Enable in an environment with the appropriate C/C++
compilers.
Thanks to:
- Mark Dickinson
- Brecht Machiels
- Rahul Poruri
- Corran Webster
- John Wiggins
Fixes
- Fix the SCRIPT font family (#975)
- Improve font rendering (#973, #978, #980, #990)
- Fix curve and path rendering (#970, #987, #988)
- Correct Quartz backend string encoding (#966)
- Restore the WxPython backends to working order (#950)
Documentation
- Sphinx copy button support in documentation (#948)
Build and Continuous Integration
Version 5.3.0
This release focused on support for PySide6, modernization of Traits code, and improving font handling.
Thanks to:
- Aaron Ayres
- Mark Dickinson
- Frank Fishburn
- Rahul Poruri
- Joris Vankerschaver
- Corran Webster
- John Wiggins
Enhancements
- A new font trait, including support for Pyface Font objects, including
support for more font weights (#929) - A new cross-toolkit Font editor that uses Enable internally (#928)
- Unification of the various color traits (#917, #924)
- Support for PySide6 (#897, #900)
Fixes
- Fix incorrect fallback font path (#931)
- Ensure toolkits are initialized before they are used (#921)
- Fix incorrect trait definitions for mouse pointer traits (#911)
- Validate line dash arguments (#910)
- Fixes for font file parsing and discovery (#906, #918, #919)
- Support pyparsing >= 3 for SVG parsing (#888)
Documentation
- Improvements to Kiva documentation (#914)
Maintenance
- Modernization of trait definitions (#925)
Build and Continuous Integration
Version 5.2.1
Release 5.2.0
The enable 5.2.0 minor version release was made to accompany the chaco 5.0.0 release. It includes some removals of deprecated code, refactoring, documentation improvements and bugfixes.
Enhancements
Fixes
- Fix listeners hooked up using observe but unhooked using on_trait_change (#766)
- Handle preferred size computation when container isnt resizable (#778)
- Fix alignment trait on "HStackedContainer" (#780)
- Update custom marker as scale_ctm expects floats (#782)
Documentation
Maintenance
- Remove "use_draw_order" code path (#777)
- Add useful objects to "enable.api" (#779, #788)
- Remove Python 2 or 3 only conditionals (#785, #810)
- Remove dead code (#786)
- Remove deprecated "str_to_font" and "points_in_polygon" functions. (#787)
- Update super usage (#789, #790)
- Remove deprecated intercept_events trait on Container (#801)
- Use non deprecated font families styles etc (#806)* Replace use of deprecated GetItemPyData with its new replacement GetItemData (#807)
- Remove unused tk related drawing methods (#809)* Remove old deprecated drawing methods (#814)
- Remove AbstractWindow.bg_color trait (#816)
- Remove unused enable/trait_defs/ui/wx/enable_rgba_color_editor.py module (#817)
- Deal with getstate methods (#804, #841)
Build and Continuous Integration
Version 5.1.1
This is a bug fix release which addresses a drawing alignment issue.
Fixes
- Fix artefact in Qt caused by a wrong QRectF size. (#820)
Version 5.1.0
This is an incremental release which fixes several known bugs and improves font handling. On top of that, the documentation was substantially overhauled.
Enhancements
- Create an independent renderer for draw_marker_at_points (#724)
- Add IPython display support (#389)
- Add a way for applications to supply custom fonts (#711)
- Add Brush classes (#689)
- Add a benchmark program for comparing Kiva backends (#647, #653, #659, #661, #666, #667, #668, #671, #673, #677)
- Add a celiagg Kiva backend for Wx (#608)
Changes
- Add new on_drag_leave Enum trait to DragTool (#712)
- Refactor Font management and selection (#693, #695, #700, #701, #702, #704, #707, #714, #723, #726)
- Accept PIL Image instances in kiva.agg draw_image() (#682)
- Supply DPI when saving images (#678)
- Add face_index support to celiagg and kiva.agg backends. (#605)
Fixes
- Catch the exception thrown by AGG (#751)
- Don't create a ref cycle in AbstractWindow.cleanup() (#749)
- Set encoding when saving svg file (#735)
- Reorder the preferred fonts list (#698)
- Extract a better property dict from TTF fonts (#697)
- Get the Qt Quartz backend working again (#679)
- Fix set_font() for PDF and SVG backends (#674)
- Fix QPainter fill_path (#660)
- Fix save() in the quartz backend (#645)
- Fix font selection in the QPainter backend (#641)
Documentation
- Mention return value for draw_marker_at_points (#754)
- Update constrained layout documentation (#746)
- Rearrange the documentation (#732)
- Add documentation for ComponentEditor (#730)
- Add some developer docs for Kiva's FontManager (#725)
- Document Enable trait types (#721)
- Add documentation for mouse events (#717)
- Add documentation for AbstractWindow (#718)
- Ignore Kiva backends in the API docs (#703)
- Add a Kiva tutorial (#676)
- Document how colors work in Kiva (#684)
- Document image drawing in Kiva (#680)
- Place Kiva docs before Enable docs (#675)
- Document GraphicsContext state (#672)
- Add documentation for CompiledPath (#662)
- Add an intro section for Enable docs (#658)
- Update the Kiva GraphicsContext documentation (#644)
- Document the available Kiva backends (#646)
- Reorg docs and document Kiva text rendering (#639)
Testing
- Allow sending "mouse move" with left/right down with EnableTestAssistant (#715)
- Add tests for str_to_font (#705)
Maintenance
- Deprecate the str_to_font in enable.base (#748)
- Use BGRA32 for celiagg's default pixel format (#729)
- Require a minimum of Traits 6.2.0 (#755)
- Don't test drawing on Qt4 [due to lack of Pillow support] (#745)
- Remove kiva.fonttools.sstruct (#699)
- Remove old/broken code (#692)
- Add an 'oldagg' backend pointing to kiva.agg (#669)
- Replace uses of on_trait_change with observe (#656, #663, #665, #654)
- Normalize some signatures of Kiva methods (#691)
- Add ContextMenuTool to enable.tools.pyface.api (#690)
- Update celiagg backend to use 2.0.0 API (#633)
Build and Continuous Integration
Version 5.1.0rc2
This is the second release candidate for 5.1.0
Version 5.1.0rc1
This is the first release candidate for 5.1.0