Support Python 3.11. Reference: #2604 Reference: #2594


Fix edm create-token –inject when the current API token in the config file or the environment is invalid. Reference: #2607


Pin EDM dependencies for reproducibility and Software Bill of Materials generation. Reference: #2601

Fixed outdated edm help requirements from CPython 2 to CPython 3. Reference: #2612



Fix an error message for the edm install command with a misplaced comma. Reference: #2581

Fix a case where edm env clone fails. Reference: #2582


Update EDM documentation and cli help to list all environment variables used by EDM. Reference: #2578

Port EDM to Python 3.8. Reference: #2585



EDM will now default to python 3.8 on all platforms except Windows-32 bit where the default will be 3.6 because Enthought’s buildsystem doesn’t support it yet. Reference: #2545


Fixed some cases where EDM would not purge environments. Reference: #2257

Fixed an issue where proxy arguments via cli don’t override proxy configuration via env variables. Reference: #2328

Fixed an error where edm would create environments with invalid env names. Reference: #1908


Remove enthought/commercial repository from the default edm config which is created when no config exists. Reference: #1773

Print user friendly error message when edm api token is malformed. Reference: #2009

Updated the edm proxy configuration documentation about percent encoding special characters, if present, in the proxy username or password. Reference: #2087

Display a user friendly error when a python runtime is missing. Reference: #2563



The edm info command now prints out proxy/network information. Reference : #2417


Fixed an issue that prevented users from searching for applications with a platform argument. Reference : #2453

Fixed an issue where setting the environment variable EDM_VERSION would break EDM commands. Reference: #2414

Fixed an issue where the edm repack-wheel command would include extra dependencies (extra_requires in setup.py) with a version constraint in the repacked wheel while omitting extra dependencies without a version constraint. Reference: #2546

Fixed an issue where the edm repack-wheel command would not use the python_tag provided in the cli to process dependencies. Reference: #2547

Fixed an issue where EDM will not rm pyc files when a package is uninstalled. Reference: #2541


EDM will now import CA certificates from the OS store on Windows. Reference: #2418

The edm repack-wheel command now support wheels with a data scheme. Reference: #1798


Added a section to the documentation on how to use EDM with VS Code. Reference: #2524

Fixed an issue with some errors attempting to use python 2.7 syntax. Reference: #2447

Corrected the name of the environments help topic in the edm install command. Reference: #2451

Added short descriptions to EDM commands and fixed a typo. Reference: #1903 Reference: #2263

Updated the EDM user documentation about current limitations of repack operations with automatic dependency extraction, that is edm repack-wheel --extract-dependencies. Reference: #2544



Fixed an issue with creating environments on windows. Reference: #2520

Fixed an issue with options being passed into applications. Reference: #2503



The edm environments import and edm application install commands now support a --disable-precompilation flag that turns off the precompilation. Reference: #2513

The edm app start command now allows users to pass in options. Reference: #2503

Added a new set of commands to edm configure, edm configure repositories that will allow users to edit the repositories in their edm.yaml via the command line. Reference: #2480

Bundle installation will now be followed by byte-compilation in order to reduce the startup time for large applications: Reference: #2468

Get rid of the “unsupported shell, things may not work properly” warning for the “sh” shell. Reference: #1708


Changed the entrypoint template to use a raw string to avoid potential escaping issues: Reference: #2477

Wrapped the PATH variable generated by the edm shell command in quotes to fix an issue where environments with parentheses in the name would fail to activate. Reference: #2461

Added a constraint to the urllib3 version to avoid an issue with the insecure flag. Reference: #2498


Changed the logging timestamps to use UTC and be of the same format as the timestamps in EDM-GUI. Reference: #2488

Bumped the highest supported metadata version to 1.4 to help prepare for the rollout of python 3.8. Reference: #2485

Updated the Ubuntu version for Github Actions from 16.04 to 18.04 as support is being dropped for Ubuntu-16.04 Reference: 3287



Fixed creating a shell so that it does not acquire a lock on EDM Reference: #2460

Fixes version parsing when extracting dependencies from eggs or wheels for version matching clause (~=). Reference: #2444

