1.10.1 (2018-12-19)


  • While running an application bundle, EDM no longer locks the EDM root. This allows other EDM commands to be performed while the application is still running (#1850).

  • License information for the libraries used by EDM is now included in the text printed by edm license. The license text is also now included in a LICENSE file installed along with EDM (#1866).


  • Update the installer documentation (#1838).

  • Add documentation about updating the bundle_repositories configuration option in order to find application bundles in repositories other than enthought/free (#1858).

  • Updated note about uninstalling the old version before installing EDM (#1847).

  • Added documentation about EDM’s locking and read-only behaviors (#1630).

  • Fixed sample command line for installing EDM with msiexec (#1860).

Command line interface changes

  • Refactored the bundle generate command so it uses the global --config and --api-token options instead of having its own version. Consequently, if you were using EDM with those options after bundle generate on the command line then you should move those options to be before the bundle generate part of the command line (#1852)

Bug fixes

  • Fix error message when searching for an EDM application which is not found (#1856).


  • Fixed invalid escape sequences identified by flake8 (#1867).

  • Updated EDM to use the newest version of the attrs package (#1870).

1.10.0 (2018-09-05)


  • A new application command group has been added to support downloading, installing and removing applications (#1808, #1805, #1783, #1806, #1754).

  • A new bundle command group has been added to support basic bundle creation operations (#1746).

  • Support creating EDM bundles from a list of requirements, using the bundle generate command (#1619).

  • Update Windows MSI installer to add support for non-admin user installs (#1609, #1827, #1830, #1836).

  • Sign Windows MSI installers (#1784).

  • New command group alias env/environment for the environments command group.

  • The hatcher library version is now visible in the edm info report (#1800).

  • The new bundle_repositories configuration option is now visible in the edm info report (#1799).


  • Document the different ways to execute scripts in EDM environments (#1723).

  • Document the new application command group (#1810).

  • Update information on the shell configuration option.

Bug fixes

  • Better error message when the --config option is used with an embedded EDM (#1705).

  • Better error reporting when the runtime post install stage fails (#1639).

  • edm envs export and edm freeze would not always detect the currently activated environment (#1722).

  • Bundle modifiers were written out in arbitrary and changing order (#1721).

  • Do not create an invalid enpkg entry point (#1694, #1692).


  • Updated hatcher version (0.12.0).

  • Use EDS v1 API entry points throughout the codebase.

  • Support running the EDM tests inside an EDM environment.

What’s new


In the past, an EDM bundle could only be created by exporting an existing environment. A bundle specifies a specific Python version and a collection of packages and their versions that are installed in the exported environment. This facilitates recreating an exact duplicate of the environment. The downside of creating bundles like this is that they are tied to the platform and can only be used to create a new environment on the same platform.

With the addition of the new bundle generate command, it is now possible to create a bundle that targets a platform other than the one used to create the bundle file. It does not use an existing environment to determine the packages to be included in the bundle. Instead, the requirements are specified on the command line.


EDM now has the ability to create and manage complete “applications”, which are basically normal EDM bundles which also include the Enthought Application Manager (EAM) package, and which can define an icon to be used to create a launcher for the application. When the application is installed a normal EDM Python environment is created, and the launcher icon uses EDM to launch the application. The EDM application command group can also be used from the command-line to start, install, remove, or search for applications on the Enthought Deployment Server (EDS).

1.9.2 (2018-03-19)

This release fixes a bug which could incorrectly remove a lock file, and thus potentially allow corruption of a Python environment by simultaneous inconsistent maintenance actions. It is recommended for all users to upgrade.


  • edm info will show the read/write state of the EDM root and the Python bit architecture of the EDM executable (#1687, #1662).

Bug fixes

  • Fix the stale lock validation code to correctly handle timezones (#1712).

1.9.1 (2018-01-23)

This bugfix release brings a few fixes for EDM, but most importantly enables automatic stale access lock detection, a feature that was accidentally disabled in 1.9.0. It is recommended for all users to upgrade.

Bug fixes

  • The automatic removal of stale access lock was not activated (#1677).

  • Handle special case where access lock file is empty (#1679).


  • Handle reading aborted Remove transaction records from the environment transaction database for which there is no package version (#1672).

1.9.0 (2017-12-19)


  • Windows 32-bit installers (#1661).

  • environments create accepts a –abi option to filter the available runtimes (#1603).

  • EDM can now detect a stale access lock and automatically remove it, eliminating the need for manual cleanup (#1640).

  • repack-wheel command now supports the scripts prefix scheme of the Wheels 1.0 specification, meaning that most wheels should now be repackable as enthought eggs, compatible with EDM’s dependency-resolution system (#1633).

  • mark-read-only and mark-read-write are idempotent, removing unnecessary error messages when they are used redundantly (#1622).

  • EDM settings now support the ca_certificates option to provide alternative certificate bundles (#1590).

Bug fixes

  • Update README (#1604).

  • Remove unnecessary reporting of installation errors that succeed when retried (#1589).

  • Miscellaneous documentation fixes (#1634).

  • Fix issue on OSX installations where /url/local/bin does not exist yet (#1611).

  • EDM will not create a new environment if the specific package requirements cannot be met so that the command can be retried with only removing the missing package (#1599).


  • Updated okonomiyaki version (0.17.3)

  • Better testing of the samefile function (#621).

1.8.3 (2017-10-27)

Bugfix release of edm


  • edm repack commands support –extract-dependencies to automate dependency extraction from the package being repacked (#1614)

  • improved documentation for repack commands and package dependency management (#1613)

  • edm environments list will now show the abi (#1605)

Bug fixes

  • Fix InvalidSettings exception when using repository names with hyphen (#1594)

  • Fix typo in installer text (#1607)

  • Improved error message when export fails due to cache issue (#1612)


  • Updated setuptools version (36.6)

1.8.2 (2017-07-26)

Bugfix release of edm version 1.8.2

Bug fixes

  • Update requests and urrlib3 to the latest releases (#1574)

  • CalledProcessError when repacking egg (#1566)

  • Fix error handling in data bundle sh installer (#1571)

1.8.0 (2017-07-13)

This minor release brings the usual set of bug fixes and improvements. It is recommended for all users to upgrade.


  • support for read-only environments has been added, allowing Administrator-controlled environments to be shared by multiple users, while still allowing users access to basic read-only commands like edm environments list and edm list.

  • support for repacking wheels to Enthought-format eggs using the edm repack-wheel command.


  • add a new edm list-available command to list packages available to be installed (#1265).

  • add support for using some EDM commands in read-only environments (#1302)

  • add option to select a destination directory for edm repack-egg results (#1512).

  • add environment platform to output of edm environmentss list (#1537).

  • add a new edm repack-wheel command to repack a wheel into an Enthought egg (#1548).


  • add documentation for bundles (#1462).

Bug fixes

  • allow removing petrified environments by providing the --purge flag to edm envs remove (#1246).

  • package repository indexes are no longer fetched when not needed (#1300).

  • the edm remove command no longer suggests to install an environment (#1481).

  • fix edm environments create --force to force-remove the old environment if necessary (#1524).

  • fix the sh linux installer exit code on successful install (#1525).

  • bypass the packages cache for packages with file names that are too long for Windows (#1544).


  • add internal support for retrying package and runtime installation when installing bundles (#1553).

  • add a new EnvironmentsManager.can_create_environment method (#1486).

  • fix retrying I/O functions that use recursive calls (1555).

  • refactor session handling for performance improvements when no network access is required (#1545).

1.7.1 (2017-06-14)

This micro release fixes binary installers. It is otherwise functionally equivalent to 1.7.0

Bug fixes

  • update setup.py to uses attrs >= 17.1.x and okonomiyaki >= 0.16.10 (#1515).

1.7.0 (2017-06-08)

This minor release brings the usual set of bug fixes and improvements. It is recommended for all users to upgrade.


  • package installation and removal can now be interrupted without corrupting the environment. If for any reason package installation/removal is interrupted, the user can attempt to fix it by using the fix-broken command.


  • make single package install/removal more robust to interruption (#1125)

  • allow overriding http max retries from the CLI. (#1477)

  • avoid creating superflous processes on unix when running edm at the CLI (#1508)

  • add runtime version and package count to edm envs list (#1503)


  • update help text from using rh5 examples to rh6 (#1461)

Bug fixes

  • handle entry points of the form ‘package.module:Class.method’ (#1449)

  • fix whats-new command. (#1497)


  • Refactor EggArchive to compute (source, target) pairs explicitly (#856)

  • environment commands do not really use EnvironmentsManager.purge (#1382)

  • update static python used on Unix, to fix pyexpat import error. (#1472)

  • fix edm to work w/ attrs 17.x. (#1480)

  • use a short temporary directory. (#1482)

  • don’t use shutil.copytree, it is an evil function (#1494)

  • idempotent runtime install (#1502)

  • idempotent runtime remove (#1506)

1.6.1 (2017-05-12)

This micro release fixes an issue on MacOS and Linux for the command repack-egg.

Bug fixes

  • update the static python used on Linux and MacOS, to fix pyexpat import error (#1473)

1.6.0 (2017-05-02)

This minor release brings the usual set of bug fixes and improvements. It is recommended for all users to upgrade.


Linux environments now default to rh6-x86_64

By default, any EDM command creating a new environment will now default to the rh6-x86_64 platform on Linux. This does not change existing environments, and you can of course still create rh5-x86_64 environments through the --platform option:

$ edm install pandas --platform rh5-x86_64

Bundle format 2.0

The old 1.0 format was tracking repositories “globally”, whereas the new format tracks the repository for each asset (packages and runtime). The new format also stores the sha256 for each asset, to ensure the assets are exactly the same in the imported environment. To create 2.0 bundles:

# Export the foo environment as a 2.0 into the my-env.json file
$ edm envs export -m 2.0 -f my-env.json foo


To create bundle 2.0, the environment has to be created from EDM 1.5.2 or above, and the data cache needs to be cleaned up:

$ edm cache purge --all --extracted-only

Data bundles

This new format allows creating data bundles, which are essentially zipfiles containing both the bundle metadata and all assets required to re-create the environment. Hence, these bundle files can be used to create EDM environments on disconnected machines:

$ edm envs export -f bundle.zip --include-assets <env name>
# Now copy this bundle.zip file on the target machine where you want to
# re-create the environment. This works even if the target machine does
# not have internet access.
$ edm envs import -f bundle.zip <env name>

Better .sh installers (OS X and Linux only)

The .sh installers have been improved. They now prevent overriding target directories by mistake, and can optionally contain a data bundle so that custom EPD-like .sh installers can be created.


  • On linux and macOS, EPD-like installers are now possible (#1202)

  • Improve failure behavior when creating environments. (#1206)

  • Minor improvements to edm shell error message (#1212)

  • Improve bundle format to guarantee reproducibility, aka bundle format 2.0 (#1224)

  • Include column header in available-runtimes (#1231)

  • Make release notes publicly available (#1237)

  • Update readme to reflect removal of edm entrypoint. (#1240)

  • DOC: clarify inline help around environment creation (#1248)

  • Flags to override defaults to edm search (#1249)

  • edm whats-new should list the repository source (#1253)

  • edm export does not requires a connection anymore (#1260)

  • --insecure can be configured in the configuration file (#1295)

  • Add an exists sub-command to environments (#1323)

  • Store the repository and sha256 of the installed runtime (#1371)

  • edm shell kind can now be controlled from an environment variable (#1393)

  • Add environment-variables topic help. (#1446)

  • Linux environments now defaults to rh6. (#1451)

Bug fixes

  • msiexec now install EDM into (64-bit) Program Files (#1183)

  • edm should not add packages to the manual package list if the install goes wrong (#1262)

  • Unable to parse requirement on export (#1297)

  • Don’t look at . directories in pkg-metadata (#1298)

  • edm bundle export/import doesen’t respect order of installation (#1307)

  • edm run fails for some commands on windows cmd shell (#1308)

  • In CMD/PowerShell, some error messages use bold red, some use dark red. (#1311)

  • Post install scripts that use other packages may fail importing (#1344)

  • Key Error in edm history (#1363)

  • Unexpected error: InvalidConstraint(“‘7z == 9.20-2’ (bad distirbution name)”,) (#1366)

  • Always disable urllib3 warning when verify_ssl is False. (#1408)


  • Avoid unnecessary builds on appveyor. (#1351)

  • Pass args from top edm.__main__ function for canopy. (#1359)

  • Object model for environment bundles (#1360)

  • Add tags to the travis-ci branch whitelist. (#1361)

  • PackagesManager instances can now be created without a session (#1388)

  • Only create a session for data bundle export when necessary (#1402)

  • Increase windows fs operations retry timeout (#1403)

  • Update attrs in setup.py (#1423)

  • Use more recent version of attrs for frozen support. (#1424)


Version 0.8.0

This is EDM 0.8.0. This version is intended to be the first release candidate toward 1.0. All critical features and bugs should be addressed in this release.

The public API (as available in edm.api) is considered stable, and will not change unless critical issues are found before 1.0.


This release brings the following new features:

  • Egg and runtime cache management, including viewing the cache contents and removing some or all of the cached files.

  • Optionally add EDM installation folder to PATH when using MSI

  • Automatically install pip and setuptools into new environments

  • Expanded documentation and logging


  • Implement basic logging (#309)

  • handle migration from existing user environment w/ e.g. EPD installed (#403)

  • Improve descriptions and help messages for some error modes (#411)

  • Write a cache manager for managing eggs (#722)

  • Validate repository names in .edm.yaml (#736)

  • Better message if package has no dependencies (#745)

  • Do not copy auth information when converting from .enstaller4rc to .edm.yaml (#752, #915)

  • Constraint modifier flags should accept multiple package names as arguments (#760)

  • User notifications about authentication (#772)

  • Implement aliasing system for click commands (#785)

  • Suggest alternatives for misspelled packages (#807)

  • Customize MSI to offer to add the EDM installation folder to PATH (#819)

  • Cache extracted runtimes (#823)

  • Lazy execution for environment import (#829)

  • Improve inconsistent requirement error message on failed environment import (#830)

  • Documentation for environment import/export (#835)

  • Ensure we remove .pyc when removing runtimes and packages (#844)

  • publish .sh installers on enstaller-assets (#851)

  • Add short_help topics to CLI commands to avoid help topics display ugliness (#853)

  • Fail when trying to export an environment with inconsistent requirements (#911)

  • Documentation for install REQUIREMENTS parameter (#916)

  • Add –force option to environment creation (#959)

  • Document what constraint modifiers are and how to use them (#961)

  • By default, add pip and setuptools to new environments (#963)

  • Enable edm search without an environment (#969)

  • Don’t display plaintext auth warning when running EDM in embedded mode (#998)

  • Document advanced usage options (#1008, #1010)

  • Improve robustness after interrupted/incomplete operations (#1026, #1028)


  • Refactor repository_factory tests (#322)

  • Sign the .pkg on OS X (#349)

  • Fix root directory access tests on windows (#524)

  • Use the event system for communicating lock retries / timeouts (#574)

  • Refactor indices in test code (#601)

  • Remove tests for handling simple auth tuples returned by edm.cli.credentials.CredentialsPrompter (#778)

  • Move package manager and egg creation utility to base test class (#803)

  • Use edm.utils.json_validator for edm.settings.Settings (#828)

  • Create environment_info-like object from uninstalled runtime metadata for lazy runtime installation (#860)

  • Use YAML for environment import/export (#873)

  • Refactor: rename env import/export (#884)

  • Refactor: use PackagesManagerTestMixin to mock indices (#892)

Bug fixes

  • Do not show obsolete packages when doing search (#297)

  • Clean up directory when environment is removed using CLI (#377, #422)

  • install and update should mark the corresponding requirements to manual (#658)

  • Fix pypi repo usage detection. (#730)

  • install and update should update constraint modifiers database (#743)

  • Fix git failure when installing from README directions (#753)

  • Do not print Installing/removing packages when doing nothing (#765)

  • update pkg can end up downgrading pkg (#782)

  • Executable binaries seem to have lost executable permission (#878)

  • Workaround windows fs in rm_rf (#879)

  • edm freeze no longer outputs compatible requirements (#880)

  • Multiple –allow-newer fail silently (#882)

  • Python interpreter header contains references to old app name (#886)

  • Search results are not properly aligned (#890)

  • Few issues with edm shell command (#900)

  • Unfriendly error for invalid yaml in config file (#904)

  • Bad default filtre when using –implementation pypy (#905)

  • Wrong shebang in pip-installed packages (#935)

  • don’t prune egg-info anymore, as this creates broken eggs. (#952)

  • Cleanly uninstall packages with symbolic links to directories (#1017)

Version 0.7.0

This is EDM 0.7.0. This version is intended to be the first alpha toward 1.0: it is feature complete, but it may still contain critical bugs, and is not recommended for production use yet.

The public API (as available in edm.api) is also considered stable, and will not change unless critical issues are found before 1.0.


Note: this release changes the on-disk format for environments. ENVIRONMENTS CREATED WITH 0.6.0 OR BELOW ARE INCOMPATIBLE WITH ENVIRONMENTS CREATED WITH 0.7.0. We intend to keep the on-disk format compatible throughout the 0.x (from 0.7.0) and 1.x series.

This release brings the following new features:

  • package is officially renamed to the Enthought Deployment Manager, aka EDM

  • update and update-all commands get a new set of flags –deps and –latest, and gives more reliable answers.

  • extracted eggs are cached, making eggs installation up 2.5x faster in some cases.

  • cached assets such as eggs and runtimes are now safe to share across platforms, as they are stored by checksum. In particular, caching both 32 and 64 bits eggs on windows is safe.

  • environments can now be exported and re-imported into a different machine.

  • EDM can now run without authentication (giving same access than free users)

  • EDM can run in so-called embedded mode, when integrated in a larger application (such as canopy). In embedded mode, the embedding application controls the settings and root directory for EDM.


  • edm shell should use running shell on windows (#58)

  • EDM should be able to run without auth setup (#325)

  • verify request validity before downloading index. (#328)

  • nested shells calls don’t nest $PATH anymore (#402)

  • show where packages came from in edm list (#458)

  • improve invalid settings error messages (#483)

  • give meaningful error message when enstaller is installed explicitly or implicitly (#487)

  • new command edm path -e <environment name> to return the plain root path of the env (#504)

  • environment persistance for modifiers (#509)

  • lockfile notification should indicate that global.lock is directory (#645)

  • revisit wording of message displayed to user when constraints are listed (#652)

  • use checksum to determine egg caching location (#672)

  • update can result in unexpected new solver solutions (#674)

  • cache extracted eggs to make installation faster (#697)

  • update the user agent string (#716)

  • add a canary in our dummy egginst/enstaller to detect actual enstaller installed (#720)

  • fix available handling (#724)

  • remove associated constraints when packages are uninstalled (#732)

  • update comment line in edm.yaml file for cached egg location (#744)

  • it should be possible to add constraint modifiers using edm constraints (#755)

  • tweak wording when creating new subshell (#761)

  • with the new egg scheme, fetch should not re-compute checksum if the egg is already there (#784)

  • rename mark-show command to list-manual (#795)

  • use “packages” instead of “requirements” w.r.t. constraint modifiers (#797)

  • environment export (#802)

  • execute command context even if there are no changes (#804)

  • MSI no longer adds installation folder to PATH. (#818)

  • handle unavailable repositories (#821)

  • better error message when settings can’t be validated. (#834)

  • add some settings examples in edm help configuration. (#838)

  • edm help prints help message when invoked without arguments (#842)


  • add appveyor support (#9)

  • specify and update the metadata for installed packages (#570)

  • cleanup OSError/IOError handling (#575)

  • use monotonic timers when measuring durations (#576)

  • installing egg should write the full content of EggMetadata version 1.4 (#618)

  • make setup_dummy_environment return the environment_info instead of prefix (#640)

  • polish internal update API (#657)

  • update message implies downgrade for packages which do not change versions (#664)

  • remove egginst imports (#679)

  • remove edm.network.fetcher.Fetcher (#701)

  • rename edm.network.fetcher to edm.network.asset_fetcher (#721)

  • unix binaries use new python static w/ statically linked ctypes. (#766)

  • remove UI to inject simple style auth into config file (#777)

Bug fixes

  • no-op updates can appear in install plans. (#320)

  • packages Manager seems not to honor Transactions (#413)

  • graceful handling of ctrl+c (#455)

  • fix python tag settings bug (#619)

  • if enstaller is installed in an env, new package installs fail with a KeyError (#694)

  • confusing error message when a user does not have access to a repository (#707)

  • windows installer adds invalid entry to System’s PATH (#734)

  • windows EDM installed to C:Enthoughtedm by default (#735)

  • don’t mention obsolete ‘{PLATFORM}’ feature of files_cache. (#750)

  • clearer message when no environment is specified. (#781)

  • failing tests when not using bash (#800)

  • crash when removing non-python environments (#826)

  • bypass Windows ExecutionPolicy settings. (#815)

  • remove symlinks when removing environment (#840)

  • edm help works with invalid configuration (#843)

Version 0.6.0


This release brings the following new features:

  • better and more fine-grained update/update-all behaviour

  • persistent constraint modifiers to workaround broken dependencies

  • new shell-based installers on linux and OS X

  • rudimentary protection around concurrent access to prevent two EDM instances to corrupt a root directory

EDM also starts to expose a public, documented API.

Internally, EDM is finally 100 % free of any enstaller/egginst code at runtime.


  • Default runtime version is now implementation specific in commands implying runtime installation (#211)

  • configure does not validate the token when input directly (#236)

  • Add a config topic to the help (#318)

  • EDM is now more robust against checksum failures (#375)

  • Improve update-all (#404)

  • One should mark updates as downgrade when relevant in our command messages (#418)

  • Report download and installed size, when reporting the expected changes (#454)

  • Self-extracting shell installers for linux/OS X (#508)

  • New progress behaviour for install/removal (#542)

  • Persistent constraint modifiers (#625)

  • Enable constraints display in install, remove, update and update-all commands. (#650)

  • Use the newly available sha256 for checksumming packages (#690)


  • Update satsolver lower bound to 0.3.1

  • Every command needing auth goes through the same auth setup (#245)

  • Settings does not store platform or python_tag anymore (#366)

  • os.path.exists and os.access(path, F_OK) are redundant (#385)

  • Factor out exception handling for commands that use the solver (#488)

  • Be consistent about __str__ vs __unicode__ (#561)

  • Use target runtime’s platform to decide where to cache fetched eggs (#616)

  • Don’t import egginst in EDM (#617)

  • Don’t import enstaller for installing eggs anymore (#620)

  • Use EggMetadata to parse eggs everywhere (#642)

  • Fetcher breaks into the hatcher layer to fetch a package (#663)

  • Use runtime information when computing repository info (#629)

  • Remove redundant PackageMetadata.python attribute. (#649)

  • Emit download events to the right topic in AssetFetcher (#682)

Bug fixes

  • Fix start/stop emitter to not emit stop when error occurs (#182)

  • We give an error to the user when trying to install packages in non-python environments (#224)

  • Requirements output by freeze can now be fed to install (#448)

  • Prevent removing activated environments. (#436)

  • Trying to create an enviroment with the same name fails with a trace back (#453)

  • KeyError while installing packages on windows 64 with EDM 0.5 release (#572)

  • Subscribing to package fetch events does not work (#597)

  • Installing egg w/ legacy egg info directory fails (#668)

  • Fix rm_rf to handle symlink like rm -rf does. (#644)

Changes since 0.3.0


  • errors are shown for unsatisfiable requests when using sat-solver

Version 0.3.0


  • polish the output of most commands

  • support for the new SAT solver. To use the new solver, add the line:

    solver_kind: 'sat'

    in your ~/.edm.yaml file

Bug fixes

  • invalid settings in configuration does not crash edm anymore (#213)

  • fix test for released versions (#344)


  • add info command to display detailed runtime information.

  • available-runtimes output is now computed with tabulate.

  • update to click 6.2

  • doc: topic’s help and quick intro are now consolidated from the same sources.

  • output is now more consistent across commands (#277)

  • by default, the prompt is now overriden in the shell command (#304)

  • experimental support for the new SAT solver (#315), as an opt-in option: you need to explicitly set it up in your ~/.edm.yaml.


  • package explicitly installed are now tracked internally, to help the new SAT solver (#307)

  • don’t use ETAG anymore for http request caching, as it is too unreliable (#336)

Version 0.2.0rc1

Released on 11.11.2015.

This release contains numerous bug fixes and improvements upon the initial prototype. From now on, we will try (but do not guarantee yet) backward compatibility at the CLI level and on-file formats.


  • support for alternative runtime’s implementation and languages (#196)

  • new configure command for easier onboarding (#237)

  • edm help accept topics (#215)

  • edm packages list now sort its output alphabetically (#206)

  • –insecure automatically disables urllib3 warnings (#223)

  • -v for verbose output now supported (#241)

  • edm –version is more informative (#243)

  • edm environments list now marks the activated environment (#252)

  • runtimes are now called environments to avoid confusion with brood runtimes (#240)

Bug fixes

  • edm search is fixed (#166)

  • Debian installer now works on Ubuntu 12.04 (#167)

  • edm does not crash when some package are missing during installation (#168)

  • ensure written values in edm yaml configuration are properly escaped (#190)

  • when creating a token, ensure it does not exist yet first (#246)

  • shell command does not crash anymore when the target environment does not exist yet (#251)


  • dependency solver actions are now executed through edm-only code. We don’t use the clumsy Enpkg class anymore

  • much better layering between edm.core and edm.commands/edm.cli. In particular, no code in edm.core writes into stdout or prompts for user interaction.

Version 0.1.0rc1

Initial release.

Released on 26.08.2015.

Main features

  • support for python 2 and python 3 runtimes.

  • python runtimes are upgradeable in-place

  • dummy enpkg and egginst for backward compatibility

  • seamless UI to switch between “runtimeless” mode and runtime mode

  • single file distribution on linux and os x

  • natives installers for every supported platform (rpm, deb, msi and osx pkg).