- 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 theenvironment.devenv.yml
file (#164).
- Now it is possible to use mamba with
conda-devenv
(#134):- Pass
--env-manager
in the command-line. - Set the
CONDA_DEVENV_ENV_MANAGER=mamba
environment variable.
- Pass
- 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.