All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Fix
pdm venv create
not working when no using Conda.
- Now compatible with
pdm==v2.16.1
.
- Avoid making Conda concurrent executions when using
pdm add/remove/update/install/sync
commands.
- Fix
pdm init
not working after installing this plugin.
- Now compatible with
pdm==v2.15.4
. - Add
conda.active
config to activate/deactivate pdm-conda plugin.
- Only modify PDM config while the plugin is active.
- Now compatible with
pdm==v2.15.2
.
- Allow selecting a Conda environment on
pdm use
even if base environment is active. - Force Conda to always fetch all packages info con
conda create --dry-run
.
- Don't show duplicated Conda interpreters on
pdm use
. - Don't show base Conda env on
pdm env list
orpdm use
. - Write plugin related changes on
pdm venv create --with
. - Fix paths when using on Windows.
- Fix Conda environments not showing on Windows.
- Fix big introduced in last version.
- Fix locked packages missing groups when Conda resolution has cyclic dependencies.
- Ensure
conda.excludes
is always sorted when saving topyproject.toml
- Now compatible with
pdm==v2.15.1
.
- Fix locked packages missing groups when conflict with Conda constraints.
- Fix
pdm lock --refresh
failing with packages with extras.
- Add
conda.auto-exludes
config and auto-excludes behavior. - Now compatible with
pdm==v2.15.0
.
- Allow multiple channels specified using
pdm init --channel
. - Faster resolution time with mixed Conda and PyPi packages.
- Fix locked packages dropping information when running
pdm lock --refresh
. - Fix calling
conda
commands unnecessarily onpdm add/remove/update reuse
when lockfile exists. - Ensure all commands apply to the correct environment when using Conda.
- Fixed pdm not detecting Conda packages.
- Fixed
pdm list --tree --resolve
command not working with Conda packages.
- Now fails faster if Conda can't find a candidate and shows the error with verbose, suggesting possible Pypi only packages.
- Now compatible with
pdm==v2.12.4
.
- Fix adding resolution rounds when adding Conda packages.
- Conda packages specifiers are always sorted when printed.
- Avoid invoking
conda
commands every time a dependency with extras is added. - Reduce repeated requirements passed to
conda create
.
- Correctly parse lockfile with extras.
- Now compatible with
pdm==v2.12.3
.
- Conda packages support extras and markers correctly (even if they are not used by Conda).
- Now compatible with
pdm==v2.11.1
.
- Fix base candidate not appearing when used with extras.
- Fix error installing self.
- Force CondaCandidates for requirement with extras to depend on base candidate.
- If update to CondaCandidate then force Conda usage to remove and install.
- Fix Conda packages sometimes being recognized with a different version.
- Now compatible with
pdm==v2.10.3
.
- Stop trying to recognize the project name as a Conda package name.
- Don't write configs with default values to
pyproject.toml
.
- Now compatible with
pdm==v2.10.1
andpython>=3.10,<3.13
.
pdm lock --check
don't return error if Conda configuration is not found.
- Raise
NoConfigError
when specifies incorrect Conda related configs. - Add
conda.custom-behavior
config.
- Add PyPi mapping fixes.
- Ensure
pdm.conda
arrays can be saved as multiline array. - Fix Conda dependencies not being treated correctly when using
--conda
option withconda.as-default-manager
set tofalse
. - Fix lockfile formatting when
conda.as-default-manager
set tofalse
and Conda dependencies are present.
- Now compatible with
pdm>=v2.10.0
.
- Use lock strategies instead of flags.
pdm add -ce
or--conda-excludes
add PyPi packages to the excluded from Conda resolution.pdm add --conda-as-default-manager
sets Conda as default manager.
- Conda channels are correctly saved when added using
pdm add -c
command and Conda configuration was not initialized before. - Don't include dev groups when invoking
pdm lock -G :all --prod
. - Ensure
cross_platform
is always false when using Conda.
- Ensure excluded packaged defined with extras in base requirements are correctly treated on resolution.
- Exclude packages defined with extras if base requirement in
conda.excludes
.
- Now compatible with
pdm>=v2.9.1
. pdm init
now shows Conda managed interpreters if runner specifier.pdm venv
commands work with Conda managed environments.- Now PyPI-Conda mapping url can be set with
conda.pypi-mapping.url
config.
pdm lock --no-cross-platform
is forced.
- Resolver now respects resolution overrides.
- Only static URLs of the conda packages are stored in the lockfile.
- Now compatible with
pdm>=v2.7
. - Use lazy import to reduce the startup time of the CLI.
- If
conda.as-default-manager
istrue
then add requirements toconda.dependencies
if they aren't python packages when usingpdm add
without--conda
flag.
- Now compatible with
pdm>=v2.6
.
- Lockfile hash includes
pdm-conda
configs. - When using
-G :all
inpdm install/lock
considerpdm-conda
defined groups. - Ensure all requirements are considered for conda resolution update
- PyPi mapping fixes included in the package.
CondaSetupDistribution
now hasreq
property.
- All environment variables now use
PDM_CONDA
prefix to avoid conflicts. CondaEnvironment
python_dependencies
changed toenv_dependencies
and include runner dependencies.
- Conda commands now use
CondaRunner
values to avoid logging errors. - When using
conda/mamba
avoid listing PyPi packages as Conda managed.
- Fix explicit lockfile generation.
conda install
now uses explicit lockfile to avoid resolution.- Conda managed packages now save url and hash in
metadata
table of lockfile to match pdm behavior.
pdm add
now saves correct custom Conda package version in pyproject.toml.- Correctly parse Conda candidates when using
conda search
to find them on resolution.
- Config
conda.solver
to use Conda solver to resolve Conda requirements. CondaConfig.with_config
contextmanager to temporarily set a config.- Use
conda create
to get a resolution. - Add conda resolution to
CondaRepository
. - Add conda resolution to
CondaResolver
.
- Allow
CondaRequirement
to validate ifCandidate
is compatible. - Sort
CondaCandidates
instead of packages. Environment.python_requires
now matches installed python to force it in conda resolution.CondaResolver
now uses conda resolution.
- If
conda.as-defualt-manager
istrue
then add requirements toconda.dependencies
if it haschannel
orbuild_string
.
- Use Conda channels priority in package sorting.
CondaProject
now contains info from default_channels, virtual_packages and platform.
- Non-conda packages now get installed in the correct directory for python to find them.
- Fix
batched-commands
triggering unexpected behaviour. - Conda command execution fixes.
- PyPI-Conda mapping always returns name in lower to respect conda naming conventions.
- Config
conda.batched-commands
to useconda
install
andremove
batched commands. - Show runner commands when using flag
-vv
. - Show informative logs when using flag
-vv
.
- Avoid using Conda for file requirements resolutions and self building.
- Config
conda.excluded
changed toconda.excludes
.
pdm add
doesn't fail when using with a conda specifier.pdm add/remove
doesn't fail when using quited specifiers.- More Conda specifiers displayed correctly.
- Adding dependencies to pyproject with a conda specifier works correctly.
micromamba
andmamba
now remove only specified dependency.pdm info
shows correct packages location.- Avoid adding conda dependencies tables to pyproject.toml when not needed.
- Use
repoquery search
instead ofsearch
when runner ismamba
ormicromamba
.
- Parse conda packages version fixes.