[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

24.9.0

Compare
Choose a tag to compare
@kenodegard kenodegard released this 30 Sep 18:31
· 8 commits to 24.9.x since this release
0ea91b5

✨ Special announcement ✨

This is an announcement about an important and positive future change in conda's functionality:

Following feedback from conda users about the pre-configuration of the conda code base to favor channels from Anaconda Inc, we've started the process to deprecate hardcoding Anaconda's channels as the default set of channels in the conda source code, which is a remnant of conda's incubation at the company.

In the future, we will rely on providers of conda distributions, such as miniforge or Anaconda (including miniconda), to pre-configure their preferred channels, e.g. by running the necessary conda config --set channels command.

We're also going to continue to work on improving channel management in the forseeable future and would love to get your feedback.

Enhancements

  • Add conda.core.index.Index as a faster drop-in replacement of the realized dictionary index. Note: The loggers are no longer implicitly initialized when fetching the index. Instead, you must explicitly call conda.gateways.logging.initialize_logging. (#13880, #14267)
  • Alias conda env remove command to conda remove --all. (#13977)
  • Add a new health check to conda doctor that detects if the REQUESTS_CA_BUNDLE env var points to a non-existent file. (#12905 via #14037)
  • Add --sha256 flag to conda list --explicit so it lists URLs with a SHA256 hash instead of MD5 and make conda install|create compatible with these inputs. (#2903, #7882 via #14048)
  • Report conda version used to generate a @EXPLICIT text file. (#14048)
  • Update health checks outputs for consistency. (#14049 via #14079)
  • Fix Windows to Unix path conversion to handle UNC mounts and root paths. (#14157)
  • Add a new denylist_channels config option and CONDA_DENYLIST_CHANNELS environment variable to explicitly deny using specific channels globally, which is complementing the already existing allowlist_channels config option. (#14176 via #14196)
  • Add conda commands subcommand. (#14215)
  • Add conda.testing.fixtures.session_capsys. Use this to capture stdout and stderr within module, package, and session scoped fixtures. (#14243)
  • Add conda.testing.fixtures.session_conda_cli. Use this to invoke conda commands within module, package, and session scoped fixtures. (#14243)
  • Add conda.testing.fixtures.session_tmp_env. Use this to create a conda environment within module, package, and session scoped fixtures. (#14243)

Bug fixes

  • Prevent directories that contain conda environments from being specified as an environment prefix when creating new envs; this provides guardrails against the accidental deletion of environments via commands such as conda rename. (#13955)
  • Enable conda doctor to check whether the environment exists or not before trying to generate a health report. (#14042 via #14112)
  • Fix conda.common.configuration.ObjectParameter's ability to appropriately handle defaults. (#14148 via #14149)
  • conda remove [env] --all command no longer deletes empty parent directories for environments that are removed. (#14173)
  • Raise an error when attempting to remove non-existent environment. (#14174 via #14199)
  • Add pre-/post-command hooks to activation subcommands (activate, deactivate, reactivate, hooks, and commands). (#14211 via #14212)
  • Replace extensions from end of filename only, not str.replace(), in two places. (#14241)
  • Fix PowerShell activation/deactivation to properly unset environment variables using $Env:VARIABLE = $null instead of $Env:VARIABLE = "". (#14237 via #14246)

Deprecations

  • Mark conda.core.index.get_index as pending deprecation. Use conda.core.index.Index instead. (#13880)
  • Mark conda.core.index.get_reduced_index as pending deprecation. Use conda.core.index.ReducedIndex instead. (#13880)
  • Mark conda.core.index.fetch_index as pending deprecation. Use conda.core.index.Index instead. (#13880)
  • Mark conda.core.index._supplement_index_with_prefix as pending deprecation. Use conda.core.index.Index.reload instead. (#13880)
  • Mark conda.core.index._supplement_index_with_cache as pending deprecation. Use conda.core.index.Index.reload instead. (#13880)
  • Mark conda.core.index._supplement_index_with_features as pending deprecation. Use conda.core.index.Index.reload instead. (#13880)
  • Mark conda.core.index._supplement_index_with_system as pending deprecation. Use conda.core.index.Index.reload instead. (#13880)
  • Mark conda.core.index._make_virtual_package as pending deprecation. Use conda.models.records.PackageRecord.virtual_package instead. (#13880)
  • Mark conda.core.subdir_data.make_feature_record as pending deprecation. Use conda.models.records.PackageRecord.feature instead. (#13880)
  • Mark conda.plugins.manager.CondaPluginManager.get_virtual_packages as pending deprecation. Use conda.plugins.manager.CondaPluginManager.get_virtual_package_records instead. (#13880)
  • Mark conda.misc.explicit(index_args) as pending deprecation. (#14267)
  • Mark conda.cli.main_rename.validate_destination as pending deprecation. Use conda.cli.install.validate_new_prefix instead. (#13955)
  • Mark conda.cli.main_env_remove.execute as pending deprecation. Use conda.cli.main_remove.execute instead. (#13977)
  • Mark conda.activate.path_identity as pending deprecation. Use conda.common.path.path_identity instead. (#14068)
  • Mark conda.utils.path_identity as pending deprecation. Use conda.common.path.path_identity instead. (#14068)
  • Mark conda.models.leased_path_entry as pending deprecation. (#14077)
  • Postpone removal of conda.base.context.Context.conda_exe to conda 25.3. (#14077)
  • Postpone removal of conda.cli.python_api to conda 25.9. (#14077)
  • Remove conda._vendor.appdirs. Use platformdirs instead. (#14077)
  • Remove conda._vendor.cpuinfo. (#14077)
  • Remove conda._vendor.distro. Use distro instead. (#14077)
  • Remove conda.auxlib.collection.call_each. (#14077)
  • Remove conda.auxlib.collection.firstitem. (#14077)
  • Remove conda.auxlib.compat.NoneType. (#14077)
  • Remove conda.auxlib.compat.primitive_types. (#14077)
  • Remove conda.auxlib.compat.utf8_writer. (#14077)
  • Remove conda.auxlib.exceptions.AssignmentError. (#14077)
  • Remove conda.auxlib.exceptions.AuthenticationError. (#14077)
  • Remove conda.auxlib.exceptions.InitializationError. (#14077)
  • Remove conda.auxlib.exceptions.NotFoundError. (#14077)
  • Remove conda.auxlib.exceptions.SenderError. (#14077)
  • Remove conda.auxlib.type_coercion.boolify_truthy_string_ok. (#14077)
  • Remove conda.auxlib.type_coercion.listify. (#14077)
  • Remove conda.base.context.Context.root_dir. Use conda.base.context.Context.root_prefix instead. (#14077)
  • Remove conda.base.exceptions. (#14077)
  • Remove conda.cli.main.generate_parser. Use conda.cli.conda_argparse.generate_parser instead. (#14077)
  • Remove conda.cli.main.init_loggers(context) (#14077)
  • Remove conda.cli.main_rename.validate_src(name). (#14077)
  • Remove conda.cli.main_rename.validate_src(prefix). (#14077)
  • Remove conda.common.configuration.load_file_configs. (#14077)
  • Remove conda.common.decorators.env_override. (#14077)
  • Remove conda.common.decorators. (#14077)
  • Remove conda.common.disk.temporary_content_in_file. Use tempfile instead. (#14077)
  • Remove conda.core.package_cache_data.download. Use conda.gateways.connection.download.download instead. (#14077)
  • Remove conda.core.package_cache_data.rm_fetched. (#14077)
  • Remove conda.core.package_cache. Use conda.core.package_cache_data instead. (#14077)
  • Remove conda.core.prefix_data.PrefixData._has_python. (#14077)
  • Remove conda.core.subdir_data.get_cache_control_max_age. Use conda.gateways.repodata.get_cache_control_max_age instead. (#14077)
  • Remove conda.exports.fetch_index. Use conda.core.index.fetch_index instead. (#14077)
  • Remove conda.exports.IndexRecord. Use conda.models.records.PackageRecord instead. (#14077)
  • Remove conda.gateways.anaconda_client.EnvAppDirs. Use platformdirs instead. (#14077)
  • Remove conda.gateways.connection.adapters.ftp.FTPAdapter.stor. (#14077)
  • Remove conda.gateways.connection.adapters.ftp.parse_multipart_files (#14077)
  • Remove conda.gateways.logging.set_verbosity. Use conda.gateways.logging.set_log_level instead. (#14077)
  • Remove conda.gateways.logging.VERBOSITY_LEVELS. (#14077)
  • Remove conda.models.dist.IndexRecord. Use conda.models.records.PackageRecord instead. (#14077)
  • Remove conda.models.enums.LeasedPathType. (#14077)
  • Remove conda.models.leased_path_entry.LeasedPathEntry. (#14077)
  • Remove conda.plugins.subcommands.doctor.get_prefix. Use conda.base.context.context.target_prefix instead. (#14077)
  • Remove conda.plugins.subcommands.doctor.health_checks.display_health_checks. (#14077)
  • Remove conda.plugins.subcommands.doctor.health_checks.display_report_heading. (#14077)
  • Remove conda.testing.helpers.set_active_prefix. Use mocker.patch('conda.base.context.Context.active_prefix') instead. (#14077)
  • Remove tests.env.utils.run_command. Use conda_cli fixture instead. (#14077)
  • Mark tests.env.utils.make_temp_envs_dir as pending deprecation. Use tmp_envs_dir fixture instead. (#14093)
  • Mark conda.gateways.disk.delete.rm_rf(max_retries) as pending deprecated. (#14094)
  • Mark conda.gateways.disk.delete.rm_rf(trash) as pending deprecated. (#14094)
  • Mark conda.gateways.disk.delete.try_rmdir_all_empty as pending deprecated. Use conda.gateways.disk.delete.rm_rf instead. (#14094)
  • Mark conda.gateways.disk.delete.move_to_trash as pending deprecated. Use conda.gateways.disk.delete.rm_rf instead. (#14094)
  • Mark conda.gateways.disk.delete.move_path_to_trash as pending deprecated. Use conda.gateways.disk.delete.rm_rf instead. (#14094)
  • Mark conda.exports.move_to_trash as pending deprecation. Use conda.gateways.disk.delete.rm_rf instead. (#14118)
  • Mark conda.activate.ensure_binary as pending deprecation. Use conda.common.compat.ensure_binary instead. (#14144)
  • Mark conda.activate.ensure_fs_path_encoding as pending deprecation. (#14144)
  • Mark conda.common.compat.six_with_metaclass as pending deprecation. Use class' metaclass= keyword argument instead. (#14144)
  • Mark conda.common.compat.open as pending deprecation. Use conda.common.compat.open_utf8 instead. (#14144, #14169)
  • Mark conda.common.compat.ensure_unicode as pending deprecation. (#14144)
  • Mark conda.common.compat.ensure_fs_path_encoding as pending deprecation. (#14144)
  • Mark conda.common.compat.FILESYSTEM_ENCODING as pending deprecation. (#14144, #14169)
  • Mark conda.activate.native_path_to_unix as pending deprecation. Use conda.common.path.win_path_to_unix instead. (#14157)
  • Mark conda.activate.unix_path_to_native as pending deprecation. Use conda.common.path.unix_path_to_win instead. (#14157)
  • Mark conda.activate._Cygpath as pending deprecation. Use conda.common.path._cygpath instead. (#14157)
  • Mark conda.activate._Cygpath.RE_UNIX as pending deprecation. Use conda.common.path._cygpath.RE_WIN_DRIVE instead. (#14157)
  • Mark conda.activate._Cygpath.translate_unix as pending deprecation. Use conda.common.path._cygpath._to_unix_drive instead. (#14157)
  • Mark conda.activate._Cygpath.RE_DRIVE as pending deprecation. Use conda.common.path._cygpath.RE_UNIX_DRIVE instead. (#14157)
  • Mark conda.activate._Cygpath.translation_drive as pending deprecation. Use conda.common.path._cygpath._to_win_drive instead. (#14157)
  • Mark conda.activate._Cygpath.RE_MOUNT as pending deprecation. Use conda.common.path._cygpath.RE_UNIX_MOUNT instead. (#14157)
  • Mark conda.activate._Cygpath.translation_mount as pending deprecation. Use conda.common.path._cygpath._to_win_mount instead. (#14157)
  • Mark conda.activate._Cygpath.RE_ROOT as pending deprecation. Use conda.common.path._cygpath.RE_UNIX_ROOT instead. (#14157)
  • Mark conda.activate._Cygpath.translation_root as pending deprecation. Use conda.common.path._cygpath._to_win_root instead. (#14157)
  • Mark conda.utils.unix_path_to_win as pending deprecation. Use conda.common.path.unix_path_to_win instead. (#14157)
  • Deprecate conda.env.specs.binstar module. (#14158 via #14160)
  • Deprecate conda env [create|update] REMOTE_DEFINITION. Use conda env [create|update] --file=URL instead. (#14158 via #14160)
  • Mark conda.testing.integration.BIN_DIRECTORY as pending deprecation. Use conda.common.path.BIN_DIRECTORY instead. (#14188)
  • Mark conda.common.path.get_bin_directory_short_path() as pending deprecation. Use conda.common.path.BIN_DIRECTORY instead. (#14188)
  • Mark conda.common.path.is_private_env_name as pending deprecation. (#14189)
  • Mark conda.common.path.is_private_env_path as pending deprecation. (#14189)
  • Mark conda shell.SHELL commands as pending deprecation. Use conda commands instead. (#14215)
  • The defaults multichannel will stop being the (implicit) default value for channels. Users relying on this behavior are encouraged to run conda config --add channels defaults. This is pending deprecation, and will be fully deprecated in 25.3. (#14178 via #14227)
  • conda config --add/--append channels ... will warn when defaults is implicitly added. In conda 25.3, this behavior will be removed and users should run conda config --add/--append channels defaults explicitly if needed. Conda distribution installers like miniforge or miniconda will pre-configure conda channels during installation. (#12356 via #14227)
  • Without an explicit channels configuration (via condarc files, environment variables, or CLI flags), conda will warn about using defaults implicitly. In 25.3, an empty list will be used. (#14227)
  • Mark the restore_free_channel configuration option as pending deprecation. Add https://repo.anaconda.com/pkgs/free to your channel list after defaults instead. (#14231 via #14269)
  • Mark conda.testing.CondaCLIFixture as pending deprecation. Use conda.testing.fixtures.CondaCLIFixture instead. (#14243)
  • Mark conda.testing.conda_cli as pending deprecation. Use conda.testing.fixtures.conda_cli instead. (#14243)
  • Mark conda.testing.PathFactoryFixture as pending deprecation. Use conda.testing.fixtures.PathFactoryFixture instead. (#14243)
  • Mark conda.testing.path_factory as pending deprecation. Use conda.testing.fixtures.path_factory instead. (#14243)
  • Mark conda.testing.TmpEnvFixture as pending deprecation. Use conda.testing.fixtures.TmpEnvFixture instead. (#14243)
  • Mark conda.testing.tmp_env as pending deprecation. Use conda.testing.fixtures.tmp_env instead. (#14243)
  • Mark conda.testing.TmpChannelFixture as pending deprecation. Use conda.testing.fixtures.TmpChannelFixture instead. (#14243)
  • Mark conda.testing.tmp_channel as pending deprecation. Use conda.testing.fixtures.tmp_channel instead. (#14243)
  • Mark conda.testing.context_aware_monkeypatch as pending deprecation. Use conda.testing.fixtures.context_aware_monkeypatch instead. (#14243)
  • Mark conda.testing.tmp_pkgs_dir as pending deprecation. Use conda.testing.fixtures.tmp_pkgs_dir instead. (#14243)
  • Mark conda.testing.tmp_envs_dir as pending deprecation. Use conda.testing.fixtures.tmp_envs_dir instead. (#14243)

Docs

  • Document --platform flag for conda [env] create. (#14100 via #14181)

Other

  • Update xonsh support to accomodate deprecated import path. (#14047)

Contributors

Full Changelog: 24.7.1...24.9.0