Releases: conda/conda
Releases · conda/conda
23.7.1
Bug fixes
Contributors
23.7.0
Enhancements
- Add
conda.deprecations.DeprecationHandler.actionhelper to deprecateargparse.Actions. (#12493) - Add support for the FreeBSD operating system and register
freebsd-64as a known subdirectory for FreeBSD on x86-64. (#12647) - Do not mock
$CONDA_PREFIXwhen--nameor--prefixis provided. (#12696) - Add support for
sha256filters in the MatchSpec syntax (e.g.*[sha256=f453db4ffe2271ec492a2913af4e61d4a6c118201f07de757df0eff769b65d2e]). (#12654 via #12707) - Add a new health check to
conda doctordetecting altered packages in an environment by comparing expected and computedsha256checksums. (#12757) - Add new
pre_commandsandpost_commandsplugin hooks allowing plugins to run code before and aftercondasubcommands. (#12712, #12758, #12864) - Stop using
distutilsdirectly in favor of the vendored version insetuptools60 and later or standard library equivalents. (#11136) - Add a
CITATION.cfffile to the root of the repository to make it easier for users to cite conda. (#12781) - Add optional
CondaSubcommand.configure_parserallowing third-party plugins to hook into conda's argument parser. (#12814) - Only display third-party subcommands in
conda --helpand not for every other subcommand. (#12814, #12740) - Add a new config option,
no_plugins, a--no-pluginscommand line flag, and aCONDA_NO_PLUGINSenvironment variable that disables external plugins for built-in conda commands. (#12748) - Register plugins using their canonical/fully-qualified name instead of the easily spoofable entry point name. (#12869)
- De-duplicate plugin and legacy subcommands in
conda --help. (#12893) - Implement a 2-phase parser to better handle plugin disabling (via
--no-plugins). (#12910) - Refactor subcommand parsing to use a greedy parser since
argparse.REMAINDERhas known issues. (#12910)
Bug fixes
- Use
requests.exceptions.JSONDecodeErrorfor ensuring compatibility with differentjsonimplementations used by requests. This fixes a bug that caused only the first of multiple given source URLs to be tried. This also raises the minimum required requests version to 2.27.0. (#12683) - Don't export
__osxvirtual package whenCONDA_OVERRIDE_OSX="". (#12715) - Fix erroneous
conda deactivatebehavior of unsetting preexisting environment variables that are identical to those set duringconda activate. (#12769) - Correct third-party subcommands to receive remaining arguments instead of a blanket
sys.argv[2:]which brokeconda_clitesting. (#12814, #12910)
Deprecations
- Mark
conda.base.context.context.root_diras pending deprecation. Useconda.base.context.context.root_prefixinstead. (#12701) - Mark
conda.plugins.subcommands.doctor.cli.get_prefixas pending deprecation. Useconda.base.context.context.target_prefixinstead. (#12725) - Mark
conda.models.leased_path_entry.LeasedPathEntryas pending deprecation. (#12735) - Mark
conda.models.enums.LeasedPathTypeas pending deprecation. (#12735) - Mark
conda.common.temporary_content_in_fileas pending deprecation. Usetempfileinstead. (#12795) - Mark
conda.cli.python_apias pending deprecation. Useconda.testing.conda_clifixture instead. (#12796)
Docs
- Document how to use the new
pre_commandsandpost_commandsplugin hooks. (#12712, #12758) - Add docstrings to all public modules. (#12792)
- Auto-generate API docs using
sphinx-autoapi. (#12798) - Convert all manual redirects into config using
sphinx-reredirects. (#12798) - Revise the plugins index page to make it easier to understand how to create a conda plugin. (#12802)
- Add missing
conda envCLI docs. (#12841)
Other
- Update
tests/cli/test_main_rename.pyto use latest fixtures. (#12517) - Update
tests/test_activate.pyto test the new behavior. (#12769) - Re-enable all
conda_envtests and remove irrelevant tests. (#12813) - Convert all
unittest-style tests topytest-style. (#12819) - Convert
tests/test-recipesinto local noarch packages instead of relying on conda-test channel and local builds. (#12879)
Contributors
- @beeankha
- @conda-bot
- @dariocurr
- @jaimergp
- @jezdez
- @johanneskoester made their first contribution in #12683
- @jjhelmus
- @kalawac made their first contribution in #12738
- @kenodegard
- @schackartk made their first contribution in #12781
- @lesteve made their first contribution in #12715
- @ForgottenProgramme
- @marcoesters made their first contribution in #12863
- @mpotane made their first contribution in #11740
- @mattkram made their first contribution in #12730
- @morremeyer made their first contribution in #12871
- @mcg1969
- @travishathaway
- @pre-commit-ci[bot]
23.5.2
23.5.1
23.5.0
Enhancements
- Add
conda doctorsubcommand plugin. (#474) - Add Python 3.11 support. (#12256)
- Add
conda list --reverseto return a reversed list of installed packages. (#11954) - Switch from
setup.pytopyproject.tomland use Hatchling for our build system. (#12509) - Optimize which Python modules get imported during
conda activatecalls to make it faster. (#12550) - Add
conda_clifixture to replaceconda.testing.helpers.run_inprocess_conda_commandandconda.testing.integration.run_command. (#12592) - Add
tmp_envfixture to replaceconda.testing.integration.make_temp_env. (#12592) - Add
path_factoryfixture to replace custom prefix logic likeconda.testing.integration._get_temp_prefixandconda.testing.integration.make_temp_prefix. (#12592) - Refactor the way that the
Activatorclasses are defined inconda/activate.py. (#12627) - Warn about misconfiguration when signature verification is enabled. (#12639)
Bug fixes
conda cleanno longer fails if we failed to get the file stats. (#12536)- Provide fallback version if
conda.deprecations.DeprecationHandlerreceives a bad version. (#12541) - Ensure the default value for
defaultsincludesmsys2whencontext.subdiriswin-*on non-Windows platforms. (#12555) - Avoid
TypeErrorwhen non-string types are written to the index cache metadata. (#12562) conda.core.package_cache_data.UrlsData.get_urlno longer fails whenpackage_pathhas.condaextension. (#12516)- Stop pre-converting paths to Unix style on Windows in
conda.sh, so that they are prefix replaceable upon installation, which got broken by #12509. It also relies oncygpathat runtime, which allmsys2/cygwinbash versions on Windows should have available. (#12627)
Deprecations
- Mark
conda_env.pip_util.get_pip_versionas pending deprecation. (#12492) - Mark
conda_env.pip_util.PipPackageas pending deprecation. (#12492) - Mark
conda_env.pip_util.installedas pending deprecation. (#12492) - Mark
conda_env.pip_util._canonicalize_nameas pending deprecation. (#12492) - Mark
conda_env.pip_util.add_pip_installedas pending deprecation. (#12492) - Mark
conda_env.env.load_from_directoryas pending deprecation. (#12492) - Mark
python -m conda_env.cli.mainas pending deprecation. Useconda envinstead. (#12492) - Mark
python -m conda_envas pending deprecation. Useconda envinstead. (#12492) - Mark
conda.auxlib.packagingfor deprecation in 24.3.0. (#12509) - Rename index cache metadata file
.state.jsonto.info.jsonto track draft CEP. (#12669) - Mark
conda.testing.integration.get_conda_list_tupleas pending deprecation. Useconda.core.prefix_data.PrefixData().get()instead. (#12676) - Mark
conda.testing.encode_for_env_varas pending deprecation. (#12677) - Mark
conda.testing.integration.temp_chdiras pending deprecation. Usemonkeypatch.chdirinstead. (#12678)
Docs
- Change the README example from IPython Notebook and NumPy to PyTorch. (#12579)
- Discuss options available to properly configure mirrored channels. (#12583, #12641)
- Add
flake8-docstringstopre-commit. (#12620)
Other
- Update retry language in flexible solve and
repodatalogs to be less ominous. (#12612) - Improve
repodata/subdir_dataprogramming interface (#12521). Index cache metadata has changed to.info.jsonto better align with the draft CEP. Improve cache locking when usingjlap. Improvejlaplogging. (#12572) - Format with
blackand replacedpre-commit'sdarkerhook withblack. (#12554) - Format with
isortand addpre-commitisorthook. (#12554) - Add functional tests around conda's content trust code. (#11805)
- Enable
flake8checks that are now handled byblack. (#12620)
Contributors
- @beeankha
- @chbrandt made their first contribution in #12419
- @chenghlee
- @conda-bot
- @dholth
- @THEdavehogue made their first contribution in #12612
- @HeavenEvolved made their first contribution in #12496
- @eltociear
- @jaimergp
- @jezdez
- @johnnynunez made their first contribution in #12256
- @kenodegard
- @ForgottenProgramme
- @pkmooreanaconda
- @tl-hbk made their first contribution in #12604
- @vic-ma made their first contribution in #12579
- @pre-commit-ci[bot]
- @sausagenoods made their first contribution in #12631
23.3.1
Enhancements
- Fix and re-enable binstar tests. Replace custom property caching with
functools.cached_property. (#12495)
Bug fixes
- Restore default argument for
SubdirDatamethod used byconda-index. (#12513) - Include
conda.gateways.repodata.jlapsubmodule in package. (#12545)
Other
- Add linux-s390x to multi-arch ci/dev container. (#12498)
- Expose a
MINIO_RELEASEenvironment variable to provide a way to pinminioversions in CI setup scripts. (#12525) - Add
jsonpatchdependency to support--experimental=jlapfeature. (#12528)
Contributors
Full Changelog: 23.3.0...23.3.1
23.3.0
Enhancements
- Allow the use of environment variables for channel urls in
environment.yaml. (#10018) - Improved error message for
conda env createif the environment file is missing. (#11883) - Stop using
toolz.dicttoolz.mergeandtoolz.dicttoolz.merge_with. (#12039) - Add support for incremental
repodata.jsonupdates with--experimental=jlapon the command line orexperimental: ["jlap"]in.condarc(#12090). Note: switching between "use jlap" and "don't use jlap" invalidates the cache. - Added a new
conda.deprecationsmodule for easier & standardized deprecation. Includes decorators to mark functions, modules, classes, and arguments for deprecation and functions to mark modules, constants, and topics for deprecation. (#12125) - Adds a new
channel_settingsconfiguration parameter that will be used to override arbitrary settings on per-channel basis. (#12239) - Improve speed of
repodata.jsonparsing by deferring creation of individualPackageRecordobjects. (#8500) - Refactor subcommand argument parsing to make it easier to understand. This calls the plugin before invoking the default argument parsing. (#12285)
- Handle I/O errors raised while retrieving channel notices. (#12312)
- Add support for the 64-bit RISC-V architecture on Linux. (#12319)
- Update vendored version of
py-cpuinfoto 0.9.0. (#12319) - Improved code coverage. (#12346, #12457, #12469)
- Add a note about
use_only_tar_bz2being enabled onPackagesNotFoundErrorexceptions. (#12353) - Added to conda CLI help that
conda remove -n <myenv> --allcan be used to delete environments. (#12378) - Handle Python import errors gracefully when loading conda plugins from entrypoints. (#12460)
Bug fixes
- Fixed errors when renaming without an active environment. (#11915)
- Prevent double solve attempt if
PackagesNotFoundErroris raised. (#12201) - Virtual packages follow
context.subdirinstead ofplatform.system()to enable cross-platform installations. (#12219) - Don't export
__glibcvirtual package whenCONDA_OVERRIDE_GLIBC="". (#12267) - Fix
arg_parsepass-through for--versionand--helpinconda.xsh. (#12344) - Filter out
Nonepath values frompwd.getpwall()on Unix systems, for users without home directories, when running as root. (#12063) - Catch
ChunkedEncodingErrorexceptions to prevent network error tracebacks hitting the output. (#12196 via #12487) - Fix race conditions in
mkdir_p_sudo_safe. (#12490)
Deprecations
- Drop
toolz.itertoolz.uniquein favor of customconda.common.iterators.uniqueimplementation. (#12252) - Stop using
OrderedDict/odictsincedictpreserves insert order since Python 3.7. (#12254) - Mark
conda._vendor.boltonsfor deprecation in 23.9.0. (#12272, #12482) - Mark
conda_exeincontext.pyand a topic inprint_package_infocli/main_info.pyfor official deprecation. (#12398) - Remove unused
chain,methodcaller,mkdtemp,StringIOimports inconda.common.compat; apply other fixes fromruff --fix .in the test suite. (#12294) - Remove unused optimization for searching packages based on
*[track_features=<feature name>]. (#12314) - Remove Notebook spec support from
conda env; this was deprecated already and scheduled to be remove in version 4.5. (#12307) - Mark
conda_exeincontext.pyand a topic inprint_package_infocli/main_info.pyfor official deprecation. (#12276) - Marking
conda.utils.hashsum_fileas pending deprecation. Useconda.gateways.disk.read.compute_suminstead. (#12414) - Marking
conda.utils.md5_fileas pending deprecation. Useconda.gateways.disk.read.compute_sum(path, "md5")instead. (#12414) - Marking
conda.gateways.disk.read.compute_md5sumas pending deprecation. Useconda.gateways.disk.read.compute_sum(path, "md5")instead. (#12414) - Marking
conda.gateways.disk.read.compute_sha256sumas pending deprecation. Useconda.gateways.disk.read.compute_sum(path, "sha256")instead. (#12414) - Drop Python 3.7 support. (#12436)
Docs
- Added docs for
conda.deprecations. (#12452) - Updated some instances of "Anaconda Cloud" to be "Anaconda.org". (#12238)
- Added documentation on the specifications for
conda searchandconda install. (#12304) - Mark
conda.utils.safe_openfor deprecation. Use builtinopeninstead. (#12415)
Other
- Update
<cache key>.json.staterepodata.jsoncache format; checkmtimeagainst cachedrepodata.json. (#12090) - Skip redundant
tar --no-same-ownerwhen running as root on Linux, since newerconda-package-handlingavoids setting ownership from the archive. (#12231) - Add additional extensions to
conda.common.pathfor future use. (#12261) - Pass
--covin test runner scripts but not insetup.cfgdefaults, for easier debugging. (#12268) - Constrain conda-build to at least >=3.18.3, released 2019-06-20. (#12309)
- Improve
start.batWindows development script. (#12311) - Provide conda-forge-based Docker images and fix the bundled
miniobinary. (#12335) - Add support for conda-forge-based CI runtimes. On Linux (all architectures), unit & integration tests will use Python 3.10. On Windows, Python 3.8. On macOS, only the unit tests are run with conda-forge (instead of
defaults!), using Python 3.9. (#12350, #12447 via #12448) - Fix testing data issue where the
subdirentry in some files was mismatched. (#12389) - Initialize conda after installing test requirements during CI. (#12446)
- Speedup pre-commit by a factor of 15 by removing ignored hooks (
pylint/bandit). This locally reduces the pre-commit runtime from ~43sec to 2.9sec and thus makes it possible to run pre-commit in a loop during development to constantly provide feedback and style the code. (#12466)
Contributors
- @AdrianFreundQC made their first contribution in #11883
- @sanzoghenzo made their first contribution in #12074
- @beeankha
- @conda-bot
- @dbast
- @dholth
- @FelisNivalis made their first contribution in #11915
- @gforsyth made their first contribution in #12344
- @eltociear made their first contribution in #12377
- @jaimergp
- @jezdez
- @jjhelmus
- @kannanjayachandran made their first contribution in #12363
- @kathatherine
- @kenodegard
- @ForgottenProgramme
- @ryanskeith made their first contribution in #12439
- @31Sanskrati made their first contribution in #12371
- @travishathaway
- @pre-commit-ci[bot]
Full Changelog: 23.1.0...23.3.0
23.1.0
Bug fixes
- Detect CUDA driver version in subprocess. (#11667)
- Fixes the behavior of the
--no-userflag inconda initso that a user's.bashrc, etc. remains unaltered, as expected. (#11949) - Fix several more user facing
MatchSpeccrashes that were identified by fuzzing efforts. (#12099) - Lock
sys.stdoutto avoid corrupted--jsonmultithreaded download progress. (#12231)
Docs
- Optional Bash completion support has been removed starting in v4.4.0, and not just deprecated. (#11171)
- Documented optional
channel::packagesyntax for specifying dependencies inenvironment.ymlfiles. (#11890)
Other
- Refactor
repodata.jsonfetching; update on-disk cache format. Based on work by @FFY00. (#11600) - Environment variable overwriting WARNING is printed only if the env vars are different from those specified in the OS. (#12128)
- Added
conda-libmamba-solverrun constraint. (#12156) - Updated
ruamel.yamlversion. (#12156) - Added
tqdmdependency. (#12191) - Use
itertools.chain.from_iterableinstead of equivalenttlz.concat. (#12165) - Use
toolz.uniqueinstead of vendored copy. (#12165) - Use
itertools.isliceinstead oftoolz.take. (#12165) - Update CI test workflow to only run test suite when code changes occur. (#12180)
- Added Python 3.10 canary builds. (#12184)
Contributors
- @beeankha
- @dholth
- @dariocurr made their first contribution in #12128
- @jezdez
- @jay-tau made their first contribution in #11738
- @kenodegard
- @pkmooreanaconda
- @sven6002 made their first contribution in #12162
- @ReveStobinson made their first contribution in #12213
- @travishathaway
- @XuehaiPan made their first contribution in #11667
- @xylar made their first contribution in #11949
- @pre-commit-ci[bot]
Full Changelog: 22.11.1...23.1.0
22.11.1
Bug fixes
- Restore default virtual package specs as in 22.9.0 (#12148)
- re-add
__unix/__winpackages - restore
__archspecversion/build string composition
- re-add
Other
- Skip test suite for non-code changes. (#12141)
Contributors
Full Changelog: 22.11.0...22.11.1
22.11.0
Enhancements
- Add LD_PRELOAD to env variable list. (#10665)
- Improve CLI warning about updating conda. (#11300)
- Conda's initialize block in the user's profiles will check whether the conda executable exists before calling the conda hook. (#11374)
- Switch to
tqdmas a real dependency. (#12005) - Add a new plugin mechanism. (#11435)
- Add an informative message if explicit install fails due to requested packages not being in the cache. (#11591)
- Download and extract packages in parallel. Greatly speeds up package downloads when latency is high. Controlled by the new
fetch_threadsconfig parameter, defaulting to 5 parallel downloads. Thanks @shuges-uk for reporting. (#11841) - Add a new plugin hook for virtual packages and convert existing code for virtual packages (from index.py) into plugins. (#11854)
- Require
ruamel.yaml. (#11868, #11837) - Stop using
toolz.accumulate. (#12020) - Stop using
toolz.groupby. (#11913) - Remove vendored
sixpackage. (#11979) - Add the ability to extend the solver backends with the
conda_solversplugin hook. (#11993) - Stop using
toolz.functoolz.excepts. (#12016) - Stop using
toolz.itertoolz.concatv. (#12020) - Also try UTF16 and UTF32 encodings when replacing the prefix. (#9946)
Bug fixes
conda env updatewould ask for user input and hang when working with pip installs of git repos and the repo was previously checked out. Tell pip not to ask for user input for that case. (#11818)- Fix for
conda updateandconda installissues related to channel notices. (#11852) - Signature verification printed
Nonewhen disabled, changes defaultmetadata_signature_statusto an empty string instead. (#11944) - Fix importlib warnings when importing conda.cli.python_api on python=3.10. (#11975)
- Several user facing MatchSpec crashes were identified by fuzzing efforts. (#11999)
- Apply minimal fixes to deal with these (and similar) crashes. (#12014)
- Prevent
condafrom using/bin/sh+exectrick for its own entry point, which drops$PS1on some shells (#11885, #11893 via #12043). - Handle
CTRL+Cduring package downloading more gracefully. (#12056) - Prefer the outer name when a MatchSpec specifies a package's name twice package-name[name=package-name] (#12062)
Deprecations
- Add a pending deprecation warning for when importing
tqdmfromconda._vendor. (#12005) - Drop
ruamel_yamlandruamel_yaml_condain favor ofruamel.yaml. (#11837) context.experimental_solveris now marked for pending deprecation. It is replaced bycontext.solver. The same applies to the--experimental-solverflag, theCONDA_EXPERIMENTAL_SOLVERenvironment variable, and theExperimentalSolverChoiceenum, which will be replaced by--solver,EXPERIMENTAL_SOLVERandSolverChoice, respectively. (#11889)- Mark
context.conda_privateas pending deprecation. (#12101)
Docs
- Add corresponding documentation for the new plugins mechanism. (#11435)
- Update conda cheatsheet for the 4.14.0 release. The cheatsheet now includes an example for
conda rename. (#11768) - Document conda-build package format v2, also known as the
.conda-format. (#11881) - Remove
allow_other_channelsconfig option from documentation, as the option no longer exists. (#11866) - Fix bad URL to "Introduction to conda for Data Scientists" course in conda docs. (#9782)
Other
- Add a comment to the code that explains why .bashrc is modified on Linux and .bash_profile is modified on Windows/macOS when executing
conda init. (#11849) - Add
--machand--archoptions todev/start. (#11851) - Remove encoding pragma in file headers, as it's not needed in Python 3 anymore. (#11880)
- Refactor
conda init SHELLSas argparse choices. (#11897) - Drop pragma fixes from pre-commit checks. (#11909)
- Add pyupgrade to pre-commit checks. This change affects many files. Existing pull requests may need to be updated, rebased, or merged to address conflicts. (#11909)
- Add aarch64 and ppc64le as additional CI platforms for smoke testing. (#11911)
- Serve package files needed for testing using local server. (#12024)
- Update canary builds to guarantee builds for the commits that trigger workflow. (#12040)
Contributors
- @arq0017 made their first contribution in #11810
- @beeankha
- @conda-bot
- @dbast
- @dholth
- @erykoff
- @consideRatio made their first contribution in #12028
- @jaimergp
- @jezdez
- @kathatherine
- @kenodegard
- @ForgottenProgramme made their first contribution in #11926
- @hmaarrfk made their first contribution in #9946
- @NikhilRaverkar made their first contribution in #11842
- @pavelzw made their first contribution in #11849
- @pkmooreanaconda made their first contribution in #12014
- @fragmede made their first contribution in #11818
- @SatyamVyas04 made their first contribution in #11870
- @timhoffm
- @travishathaway
- @dependabot made their first contribution in #11965
- @pre-commit-ci[bot]
- @wulmer
Full Changelog: 22.9.0...22.11.0