Skip to content

Releases: enthought/envisage

Envisage 7.0.3

03 Apr 16:01
7.0.3
896dfe1
Compare
Choose a tag to compare

This is a bugfix release that fixes the automated documentation build
for releases.

Fixes

  • Fix the GitHub Actions workflow for automated documentation updates
    on releases. (#568)

Envisage 7.0.2

03 Apr 15:23
7.0.2
17d2879
Compare
Choose a tag to compare

This is a bugfix release that fixes some test interaction issues and
automates the documentation build.

Fixes

  • Fix test-ordering issues with egg-based tests that modify pkg_resources
    global state. (#564)

Documentation

Build

  • Add GitHub Actions workflows to automate documentation updates. The main
    documentation is updated on every push to main, while the release
    documentation is updated on each GitHub release creation. (#565)

Envisage 7.0.1

24 Mar 14:12
7.0.1
16bb04a
Compare
Choose a tag to compare

This is a bugfix release whose main purpose is to fix the Read the Docs
build for the Envisage documentation.

Fixes

  • Fix the documentation build for Read the Docs. (#560)
  • Fix example code that was importing Font and Color from Traits
    instead of TraitsUI. (#558)

Envisage 7.0.0

24 Mar 09:03
7.0.0
e12d20d
Compare
Choose a tag to compare

This is a major release aimed at modernization and cleanup of some out-of-date
code. In particular, this release removes the IPython-related plugins, and
drops support for Python 3.6.

Thanks to:

  • Mark Dickinson
  • Chengyu Liu
  • Corran Webster

Features

  • There's a new unbind_extension_point function that reverses the effects
    of bind_extension_point. This can be useful for clean teardown. (#546)
  • All id string constants that were previously available from envisage.ids
    are now also exported in envisage.api. Users are encouraged to import
    everything they need from envisage.api, and to open an issue if anything
    they need is not exported in envisage.api. (#508)

Changes

  • When exiting a TasksApplication, the plugins are now stopped after
    exiting the event loop. Previously they were stopped while the event loop was
    still running, causing some lifecycle issues. (#524)
  • The extension_registry argument to bind_extension_point is no
    longer optional, and ExtensionPointBinding will no longer look for
    an extension registry on the ExtensionPoint class. (#545)
  • Operations that used to raise SystemError now raise something more
    appropriate. In particular, the PluginManager.start_plugin and
    PluginManager.stop_plugin methods now raise ValueError rather
    than SystemError when given an invalid plugin id. (#529)
  • envisage.__version__ is no longer defined. If you need the Envisage
    version at runtime, use importlib.metadata to retrieve it. (#513)
  • Python 3.6 is no longer supported. All current versions of Python (3.7
    through 3.11) are supported. (#513)

Fixes

  • The repr of a Plugin instance now correctly uses the name of the
    plugin class. (#535)

Deprecations

  • The EggPluginManager, EggBasketPluginManager and
    PackagePluginManager are deprecated, and will be removed in Envisage 8.0.
    (#540)
  • The include and exclude traits on the PluginManager are
    deprecated, and will be removed in Envisage 8.0. (#544)

Removals

  • Plugins and machinery related to IPython have been removed. Specifically,
    the IPythonKernelPlugin and IPythonKernelUIPlugin plugins have been
    removed, along with supporting classes InternalIPKernel and
    IPKernelApp. (#496)
  • The ExtensionPoint.bind method has been removed. (#545)
  • The previously deprecated safeweakref.ref class has been removed. (#522)
  • Some legacy unmaintained examples have been removed. (#557)

Documentation

  • The changelog is now included in the built documentation. (#550)

Tests

  • Old-style namespace packages used for testing have been replaced with
    normal non-namespace packages. This fixes some warnings from the latest
    setuptools. (#543)
  • The test suite now runs cleanly under pytest. (#539)
  • Tests that are skipped due to a PySide6 problem should now be run
    if the version of PySide6 is recent enough. (#554)

Build

  • Package configuration now uses pyproject.toml in place of the old
    setup.py-based configuration. (#513)
  • Optional dependencies are no longer declared. (#513)
  • A new style-checking workflow has been added that runs black, isort
    and flake8 over the codebase, and new code is expected to comply with
    black and isort configurations. (#549)
  • A new documentation-build workflow has been added. The built documentation
    is uploaded as an artifact. (#551)

Envisage 6.1.1

07 Feb 16:04
6.1.1
Compare
Choose a tag to compare

This is a bugfix release that fixes an incompatibility between the workbench code and the latest Traits version, among other minor fixes.

Thanks to:

  • Mark Dickinson
  • Prabhu Ramachandran
  • Scott Talbert

Fixes

  • A trait validation error in the Workbench DefaultActionSet has been fixed. This fixes a compatibility issue with Traits 6.4. (#485)
  • Initialization of application directories now correctly respects the value of self.state_location. (#490)
  • In the test suite, egg generation now uses sys.executable to ensure it picks up the correct Python executable. (#499)

Other changes

  • The version of PySide6 used in test workflows has been restricted. (#487)
  • The EDM version used in test workflow has been updated. (#484)
  • Various fixes have been made to the GitHub Actions workflows, for compatibility with the newest runners. (#491, #494)
  • Copyright headers have been updated for 2023. (#493)

Envisage 6.1.0

15 Aug 09:36
6.1.0
e4bbdb7
Compare
Choose a tag to compare

This is a minor feature release whose main focus is on compatibility with
Python 3.8 and PySide 6. It includes a collection of other cleanups and minor
fixes.

In this release, there are some changes in the way that the Envisage
Application interacts with ETSConfig. You should double check that
the locations of user data, preferences and application home directories are
the ones that you expect after upgrading.

Please note that the IPython-related portions of Envisage are currently not
compatible with the latest versions of ipykernel and IPython available from
PyPI. This has been made explicit in this release in the form of version
restrictions on those packages in the envisage[ipython] install target.

Thanks to:

  • Aaron Ayres
  • Mark Dickinson
  • Sai Rahul Poruri
  • Corran Webster

Changes

  • The Application.user_data directory no longer includes the id
    of the application, but instead matches the ETSConfig.user_data. (#467)
  • The Envisage Application will no longer try to change the
    ETSConfig.application_home attribute. (#467)
  • The PackageResourceProtocol now uses importlib.resources instead
    of pkg_resources. (#466)
  • The IPython-related features of Envisage require ipykernel version < 6 and
    IPython version < 8. (#449)

Fixes

  • Fix EggPluginManager to use current pkg_resources.working_set. (#444)

Refactoring and maintenance

  • Simplify ImportManager by using importlib. (#465)
  • Update end year in copyright headers. (#458)

Tests

  • The tests no longer rely on pre-built eggs for test packages. (#459, #436)
  • Skip tests for recent ipykernel, and add check for IPython version. (#457)
  • Work around a Python 3.6 issue with isinstance and lru caches in tests.
    (#470)
  • Fix an EggBasketPluginManager test that only passed due to test
    interactions. (#443)
  • Some pickles used in testing have been regenerated in order to work
    correctly with more recent versions of Traits. (#472)
  • Fix poorly specified action and menu groups in tests. (#468)
  • Fix test hangs with PySide2 / macOS 11. (#454)
  • Skip an ipykernel-using test if ipykernel is not available in the test
    environment. (#423)

Examples

  • Fixes for the Attractors example. (#408, #416)

Documentation

  • Code samples in the documentation now have a "copy" button. (#474)
  • Stylistic changes and updates to documentation. (#406)
  • Fix documentation links to examples on main branch. (#447)
  • Add a Read the Docs config file. (#434)
  • Miscellaneous minor fixes. (#435)

Build and CI

  • Update build machinery to support Python 3.8 and PySide 6. (#477)
  • Add workflow to automatically upload releases to PyPI. (#478)
  • Set up Slack notification for cron jobs. (#433)
  • Cron job failures are now reported to the main Slack channel, not
    to the bots channel. (#473)
  • Add GitHub Actions workflow to test PyPI install. (#450)
  • The default branch has been renamed from master to main. (#446)
  • Update classifiers for Python 3.10. (#437)
  • Port CI from Appveyor to GitHub Actions. (#432, #426)
  • Simplify flake8 command in etstool.py. (#431)
  • Traits version 6.2 or later is now required. (#410)

Envisage 6.0.1

17 Jun 14:57
92ae328
Compare
Choose a tag to compare

This bugfix release fixes the issue where Extension Point resolution was
happening too eagerly, which caused issues during application startup time in
certain cases. We recommend all users of Envisage to upgrade to this bugfix
version.

Fixes

Tests

  • Ensure that the testsuite passes with minimal dependencies. (#423)
  • Add a regression test for issue #417. (#421)

Envisage 6.0.0

14 May 12:29
3066a38
Compare
Choose a tag to compare

This major release focuses on speeding up Envisage applications. We achieved this speedup by removing unused functionality in the package. Specifically, we removed the @contributes_to decorator and the code needed to handle methods decorated with the above decorator.

Additionally, with this release, parts of Envisage start using the new Traits observation framework instead of the old Traits on_trait_change. So, Envisage now depends on Traits version >= 6.2.

Features

  • Support observe(name:items) for Extension Points. (#354)

Changes

  • Replace Either trait type with Union. (#405)
  • Rewrite *_changed static trait handlers to use observe. (#401)
  • Replace depends_on in Property traits with observe. (#400)
  • Change default pickle protocol to be compatible with Python >= 3.4. (#390)

Removals

  • Remove contributes_to decorator and supporting code. (#402)
  • Remove unnecessary return statements throughout the codebase. (#393)

Build

  • Ensure that the cron job installs all necessary dependencies. (#383)

Envisage 5.0.0

03 Dec 19:39
5adee44
Compare
Choose a tag to compare

This is a major release mainly relating to code modernization. In this
release, support for Python versions <3.6 have been dropped. The
class_load_hooks and single_project modules have been removed. Additionally,
there were various fixes to bugs, examples, tests, and documentation. Demo
examples are also distributed as package data such that they are visible via
the "etsdemo" GUI application (to be installed separately).

Features

  • Re-export CorePlugin in envisage.api (#332)
  • Create and fill plugin subpackage api modules (#323)
  • Add relevant classes to envisage.ui.tasks.api (#322)

Fixes

  • Fix index slice in ExtensionPointChangedEvent when plugin changes (#357)
  • Fix ValueError from unregistering services when application stops (#345)
  • Fix the MOTD example (#319)
  • Fix the Hello_World example (#318)
  • Fix the attractors tasks application example (#317)
  • Make TasksApplication.gui expect an IGUI interface, not a GUI instance (#301)

Documentation

  • Contribute examples to etsdemo (#380)
  • Refactor documentation links to source on GitHub (#379)
  • Make example run from any directory (#377)
  • Setup intersphinx in docs (#343)
  • Add documentation for envisage APIs (#340)
  • Use jinja templates for API documentation (#339)
  • Improve API docs : document traits (#334)
  • Rebuild documentation, mostly to fix search functionality (#290)

Deprecations

  • Deprecate safeweakref and replace its uses (#275)

Removals

  • Drop support for Python 3 versions older than Python 3.6. (#341)
  • Remove single_project (#331)
  • Remove class_load_hooks and ClassLoadHook (#321)

Tests

  • Add tests for ExtensionRegistry getters (#349)
  • Add tests to demonstrate behaviour when mutating extension point directly
    (#346)
  • Use mixin instead of having ProviderExtensionRegistryTestCase inherit from
    ExtensionRegistryTestCase (#335)
  • Switch on default warning flag for CI test command (#326)
  • Add test eggs for Python 3.9 and remove eggs for Python 2.7 (#289)

Build

  • Turn off macOS builds on Travis CI (#375)
  • Fix CI cron job setup to install apptools (#348)
  • Update setup.py to allow prerelease version (#344)
  • Add wx as being supported in etstool, add it back to CI, and test against
    wxPython v4.x (#336)
  • Update EDM version to 3.0.1 in Travis CI and Appveyor. (#297)
  • Stop reporting code coverage in CI (#288)
  • Fix CI setup on Linux, Windows (#287)
  • Remove support for PySide and PyQt4 from CI (#285)
  • Add Slack notification for Travis CI runs (#283)
  • Add flake8 check to etstool and CI (#268)

Envisage 4.9.2

17 Feb 13:40
1d249fa
Compare
Choose a tag to compare

This is a bugfix release that fixes tests that assumed the existence
of categories machinery (which is removed in Traits 6.0.0).

Fixes

  • Conditionally skip tests that fail against Traits 6.0.0 due to the removal
    of Categories. (#263)