- Previously the
name
,channels
, andplatforms
keys would only be overwritten by the rootdevenv.yml
file (the one use to invokeconda devenv
with). Now any downstreamdevenv.yml
file will override these keys, with the most downstreamdevenv.yml
file "winning", which was always the intended behavior.
- Dependency order is no longer sorted automatically, instead the order is preserved as they are defined in the
*.devenv.yml
files. Usually this would not matter, but it is important forpip
dependencies which declare development installations, as it is important that those happen in the specified order.
- Fixed handling of constraints when processing lock files and dependencies include a pip section.
- The
CONDA_DEVENV_USE_LOCKS
can be used to change the default value of--use-locks
. Useful to set on CI to ensure lock files are being used.
- Fixed bug where the platform selectors of included
devenv.yml
files were not being honored when rendering lock files.
- Added support for version constraints in
devenv.yml
files. Consult the docs. - Improved message with
--use-locks=yes
and no lock files are found. - Force flush calls when reporting progress updates, which improves seeing these updates on CI.
- New workflow to work with lock files, using conda-lock. Consult the docs.
- Added full type annotations. Some of the parameters were changed from
str
toPath
to make the API more clearer. - Python 3.7, 3.8, and 3.9 are no longer supported. Note that
conda-devenv
installed in a Python 3.10+ conda root can still be used to work with environments in those versions. - Dropped an internal hack that attempted to circumvent bugs in conda's
--prune
implementation by truncating the install history file: we suspect this is no longer needed and might cause more harm than good.
- Added
aarch64
andarm64
selectors (#166). - Fixed bug when an empty
environment:
key is declared in the ``environment.devenv.yml``file (#164).
- Now it is possible to use mamba with
conda-devenv
(#134): - Pass--env-manager
in the command-line. - Set theCONDA_DEVENV_ENV_MANAGER=mamba
environment variable.
- Add support for mamba (#110).
- Correctly handle editable installs when using pip dependencies (#113).
- New
get_env
function to handle environment variables in Jinja contexts so it conveys better error messages in case of missing/invalid environment variables.
- Drop support for Python 2.7, 3.4, and 3.5.
- Correctly parse relative includes without jinja root.
- New
--verbose
flag which is passed on toconda
.
- Accept package version specifiers containing upper case letters (#95).
- Correctly support git and mercurial repositories in
pip
dependencies (#92).
- Remove yaml load warnings by using
yaml.safe_load
instead ofyaml.load
. - Fix
NoneType object is not iterable
error whenincludes
is empty.
New
is_included
jinja variable which is a boolean indicating if the current file was included by anotherdevenv.yml
file (True
) or it is the original file passed toconda devenv
(False
) (#72).Added shortcuts to common jinja 2 checks, for example
win
which is equal tosys.platform.startswith("win")
(#75).Added support conda-build-style YAML line comments (`` # [win]``) (#79).
New
min_conda_devenv_version
jinja2 function that can be used to specify a minimum conda-devenv version:{{ min_conda_devenv_version("1.1") }} name: my-environment
This is recommended when using new features so users will be shown a descriptive error message instead of subtle failures (#81).
- Do not fail if history file does not exists (#66).
- Obtain
envs_dir
without using a subprocess (#67).
- Find correct env directory through
envs_dir
instead of matching first inenvs
. This makes environment directory location more reliable in newer conda versions.
- Fix problem with channel specification being wrongly exported (#62).
- Truncate the environment's history file to have the old "prune" behavior when needed (#59).
- Add --version flag (#47).
- Provide a better error message when 'environment.devenv.yml' file is not found (#48).
- Support for pip on dependencies section (#55).
- Applies an "AND" when merging dependencies (#53).
- On Mac generates the same scripts as for Linux (no longer
.bat
files).
- Handle
None
correctly, which actually fixes (#49).
- Fixed major bug where activate/deactivate scripts were not being generated (#49).
conda-devenv
no longer requiresconda
to be onPATH
to work (#45).
- Fix conda-forge package.
- Fix activate and deactivate
bash
scripts: variables not in the environment before activation are now properly unset after deactivation. - Fix activate and deactivate
bash
scripts: quote variables when exporting them.
- New option
--print-full
, which also prints the expandedenvironment:
section.
- Fix entry point call to
main
.
conda-devenv
now can receive standardenvironment.yml
files, in which case the file will just be forwarded toconda env update
normally.