Skip to content

Releases: enthought/enable

Version 6.0.0

23 Jun 08:40
Compare
Choose a tag to compare

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 to kiva.oldagg and make kiva.image a stub (#1054)
  • Map MODERN fonts to monospace and TELETYPE 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

12 Aug 16:34
ccb7680
Compare
Choose a tag to compare

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

  • add a github workflow for publishing releases to PyPI (#967)
  • don't ship Cython-generated C++ files (#958)
  • add SWIG to pyproject.toml dependencies (#954)

Version 5.3.0

28 Apr 13:25
3c41e4b
Compare
Choose a tag to compare

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

  • CI is now run on Python 3.8 and PySide 6 (#927)
  • Replace use of Hypothesis by unittest subTest (#912)
  • Use Ubuntu 18.04 for CI (#889)
  • Some tests were not being run in CI (#929, #937)

Version 5.2.1

22 Jul 15:46
1a3d4cb
Compare
Choose a tag to compare

This is a bug fix release which addresses an issue with the FontManager encountered when no fonts are available and a rounding issue related to a recent pillow release.

Fixes

  • Fix FontManager bug when no fonts are available (#871)
  • Fix the dpi rounding issues with newer versions of pillow (#875)

Release 5.2.0

17 Jun 14:19
655c777
Compare
Choose a tag to compare

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

  • Convert # to #: to improve docstrings in markers (#784)
  • Document EnableTestAssistant (#800)

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

  • Skip markers tests if not using agg (#799)
  • Add pyproject.toml to specify cython and numpy as build deps (#808, #836, #847)
  • Verify swig version in setup.py (#811)

Version 5.1.1

21 May 16:15
b8c4b46
Compare
Choose a tag to compare

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

30 Mar 08:30
Compare
Choose a tag to compare

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

  • fix edmtool test-all command (#655)
  • Install cron job dependencies correctly (#637)
  • Add Cython and SWIG to cron job build deps (#607)

Version 5.1.0rc2

26 Mar 14:20
Compare
Choose a tag to compare
Version 5.1.0rc2 Pre-release
Pre-release

This is the second release candidate for 5.1.0

Version 5.1.0rc1

19 Mar 14:44
ecfb618
Compare
Choose a tag to compare
Version 5.1.0rc1 Pre-release
Pre-release

This is the first release candidate for 5.1.0

Version 5.0.1

26 Feb 16:44
Compare
Choose a tag to compare

This is a patch release which addresses some issues that were caught early in the 5.0.x series.

Fixes

  • Fix KeySpec.from_string (#638)
  • Don't mess up the component bounds in HiDPI mode (#635)