diff --git a/blog/2024-10-02-september-releases.mdx b/blog/2024-10-02-september-releases.mdx new file mode 100644 index 0000000..a9725c2 --- /dev/null +++ b/blog/2024-10-02-september-releases.mdx @@ -0,0 +1,237 @@ +--- +title: "September 2024 Releases" +slug: "2024-09-30-september-releases" +authors: [forgottenprogramme] +tags: [announcement, conda, conda-build, conda-libmamba-solver] +description: | + Conda 24.9.0/24.9.1, conda-build 24.9.0, and conda-libmamba-solver 24.9.0 have been released! 🎉 +image: img/blog/2024-10-02-september-releases/banner.png +--- + +The September 2024 releases included updates to conda, conda-build, and conda-libmamba-solver! 🎉 All of these have been released to both `main` and `conda-forge` channels. + +## Changes in Conda [24.9.0](https://github.com/conda/conda/releases/tag/24.9.0)/[24.9.1](https://github.com/conda/conda/releases/tag/24.9.1) + +To update conda, run: + +```bash +conda install -n base conda=24.9.1 +``` + + +### ✨ 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](https://github.com/conda/conda/issues/14178) 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](https://github.com/conda-forge/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](https://github.com/conda/conda/issues/14217) in the foreseeable future and would love to get your feedback. + + + +### ✨ What's New? ✨ + +- 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`. +- Alias `conda env remove` command to `conda remove --all`. +- Add a new health check to `conda doctor` that detects if the `REQUESTS_CA_BUNDLE` env var points to a non-existent file. +- 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. +- Report `conda` version used to generate a `@EXPLICIT` text file. +- Update health checks outputs for consistency. +- Fix Windows to Unix path conversion to handle UNC mounts and root paths. +- 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. +- Add `conda commands` subcommand. +- Add `conda.testing.fixtures.session_capsys`. Use this to capture stdout and stderr within module, package, and session scoped fixtures. +- Add `conda.testing.fixtures.session_conda_cli`. Use this to invoke conda commands within module, package, and session scoped fixtures. +- Add `conda.testing.fixtures.session_tmp_env`. Use this to create a conda environment within module, package, and session scoped fixtures. + +### 🔧 What Got Fixed? 🔧 + +- 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`. +- Enable `conda doctor` to check whether the environment exists or not before trying to generate a health report. +- Fix `conda.common.configuration.ObjectParameter`'s ability to appropriately handle defaults. +- `conda remove [env] --all` command no longer deletes empty parent directories for environments that are removed. +- Raise an error when attempting to remove non-existent environment. +- Add pre-/post-command hooks to activation subcommands (`activate`, `deactivate`, `reactivate`, `hooks`, and `commands`). +- Replace extensions from end of filename only, not `str.replace()`, in two places. +- Fix PowerShell activation/deactivation to properly unset environment variables using `$Env:VARIABLE = $null` instead of `$Env:VARIABLE = ""`. +- (24.9.1) Tweak pending deprecation warning for the upcoming changes in channel defaults. + +### 🌅 What Got Deprecated or Got Marked for Future [Deprecation](https://github.com/conda-incubator/ceps/blob/main/cep-9.md)? 🌅 + +- Mark `conda.core.index.get_index` as pending deprecation. Use `conda.core.index.Index` instead. +- Mark `conda.core.index.get_reduced_index` as pending deprecation. Use `conda.core.index.ReducedIndex` instead. +- Mark `conda.core.index.fetch_index` as pending deprecation. Use `conda.core.index.Index` instead. +- Mark `conda.core.index._supplement_index_with_prefix` as pending deprecation. Use `conda.core.index.Index.reload` instead. +- Mark `conda.core.index._supplement_index_with_cache` as pending deprecation. Use `conda.core.index.Index.reload` instead. +- Mark `conda.core.index._supplement_index_with_features` as pending deprecation. Use `conda.core.index.Index.reload` instead. +- Mark `conda.core.index._supplement_index_with_system` as pending deprecation. Use `conda.core.index.Index.reload` instead. +- Mark `conda.core.index._make_virtual_package` as pending deprecation. Use `conda.models.records.PackageRecord.virtual_package` instead. +- Mark `conda.core.subdir_data.make_feature_record` as pending deprecation. Use `conda.models.records.PackageRecord.feature` instead. +- Mark `conda.plugins.manager.CondaPluginManager.get_virtual_packages` as pending deprecation. Use `conda.plugins.manager.CondaPluginManager.get_virtual_package_records` instead. +- Mark `conda.misc.explicit(index_args)` as pending deprecation. +- Mark `conda.cli.main_rename.validate_destination` as pending deprecation. Use `conda.cli.install.validate_new_prefix` instead. +- Mark `conda.cli.main_env_remove.execute` as pending deprecation. Use `conda.cli.main_remove.execute` instead. +- Mark `conda.activate.path_identity` as pending deprecation. Use `conda.common.path.path_identity` instead. +- Mark `conda.utils.path_identity` as pending deprecation. Use `conda.common.path.path_identity` instead. +- Mark `conda.models.leased_path_entry` as pending deprecation. +- Postpone removal of `conda.base.context.Context.conda_exe` to `conda 25.3`. +- Postpone removal of `conda.cli.python_api` to `conda 25.9`. +- Remove `conda._vendor.appdirs`. Use `platformdirs` instead. +- Remove `conda._vendor.cpuinfo`. +- Remove `conda._vendor.distro`. Use `distro` instead. +- Remove `conda.auxlib.collection.call_each`. +- Remove `conda.auxlib.collection.firstitem`. +- Remove `conda.auxlib.compat.NoneType`. +- Remove `conda.auxlib.compat.primitive_types`. +- Remove `conda.auxlib.compat.utf8_writer`. +- Remove `conda.auxlib.exceptions.AssignmentError`. +- Remove `conda.auxlib.exceptions.AuthenticationError`. +- Remove `conda.auxlib.exceptions.InitializationError`. +- Remove `conda.auxlib.exceptions.NotFoundError`. +- Remove `conda.auxlib.exceptions.SenderError`. +- Remove `conda.auxlib.type_coercion.boolify_truthy_string_ok`. +- Remove `conda.auxlib.type_coercion.listify`. +- Remove `conda.base.context.Context.root_dir`. Use `conda.base.context.Context.root_prefix` instead. +- Remove `conda.base.exceptions`. +- Remove `conda.cli.main.generate_parser`. Use `conda.cli.conda_argparse.generate_parser` instead. +- Remove `conda.cli.main.init_loggers(context)`. +- Remove `conda.cli.main_rename.validate_src(name)`. +- Remove `conda.cli.main_rename.validate_src(prefix)`. +- Remove `conda.common.configuration.load_file_configs`. +- Remove `conda.common.decorators.env_override`. +- Remove `conda.common.decorators`. +- Remove `conda.common.disk.temporary_content_in_file`. Use `tempfile` instead. +- Remove `conda.core.package_cache_data.download`. Use `conda.gateways.connection.download.download` instead. +- Remove `conda.core.package_cache_data.rm_fetched`. +- Remove `conda.core.package_cache`. Use `conda.core.package_cache_data` instead. +- Remove `conda.core.prefix_data.PrefixData._has_python`. +- Remove `conda.core.subdir_data.get_cache_control_max_age`. Use `conda.gateways.repodata.get_cache_control_max_age` instead. +- Remove `conda.exports.fetch_index`. Use `conda.core.index.fetch_index` instead. +- Remove `conda.exports.IndexRecord`. Use `conda.models.records.PackageRecord` instead. +- Remove `conda.gateways.anaconda_client.EnvAppDirs`. Use `platformdirs` instead. +- Remove `conda.gateways.connection.adapters.ftp.FTPAdapter.stor`. +- Remove `conda.gateways.connection.adapters.ftp.parse_multipart_files` +- Remove `conda.gateways.logging.set_verbosity`. Use `conda.gateways.logging.set_log_level` instead. +- Remove `conda.gateways.logging.VERBOSITY_LEVELS`. +- Remove `conda.models.dist.IndexRecord`. Use `conda.models.records.PackageRecord` instead. +- Remove `conda.models.enums.LeasedPathType`. +- Remove `conda.models.leased_path_entry.LeasedPathEntry`. +- Remove `conda.plugins.subcommands.doctor.get_prefix`. Use `conda.base.context.context.target_prefix` instead. +- Remove `conda.plugins.subcommands.doctor.health_checks.display_health_checks`. +- Remove `conda.plugins.subcommands.doctor.health_checks.display_report_heading`. +- Remove `conda.testing.helpers.set_active_prefix`. Use `mocker.patch('conda.base.context.Context.active_prefix')` instead. +- Remove `tests.env.utils.run_command`. Use `conda_cli` fixture instead. +- Mark `tests.env.utils.make_temp_envs_dir` as pending deprecation. Use `tmp_envs_dir` fixture instead. +- Mark `conda.gateways.disk.delete.rm_rf(max_retries)` as pending deprecated. +- Mark `conda.gateways.disk.delete.rm_rf(trash)` as pending deprecated. +- Mark `conda.gateways.disk.delete.try_rmdir_all_empty` as pending deprecated. Use `conda.gateways.disk.delete.rm_rf` instead. +- Mark `conda.gateways.disk.delete.move_to_trash` as pending deprecated. Use `conda.gateways.disk.delete.rm_rf` instead. +- Mark `conda.gateways.disk.delete.move_path_to_trash` as pending deprecated. Use `conda.gateways.disk.delete.rm_rf` instead. +- Mark `conda.exports.move_to_trash` as pending deprecation. Use `conda.gateways.disk.delete.rm_rf` instead. +- Mark `conda.activate.ensure_binary` as pending deprecation. Use `conda.common.compat.ensure_binary` instead. +- Mark `conda.activate.ensure_fs_path_encoding` as pending deprecation. +- Mark `conda.common.compat.six_with_metaclass` as pending deprecation. Use class' `metaclass=` keyword argument instead. +- Mark `conda.common.compat.open` as pending deprecation. Use `conda.common.compat.open_utf8` instead. +- Mark `conda.common.compat.ensure_unicode` as pending deprecation. +- Mark `conda.common.compat.ensure_fs_path_encoding` as pending deprecation. +- Mark `conda.common.compat.FILESYSTEM_ENCODING` as pending deprecation. +- Mark `conda.activate.native_path_to_unix` as pending deprecation. Use `conda.common.path.win_path_to_unix` instead. +- Mark `conda.activate.unix_path_to_native` as pending deprecation. Use `conda.common.path.unix_path_to_win` instead. +- Mark `conda.activate._Cygpath` as pending deprecation. Use `conda.common.path._cygpath` instead. +- Mark `conda.activate._Cygpath.RE_UNIX` as pending deprecation. Use `conda.common.path._cygpath.RE_WIN_DRIVE` instead. +- Mark `conda.activate._Cygpath.translate_unix` as pending deprecation. Use `conda.common.path._cygpath._to_unix_drive` instead. +- Mark `conda.activate._Cygpath.RE_DRIVE` as pending deprecation. Use `conda.common.path._cygpath.RE_UNIX_DRIVE` instead. +- Mark `conda.activate._Cygpath.translation_drive` as pending deprecation. Use `conda.common.path._cygpath._to_win_drive` instead. +- Mark `conda.activate._Cygpath.RE_MOUNT` as pending deprecation. Use `conda.common.path._cygpath.RE_UNIX_MOUNT` instead. +- Mark `conda.activate._Cygpath.translation_mount` as pending deprecation. Use `conda.common.path._cygpath._to_win_mount` instead. +- Mark `conda.activate._Cygpath.RE_ROOT` as pending deprecation. Use `conda.common.path._cygpath.RE_UNIX_ROOT` instead. +- Mark `conda.activate._Cygpath.translation_root` as pending deprecation. Use `conda.common.path._cygpath._to_win_root` instead. +- Mark `conda.utils.unix_path_to_win` as pending deprecation. Use `conda.common.path.unix_path_to_win` instead. +- Deprecate `conda.env.specs.binstar` module. +- Deprecate `conda env [create|update] REMOTE_DEFINITION`. Use `conda env [create|update] --file=URL` instead. +- Mark `conda.testing.integration.BIN_DIRECTORY` as pending deprecation. Use `conda.common.path.BIN_DIRECTORY` instead. +- Mark `conda.common.path.get_bin_directory_short_path()` as pending deprecation. Use `conda.common.path.BIN_DIRECTORY` instead. +- Mark `conda.common.path.is_private_env_name` as pending deprecation. +- Mark `conda.common.path.is_private_env_path` as pending deprecation. +- Mark `conda shell.SHELL commands` as pending deprecation. Use `conda commands` instead. +- 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. +- `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. +- 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. +- Mark the `restore_free_channel` configuration option as pending deprecation. Add `https://repo.anaconda.com/pkgs/free` to your channel list after `defaults` instead. +- Mark `conda.testing.CondaCLIFixture` as pending deprecation. Use `conda.testing.fixtures.CondaCLIFixture` instead. +- Mark `conda.testing.conda_cli` as pending deprecation. Use `conda.testing.fixtures.conda_cli` instead. +- Mark `conda.testing.PathFactoryFixture` as pending deprecation. Use `conda.testing.fixtures.PathFactoryFixture` instead. +- Mark `conda.testing.path_factory` as pending deprecation. Use `conda.testing.fixtures.path_factory` instead. +- Mark `conda.testing.TmpEnvFixture` as pending deprecation. Use `conda.testing.fixtures.TmpEnvFixture` instead. +- Mark `conda.testing.tmp_env` as pending deprecation. Use `conda.testing.fixtures.tmp_env` instead. +- Mark `conda.testing.TmpChannelFixture` as pending deprecation. Use `conda.testing.fixtures.TmpChannelFixture` instead. +- Mark `conda.testing.tmp_channel` as pending deprecation. Use `conda.testing.fixtures.tmp_channel` instead. +- Mark `conda.testing.context_aware_monkeypatch` as pending deprecation. Use `conda.testing.fixtures.context_aware_monkeypatch` instead. +- Mark `conda.testing.tmp_pkgs_dir` as pending deprecation. Use `conda.testing.fixtures.tmp_pkgs_dir` instead. +- Mark `conda.testing.tmp_envs_dir` as pending deprecation. Use `conda.testing.fixtures.tmp_envs_dir` instead. +- (24.9.1) Remove deprecated testing entrypoint `shell/bin/conda`. Use `dev/start[.bat]` instead. + +### 📄 What's New in Documentation? 📄 + +- Document `--platform` flag for `conda [env] create`. + +### Other + +- Update `xonsh` support to accommodate deprecated import path. + + +## Changes in Conda-Build [24.9.0](https://github.com/conda/conda-build/releases/tag/24.9.0) + +To update conda-build, run: + +```bash +conda install -n base conda-build=24.9.0 +``` + +### ✨ What's New? ✨ + +- Reduce render time when there is a large number of unused variants. + +### 🔧 What Got Fixed? 🔧 + +- Ensure variables mentioned in `script_env` are undefined in the multi-output build environment if they are undefined in the environment that `conda-build` is invoked from. +- Variables used in single-line jinja2 `for` and `set` statements are now properly included in the variant matrix for some edge cases. +- Allow undefined jinja variables when a particular metadata block evaluates as skipped. + +### 🌅 What Got Deprecated or Got Marked for Future [Deprecation](https://github.com/conda-incubator/ceps/blob/main/cep-9.md)? 🌅 + +- Remove `conda_build.build.check_external`. `patchelf` is an explicit conda-build dependency on Linux, so it will always be installed. +- Remove `conda_build.metadata._get_env_path`. Use `conda.base.context.locate_prefix_by_name` instead. +- Remove `conda_build.build._construct_metadata_for_test_from_recipe`. Test built packages instead, not recipes (e.g., `conda build --test package` instead of `conda build --test recipe/`). + + +## Changes in Conda-Libmamba-Solver [24.9.0](https://github.com/conda/conda-libmamba-solver/releases/tag/24.9.0) + +To update conda-libmamba-solver, run: + +```bash +conda install -n base conda-libmamba-solver=24.9.0 +``` + +### 🔧 What Got Fixed? 🔧 + +- Use Solver instance configuration to initialize the libmamba context without implicitly relying on the conda context settings. +- Fix conda-build compatibility regression where arch-specific outputs can't be found in the test phase if a noarch output was built first. + +### 📄 What's New in Documentation? 📄 + +- Add installation workarounds FAQ with conda-standalone. +- Update user guide to reflect conda-libmamba-solver being the default solver in conda. +- Include mamba-org/mamba as a required cloned repository for setting up a dev environment. + + +### We ❤️ Our Community + +Altogether, we had 4 new contributors this release cycle; thank you to all of our open source community members for helping making these improvements possible. + +- @anki-code made their first contribution in [conda#14047](https://github.com/conda/conda/pull/14047) +- @SylvainCorlay made their first contribution in [conda#14226](https://github.com/conda/conda/pull/14226) +- @jjhelmus made their first contribution in [conda-libmamba-solver#528](https://github.com/conda/conda-libmamba-solver/pull/528) +- @justmarkham made their first contribution in [conda-libmamba-solver#510](https://github.com/conda/conda-libmamba-solver/pull/510) diff --git a/blog/news.json b/blog/news.json index 9b9d7ba..9cc24e7 100644 --- a/blog/news.json +++ b/blog/news.json @@ -1,4 +1,20 @@ [ + { + "title": "September 2024 Releases", + "slug": "2024-09-30-september-releases", + "authors": [ + "forgottenprogramme" + ], + "tags": [ + "announcement", + "conda", + "conda-build", + "conda-libmamba-solver" + ], + "description": "Conda 24.9.0/24.9.1, conda-build 24.9.0, and conda-libmamba-solver 24.9.0 have been released! \ud83c\udf89\n", + "image": "img/blog/2024-10-02-september-releases/banner.png", + "date": "2024-10-02T00:00:00" + }, { "title": "Rattler is moving to the conda organization", "slug": "2024-10-01-rattler-to-conda", @@ -58,21 +74,5 @@ "description": "Conda 24.7.0/.1, conda-build 24.7.0, and conda-libmamba-solver 24.7.0 have been released! \ud83c\udf89\n", "image": "img/blog/2024-07-23-july-releases/banner.png", "date": "2024-07-23T00:00:00" - }, - { - "title": "June 2024 Releases", - "slug": "2024-06-14-june-releases", - "authors": [ - "dashagurova" - ], - "tags": [ - "announcement", - "conda-index", - "conda-package-handling", - "conda-package-streaming" - ], - "description": "Conda-index 0.5.0, conda-package-handling 2.3.0 and conda-package-streaming 0.10.0 have been released! \ud83c\udf89\n", - "image": "img/blog/2024-06-14-june-releases/banner.png", - "date": "2024-06-14T00:00:00" } ] \ No newline at end of file diff --git a/static/img/blog/2024-10-02-september-releases/banner.png b/static/img/blog/2024-10-02-september-releases/banner.png new file mode 100644 index 0000000..7eb6595 Binary files /dev/null and b/static/img/blog/2024-10-02-september-releases/banner.png differ