Release Notes
4.0.0
Fixes
Do not copy API token passed as option into new config file (#2640)
Do not ignore “–disable-precompilation” option when installing zbundles (#2662)
Breaking changes
Default Python version is now 3.11 (#2668)
Default platform on linux systems with recent glibc >= 2.28 is now rh8 (#2668)
EDM requires more recent glibc >= 2.28 so will not work on older systems (e.g. rh7).
Remove support for old enstaller configurations (#2640, #2653)
Maintenance
Use Python 3.11.10 for the EDM application (#2648, #2649)
Update EDM application runtime and developer dependencies (#2654, #2659)
Add documentation info for the endist.dat file format (#2638)
Generate SBOM for EDM CLI installers (#2596)
Update theme for the EDM documentation (#2630)
Update CI workflow to upload installers (#2603, #2600, #2624, #2639)
Add links to the sbom files in the EDM documentation (#2613)
Fix tests to not hang when run on non-iteractive shells (#2621)
EDM CLI SBOM
3.7.0
Enhancements
Fixes
Fix edm create-token –inject when the current API token in the config file or the environment is invalid. Reference: #2607
Maintenance
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
3.6.0
Fixes
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
Maintenance
Update EDM documentation and cli help to list all environment variables used by EDM. Reference: #2578
Port EDM to Python 3.8. Reference: #2585
3.5.0
Enhancements
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
Fixes
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
Maintenance
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
3.4.0
Features
The edm info
command now prints out proxy/network information.
Reference : #2417
Fixes
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
Enhancements
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
Maintenance
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
3.3.1
Fixes
Fixed an issue with creating environments on windows. Reference: #2520
Fixed an issue with options being passed into applications. Reference: #2503
3.3.0
Enhancements
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
Fixes
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
Maintenance
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
3.2.5
Fixes
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
Maintenance
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
Enhancements
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
3.2.4
Fixes
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
Maintenance
Changed the authorization prompt to ask for a username instead of an email address. Reference: #2416
3.2.3
Maintenance
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
3.2.2
Fixes
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
3.2.1
Fixes
Refactored EDM environment registration so that it happenes consistently.
3.2.0
Fixes
Fixed an issue where incorrect permissions prevented EDM-GUI from launching on CentOS.
Enhancements
Added support for PEP514 on Windows. EDM created environments will now create registry entries that can be seen by tools like VSCode.
Maintenance
Updated copyright dates in license headers.
Added MSVC license to Windows installer.
3.1.1
Fixes
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.
3.1.0
Enhancements
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).
Maintenance
Update the version of Python used when building EDM (to 3.6.12).
3.0.1
Fixes
Fixes bug where app install and app search would fail to install/search for applications compatible with the current OS
3.0.0
Enhancements
Added –platform flag to edm app list-available
Made rh7 default platform (for rh7 compatible systems)
2.5.0
Enhancements
Updated EDM GUI to 10.3.0, which adds a search and filter box.
2.4.1
Bug fixes
Re-enable app signing for Windows
Changed api-token creation logic to be compatible with newer versions of brood.
2.4.0
Enhancements
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
2.3.0
Enhancements
For GUI, “Open config file” item in the Tools menu and config file watcher added
Fixes
In the GUI, manual changes in the config file will no longer be overwritten
Maintenance
Remove dead code
Use multibranch pipeline for master builds
2.2.0 (2020-02-19)
Enhancements
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
Documentation
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
Maintenance
Adjusted version label to display EDM version by default and GUI version in a tooltip
Internals
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)
Enhancements
There is a new
--add-repository
option foredm search
,edm install
, andedm 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).
Maintenance
Update the documentation regarding EDM GUI and CLI (#2212).
Internals
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)
Changes
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).
Enhancements
Sign binaries and notarize Mac installer (#2080, #2079).
Support a
gui
entry in the EDM.yaml config file (#2023).Support
ls
/rm
as shortcuts forlist
/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).
Maintenance
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).
Internals
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)
Changes
Make
--purge
the default when removing an environment or application (#1971, #2028).
Enhancements
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
andedm 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).
Maintenance
Remove obsolete roadmap from documentation (#1963).
Fix misleading names of release files (#1962).
Update help for edm upgrade-all (#1976).
Internals
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)
Enhancements
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.
Internals
Fix EDM jenkins ci/cd builds (#1926, #1947).
Fix errors detected by recent flake8 release (#1926).
1.10.1 (2018-12-19)
Enhancements
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 aLICENSE
file installed along with EDM (#1866).
Documentation
Update the installer documentation (#1838).
Add documentation about updating the
bundle_repositories
configuration option in order to find application bundles in repositories other thanenthought/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 afterbundle generate
on the command line then you should move those options to be before thebundle generate
part of the command line (#1852)
Bug fixes
Fix error message when searching for an EDM application which is not found (#1856).
Internals
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)
Enhancements
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 theenvironments
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 theedm info
report (#1799).
Documentation
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
andedm 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).
Internals
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
Bundles
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.
Applications
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.
Enhancements
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).
Internal
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)
Enhancements
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
andmark-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).
Internals
Updated okonomiyaki version (0.17.3)
Better testing of the samefile function (#621).
1.8.3 (2017-10-27)
Bugfix release of edm
Enhancements
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)
Internals
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.
Highlights
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
andedm list
.support for repacking wheels to Enthought-format eggs using the
edm repack-wheel
command.
Enhancements
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).
Doc
add documentation for
bundles
(#1462).
Bug fixes
allow removing petrified environments by providing the
--purge
flag toedm 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).
Internals
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.
Highlights
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.
Enhancements
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)
Doc
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)
Internals
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.
Highlights
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
Note
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.
Enhancements
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 toenvironments
(#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)
Internals
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)
1.5.2 (2017-04-18)
Released on 18th April 2017.
Bug fixes
fix edm run on windows (#1438)
1.5.1 (2017-04-13)
Highlights
each environment runtime’s sha256 and repository are not tracked (#1379)
backports bundle metadata format 2.0 (#1385, #1387)
Internals
edm.__main__.main now takes an args argument (#1359)
bundles now use an object model (#1360)
simplesat is updated to 0.8.1 (#1369)
increase timeout in rename on windows (#1426)
Bug fixes
fix pkg-metadata parsing to be robust about .DS_store and other OS-created files presence (#1298)
bundle import does not respect order of installation (#1307)
fix edm run behaviour on windows when given command with args (#1308)
fix history when upgrade-all command is used (#1363)
fix/update library list in edm versions (#1370)
1.5.0 (2017-03-15)
No functional changes compared to rc2.
Internals
backports improvements to CI (#1356)
1.5.0rc2 (2017-03-14)
This fixes 2 issues detected in rc1:
egg post install scripts are now run as if they were executed through the edm run command (#1344).
update okonomiyaki to 0.16.9 to parse PKG-INFO format 1.2 (#1350)
1.5.0rc1 (2017-03-13)
This minor release brings the usual set of bug fixes and improvements. It is recommended for all users to upgrade.
Highlights
new command upgrade-all to support updating every installed package to the latest version (#1330). update-all is deprecated in favor of update –all.
new command versions to list all the important lib names. (#1285)
Bug fixes
-e bash installer flag does not work (#1207)
new entry point can be from wrong (parent) environment (#1208)
error on importing egginst.utils (#1264)
EDM activate scripts for python3 do not setup PATH correctly on windows (#1203)
“Update All” in PackMan: ValueError: max() arg is an empty sequence (#1270)
permissions issues in PKG-INFO files (#1277)
edm repack-egg bypasses -a arguments (#1306)
handle Ctrl+C gracefully in environment’s edm entry point (#1318)
better error handling for people trying to execute edm-activate (#1319)
edm run – command should not crash if command is not found (#1325)
introduce egginst.utils.rm_rf to fix some post install scripts. (#1333)
Internals
edm installer on OSX should not use system libssl ? (#1244)
update binary EDM’s python to use 2.7.13. (#1288)
update dependencies for attrs/zipfile. (#1337)
1.4.0 (2017-01-06)
This minor release brings the usual set of bug fixes and improvements. It is recommended for all users to upgrade.
Highlights
support running edm from C:Program Files (#1181)
edm info: include prefix of activated environment (#1218)
edm envs create now takes a –platform argument to install different (but compatible) platforms (#1269)
Bug fixes
confusing help message from edm egginst –help (#1210)
error messages hard to read in Windows Command Prompt (#1252)
edm shell should work even when SHELL is not defined (#1236)
default .edm.yaml should not include enthought/pypi (#1219)
in embedded mode, edm overrides the embedded configuration (#1261)
fix egginst.main –remove to handle <name>. (#1271)
Internals
allowing edm within edm (#1159)
1.3.0 (2016-12-02)
This minor release brings the usual set of bug fixes and improvements. It is recommended for all users to upgrade.
Highlights
use click.Choice to enumerate possible implementations, to make the implementation discoverable (#1104)
history now shows which command was executed for each transaction (#1113)
edm run now prints a message for segfaulting commands (#1200)
edm plumbing fetch-and-install has a new –bypass-matching-requirements flag to not error out for already installed matching requirements
edm repack-egg now accepts an optional path for endist.dat (#1222)
Bug fixes
edm environments upgrade is fixed (#1190)
error out when custom root directory is not absolute (#1185, #1221)
Internals
expose abi and language_version in RuntimeMetadata objects (#1225)
branding fixups (#1089, #1180, #1191)
1.2.0 (2016-10-15)
This version fixes some issues, and adds a few useful features. It is recommended for all users to upgrade.
Highlights
fix the egregious Access Denied error on windows
edm-activate batch and powershell scripts included in the windows installers:
# This will activate the given environment in the current shell, ala # virtualenv. $ edm-activate <environment-name>
add a clone subcommand in edm environments to create new environments as copies of existing ones:
# Create a new environment bar which is an exact copy of foo (same # python version, same packages, etc.) $ edm environments clone -e foo bar
Enhancements
implement edm-activate for .bat and .ps1 (#930)
provide better error message for WindowsError: Access is Denied (#1063)
unable to shell into environment when in environment directory (#1064)
edm info should not display cache information (#1116)
speed up travis-ci builds (#1122)
implement force to edm envs remove (#1127)
fix handling of files_to_install.txt on windows (#1130)
fix traceback printed when exiting out of a long running EDM shell (#1143)
clone environments command (#1154)
replace Sheeplessly with more direct wording (#1163)
Internals
create a nightly Jenkins job for building doc, remove it from travis-ci (#684)
update roadmap in doc (#1071)
document release process (#1139)
docs: Add docs for updating gh-pages and installers links post-release (#1145)
use wheel caching on travis-ci. (#1150)
experimental: use latest PyPy in travis-ci(#1157, #1158)
fix gh-pages script to copy contents of html directory (#1171)
1.1.0 (2016-12-13)
This is EDM 1.1. This version fixes some issues, and adds a few useful features. It is recommended for all users to upgrade.
Highlights
This release brings the following new features:
a tentative plumbing CLI to help for a new internal edm-based buildsystem. This (private) CLI is not stable and can change at anytime
every command changing the packages’ version set in an environment now checks whether the environment is consistent or not
a new edm fix-broken command to fix broken dependencies
the ability to install 32 bits environments in 64 bits EDM (windows-only)
logfile support with edm –log-file (or the configuration file)
Enhancements
user command to validate environment or make it consistent (#872)
it should be possible to install 32 bits runtimes on 64 bits windows (#896)
user/CLI Docs polishing (#1019)
track inconsistencies in PackagesManager methods using the solver (#1087)
add some “plumbing” commands (#1096)
add CLI for plumbing commands. (#1097)
add plumbing command are-packages-installed (#1098)
add plumbing environment-info (#1109)
logfile support (#1110)
Internals
flake8 failures with new 3.0 release (#964)
write a script to easily update gh-pages (#1083)
Bug fixes
search ignores –version if an environment exists (#1044)
fix test suite when running on a released version (#1070)
purge flag does not work on partially removed environment (#1055)
post install scripts result in cmd.exe consoles popping up when used from GUI (canopy). (#1081)
require attrs < 16.1.0 to support okonomiyaki 0.16.3 (#1108)
use abspath in prefix check (#1115)
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.
Highlights
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
Enhancements
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)
Internals
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.
Highlights
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.
Enhancements
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)
Internals
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
Highlights
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.
Enhancements
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)
Internals
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
Enhancements
errors are shown for unsatisfiable requests when using sat-solver
Version 0.3.0
Highlights
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)
Enhancements
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.
Internals
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.
Enhancements
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)
Internals
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).