Extend max retry wait time to 10 seconds per operation (up from 1 second), and raise max-retries to 10 for directory renaming and removal. Remove buggy handling code for UnicodeDecodeError and UnicodeEncodeError and just have EDM print a traceback; in practice, the majority of errors we see involving these exceptions involve internally generated errors rather than badly encoded arguments. Reference: #2222

Updated the runtime that edm is built with to 3.6.13 to fix a regression. Reference: #2469


Updated the docstring and documentation for create-token to clarify when the user will be prompted for a username and password. Reference: #2463

Updated okonomiyaki pin to >= 1.3.0 Reference: #2445

Added more documentation about proxy passwords and the list proxies command. Reference: #2471


The environment-info command now returns additional information about the edm environment. Reference: #2465

Eggs installed on windows that create proxy scripts now include some common library paths in the path. Reference: #2359



Changed the behavior of the repack commands to treat setuptools == requirements as ^= edm requirements to fix an issue with build number specification in egg and wheel repacking. Reference: #2419

Updated EDM GUI to 10.3.3. When installing an application, the GUI now uses the –force option to ignore any leftover files associated with previous failed installations. Previously, recovering from this condition required use of the command line to manually clear out the old files. Reference: #184


Changed the authorization prompt to ask for a username instead of an email address. Reference: #2416



Updated EDM GUI to 10.3.2, which contains a bugfix for proxy support. Reference: #189

Use Python 3.6.13 runtime, which contains a bugfix for CVE-2021-23336. Reference: #2430



Corrected an encoding error related to Python 2 deprecation which resulted in an error when attempting to set a proxy on MacOS or Windows. Reference: #189



  • Refactored EDM environment registration so that it happenes consistently.



  • Fixed an issue where incorrect permissions prevented EDM-GUI from launching on CentOS.


  • Added support for PEP514 on Windows. EDM created environments will now create registry entries that can be seen by tools like VSCode.


  • Updated copyright dates in license headers.

  • Added MSVC license to Windows installer.



  • Fix an encoding issue which prevented “.zbundle” files from being imported.

  • Fix improper string handling which broke the “edm app list” command and GUI functionality which depended on it.

  • Fix very long tracebacks in log files, triggered by the lack of an explicit character encoding when opening the log file.



  • Update to most recent EDM GUI release: add refresh capability for the apps page, add keyboard shortcuts (Ctrl-r to refresh application list; Ctrl-f to focus the “Filter Results” input).


  • Update the version of Python used when building EDM (to 3.6.12).



  • Fixes bug where app install and app search would fail to install/search for applications compatible with the current OS



  • Added –platform flag to edm app list-available

  • Made rh7 default platform (for rh7 compatible systems)



  • Updated EDM GUI to 10.3.0, which adds a search and filter box.


Bug fixes

  • Re-enable app signing for Windows

  • Changed api-token creation logic to be compatible with newer versions of brood.



  • New command edm configure proxy, which lets users configure a proxy to use when contacting an EDS server. This feature is also accessable from the GUI.

  • Proxy credentials no longer stored in plaintext. Either stored in secure system storage, or encrypted.

  • Improved GUI error reporting when reading configuration



  • For GUI, “Open config file” item in the Tools menu and config file watcher added


  • In the GUI, manual changes in the config file will no longer be overwritten


  • Remove dead code

  • Use multibranch pipeline for master builds

2.2.0 (2020-02-19)


  • Caching in GUI of applications and repositories

  • “Show console output” menu item and application debugger dialog

  • Add a prompt to remove conflicting environment when installing an application

  • Add DevTools installation manual and menu item

  • Add tooltip to clarify proxy settings

  • Advanced configuration section added to GUI


  • Update Python versions referred to in docs (#2249).

  • Remove dev/contributor guide from public docs (#2277).

  • Add documentation for advanced GUI configuration

  • Documentation for “show console output”

  • Fix docs relating to proxy use (#2258).

Bug fixes

  • Fixed issue in GUI with usernames containing spaces

  • Improve CLI argument escaping


  • Adjusted version label to display EDM version by default and GUI version in a tooltip


  • Constrain setuptools version during builds to retain Python 2.7 support (#2272).

  • Constrain PyInstaller version during POSIX builds (#2274).

2.1.0 (2019-12-06)


  • There is a new --add-repository option for edm search, edm install, and edm bundle generate (#2117).

  • Better support for progress reporting on non-console output (#2235).

Bug fixes

  • edm app list will no longer fail on broken application environments but ignore them (#2211).

  • edm bundle generate no longer requires authentication when only packages from public repositories are used (#2099).


  • Update the documentation regarding EDM GUI and CLI (#2212).


  • The default edm root is now the same for dev builds as it is for release builds of edm (#2199).

  • EDM is now compatible with attrs versions 19.2.0 and greater (#2187).

  • Account for possible __PYVENV_LAUNCHER__ env variable that was breaking tests on Mac OS (#2216).

  • Run tests on rh7 nodes (#2223).

  • Increase reliable_rename attempts for Windows (#2232).

  • Update simplesat dependency to 0.8.2 (#2238).

2.0.0 (2019-10-03)


  • Remove the edm gui command (#2121).

  • Change default bundle type to version 2 (#2130).

  • Change the default python version to 3.6 when creating new environments (#2122).

  • Windows desktop shortcut now links to the new EDM GUI app (#2147).

  • EDM installer without the new GUI app is called “edm_cli” (#2156, #2159).

  • Remove previously deprecated update-all command (#2181).


  • Sign binaries and notarize Mac installer (#2080, #2079).

  • Support a gui entry in the EDM.yaml config file (#2023).

  • Support ls/rm as shortcuts for list/remove (#2094).

  • Provide two EDM installers: the original command-line-EDM-only installer, and one that also includes the new EDM GUI (#2136, #2125, #2126, #2127).

Bug fixes

  • Fixed unhelpful output on failure to find a SAT solution (#1845).

  • Clean up bundle generation satisfiability errors (#1846).

  • Fix edm app list error when an environment has eam but no applications (#2129).

  • Fix bundle creation that included unnecessary repositories (#2118).

  • Prevent edm from polluting stdout for commands using the --json option (#2174).

  • Console logging is now sent to stderr (#2179).

  • Fix SSL error when using commands with the --insecure option (#2184).


  • Update edm env export command in documentation (#2072).

  • Remove license for the now unused tcl/tk (#2142, #2171).

  • Update installer to not include unnecessary gui libraries (#2123).


  • Use python 2.7.15 for all the edm installers (#2052).

  • Move Linux installer builds to centos 6 nodes (#2111).

  • Make purge a little safer (#2095).

1.12.1 (2019-07-04)

Bug fixes

  • Fix linux installers to work on recent linux systems (#2073)

1.12.0 (2019-06-04)


  • Make --purge the default when removing an environment or application (#1971, #2028).


  • Add an edm gui command to start the related EDM-GUI application (#1967, #2050).

  • Support installing an application from an application bundle file (#1788).

  • Add option to display edm gui console output in a GUI window (#1995, #2031, #2049, #2053, #2059).

  • Add a start menu shortcut for launching the EDM-GUI application on Windows (#1994, #2027).

  • Sign the .pkg installer on OSX (#349, #2017).

Bug fixes

  • Fix edm repack-egg and edm repack-wheel so that the files which are installed from their output will have the correct permissions (#878).

  • Give better error message for importing bundle with invalid json (#1381).

  • Fix Windows installer to remove older versions of EDM before installing the new files (#2051).


  • Remove obsolete roadmap from documentation (#1963).

  • Fix misleading names of release files (#1962).

  • Update help for edm upgrade-all (#1976).


  • Use pyinstaller for all platforms rather than static python build and freeze.py (#1998).

  • Use okonomiyaki 1.0.0 with support for metadata 2.1 (#1957).

  • Support click 7.0 (#1972).

1.11.0 (2019-03-18)


  • Add new command application list-installed to list the currently installed EAM applications (#1925).

  • Support returning command output as json for application list-installed and application list-available commands, via option –json (#1925, #1924).

  • Support reporting action result as json for application install and application remove commands, via option –json-report (#1943, #1943).

Bug fixes

  • The bundle generate command no longer requires an authenticated user to access the free enthought repositories.


  • Fix EDM jenkins ci/cd builds (#1926, #1947).

  • Fix errors detected by recent flake8 release (#1926).

Older Releases