Skip to content

Commit

Permalink
July 2024 releases announcement blog post (#194)
Browse files Browse the repository at this point in the history
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Katherine Kinnaman <[email protected]>
Co-authored-by: Ken Odegard <[email protected]>
Co-authored-by: Mahe Iram Khan <[email protected]>
  • Loading branch information
5 people authored Aug 1, 2024
1 parent f9e2ea1 commit 1641cd4
Show file tree
Hide file tree
Showing 3 changed files with 236 additions and 1 deletion.
235 changes: 235 additions & 0 deletions blog/2024-07-23-july-releases.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,235 @@
---
title: "July 2024 Releases"
slug: "2024-07-23-july-releases"
authors: [beeankha]
tags: [announcement, conda, conda-build, conda-libmamba-solver]
description: |
Conda 24.7.0/.1, conda-build 24.7.0, and conda-libmamba-solver 24.7.0 have been released! 🎉
image: img/blog/2024-07-23-july-releases/banner.png
---

The July 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.7.0](https://github.com/conda/conda/releases/tag/24.7.0)/[24.7.1](https://github.com/conda/conda/releases/tag/24.7.1)

To update conda, run:

```bash
conda install -n base conda=24.7.1
```

<!-- truncate -->

### What's New?

- Add a new `reporters` setting for configuring output.
- Report traceback of plugin loading errors with verbosity 2 or higher (`-vv` or more).
- Skip checking for `.pyc` and `.pyo` files in the `conda doctor` "missing files" health check.
- **Breaking change** `conda list --explicit` will not print authentication details by default. A new flag `--auth` has been added so folks can opt-in to this behavior.
- Print transaction report for `@EXPLICIT` lockfile installs.
- Do not require `-n/--name` or `-p/--prefix` if `conda create` is invoked with `--dry-run`.
- Add an `envvars_force_uppercase` setting which defaults to `True`, uppercasing all environment variables (thereby justifying `conda`'s current behaviour); when `envvars_force_uppercase` is set to `False`, conda will only save preserved-case variable names.
- Alias `conda env list` command to `conda info --envs`.
- Replace calls to `logger.warn` with `logger.warning`.

### 🔧 What Got Fixed? 🔧

- Improve treatment of logger levels.
- Mask authentication details in `conda-meta/*.json` metadata.
- Mask Anaconda.org tokens in verbose logs.
- Fix parsing error when history file only contains a single commented line.
- Add missing `emscripten` and `wasi` entries to the recognized platforms, and `wasm32` to the recognized architectures.
- Fix checksum comparisons in `conda.gateways.connection.download.download()` to be case insensitive.
- Fix caching when `repodata.json` contains `\r\n` line endings.
- Fix `conda.core.portability.binary_replace` not matching chunks that end with `\n`.
- (24.7.1) Revert increased restrictions on allowed environment name characters. The previously forbidden characters (^, %, !, =, (, ), \) are allowed again until the impact is assessed.

### 🌅 What's Marked for [Deprecation](https://github.com/conda-incubator/ceps/blob/main/cep-9.md)? 🌅

- Mark `conda.gateways.logging.initialize_root_logger` as pending deprecation.
- Mark `conda.cli.main_env_list.execute` as pending deprecation. Use `conda.cli.main_info.execute` instead.
- Revert `--all` deprecation in `conda info`.
- Mark `conda.exports.iteritems` as pending deprecation. Use builtin `dict.items()` instead.
- Mark `conda.exports.Completer` as pending deprecation.
- Mark `conda.exports.InstalledPackages` as pending deprecation.
- Mark `conda.exports.KEYS` as pending deprecation.
- Mark `conda.exports.KEYS_DIR` as pending deprecation.
- Mark `conda.exports.hash_file` as pending deprecation.
- Mark `conda.exports.verify` as pending deprecation.
- Mark `conda.exports.symlink_conda` as pending deprecation. Use `conda.activate` instead.
- Mark `conda.exports._symlink_conda_hlp` as pending deprecation. Use `conda.activate` instead.
- Mark `conda.exports.win_conda_bat_redirect` as pending deprecation. Use `conda.activate` instead.
- Mark `conda.utils.win_path_to_cygwin` as pending deprecation. Use `conda.common.path.win_path_to_unix` instead.
- Mark `conda.utils.cygwin_path_to_win` as pending deprecation. Use `conda.utils.unix_path_to_win` instead.
- Mark `conda.utils.translate_stream` as pending deprecation.
- Mark `conda.utils.unix_shell_base` as pending deprecation. Use `conda.activate` instead.
- Mark `conda.utils.msys2_shell_base` as pending deprecation. Use `conda.activate` instead.
- Mark `conda.utils.shells` as pending deprecation. Use `conda.activate` instead.

### 📄 What's New in Documentation? 📄

- Clarify proxy server configuration in documentation.
- Add type hints and doc strings to `conda.core.envs_manager`.
- Add logging overview as deep-dive.
- Update conda cheatsheet text and add it directly to cheatsheet page.
- Add updated cheatsheet PDF download to cheatsheet page.
- Add `ssl_verify: truststore` to the user guide.
- Fix the help text of the `satisfied-skip-solve` flag.
- Add a section explaining how to correctly raise exceptions from a plugin.
- Add new article for configuring `envs_dirs` and `pkgs_dirs`.

---

## Changes in Conda-Build [24.7.0](https://github.com/conda/conda-build/releases/tag/24.7.0)/[24.7.1](https://github.com/conda/conda-build/releases/tag/24.7.1)

To update conda-build, run:

```bash
conda install -n base conda-build=24.7.1
```

### What's New?

- Skip generating `repodata.json.bz2` for local index; generate `repodata.json` only; require `conda-package-handling >=2.2.0` matching conda.
- Add new include/exclude sections for glob expressions in multi-output `outputs/files`.
- Increase performance by using `pickle` instead of `copy.deepcopy`.
- Report fully rendered recipe to stdout before the build process starts.
- Validate `run_constrained` dependencies to prevent faulty specs reaching final repodata.
- `PIP_*` env variables are set when building outputs in multi-output recipes.
- Reduce performance overhead of logging.
- Do not generate conda error reports for common exceptions.
- Add `CondaBuildUserError` exception to replace `sys.exit` calls.
- Updated the CI to download the MacOSX 10.15 SDK.

### 🔧 What Got Fixed? 🔧

- Include file path in addition to the content when generating the file hash to avoid unwanted caching during linkage analysis.
- Error handling when `LIEF` fails is now consistent with `patchelf`.
- Ensure cross-building recipes select the correct noarch package variants.
- On Linux platforms, prefer the sysroot matching the target_platform when cross-compiling.
- (24.7.1) Check for WSL existence before calling `pathlib.Path.samefile`/`os.stat`.

### 🌅 What's Marked for [Deprecation](https://github.com/conda-incubator/ceps/blob/main/cep-9.md)? 🌅

- Mark `conda_build.build._construct_metadata_for_test_from_recipe` as deprecated. Test built packages instead, not recipes (e.g., `conda build --test package` instead of `conda build --test recipe/`).
- Mark `conda_build.build.check_external` for deprecation. `patchelf` is an explicit conda-build dependency on Linux so it will always be installed.
- Remove the following deprecations:
- `conda_build.config.Config.override_channels` (use `conda.base.context.context.channels` instead).
- `conda_build.config.noarch_python_build_age_default`.
- `conda_build.conda_interface.add_parser_channels` (use `conda.cli.helpers.add_parser_channels` instead).
- `conda_build.conda_interface.add_parser_prefix` (use `conda.cli.helpers.add_parser_prefix` instead).
- `conda_build.conda_interface.ArgumentParser` (use `conda.cli.conda_argparse.ArgumentParser` instead).
- `conda_build.conda_interface.binstar_upload` (use `conda.base.context.context.binstar_upload` instead).
- `conda_build.conda_interface.cc_conda_build` (use `conda.base.context.context.conda_build` instead).
- `conda_build.conda_interface.cc_platform` (use `conda.base.context.context.platform` instead).
- `conda_build.conda_interface.Channel` (use `conda.models.channel.Channel` instead).
- `conda_build.conda_interface.Completer`.
- `conda_build.conda_interface.configparser` (use `configparser` instead).
- `conda_build.conda_interface.CondaError` (use `conda.exceptions.CondaError` instead).
- `conda_build.conda_interface.CondaHTTPError` (use `conda.exceptions.CondaHTTPError` instead).
- `conda_build.conda_interface.CondaSession` (use `conda.gateways.connection.session.CondaSession` instead).
- `conda_build.conda_interface.CONDA_VERSION` (use `conda.__version__` instead).
- `conda_build.conda_interface.context` (use `conda.base.context.context` instead).
- `conda_build.conda_interface.create_default_packages` (use `conda.base.context.context.create_default_packages` instead).
- `conda_build.conda_interface.default_python` (use `conda.base.context.context.default_python` instead).
- `conda_build.conda_interface.determine_target_prefix` (use `conda.base.context.determine_target_prefix` instead).
- `conda_build.conda_interface.download` (use `conda.gateways.connection.download.download` instead).
- `conda_build.conda_interface.env_path_backup_var_exists`.
- `conda_build.conda_interface.envs_dirs` (use `conda.base.context.context.envs_dirs` instead).
- `conda_build.conda_interface.EntityEncoder` (use `conda.auxlib.entity.EntityEncoder` instead).
- `conda_build.conda_interface.FileMode` (use `conda.models.enums.FileMode` instead).
- `conda_build.conda_interface.get_conda_build_local_url` (use `conda.models.channel.get_conda_build_local_url` instead).
- `conda_build.conda_interface.get_conda_channel` (use `conda.models.channel.Channel.from_value` instead).
- `conda_build.conda_interface.get_prefix` (use `conda.base.context.context.target_prefix` instead).
- `conda_build.conda_interface.get_rc_urls` (use `conda.base.context.context.channels` instead).
- `conda_build.conda_interface.human_bytes` (use `conda.utils.human_bytes` instead).
- `conda_build.conda_interface.import_module` (use `importlib.import_module` instead).
- `conda_build.conda_interface.input` (use `input` instead).
- `conda_build.conda_interface.InstalledPackages`.
- `conda_build.conda_interface.lchmod` (use `conda.gateways.disk.link.lchmod` instead).
- `conda_build.conda_interface.LinkError` (use `conda.exceptions.LinkError` instead).
- `conda_build.conda_interface.LockError` (use `conda.exceptions.LockError` instead).
- `conda_build.conda_interface.MatchSpec` (use `conda.models.match_spec.MatchSpec` instead).
- `conda_build.conda_interface.non_x86_linux_machines` (use `conda.base.context.non_x86_machines` instead).
- `conda_build.conda_interface.NoPackagesFound` (use `conda.exceptions.ResolvePackageNotFound` instead).
- `conda_build.conda_interface.NoPackagesFoundError` (use `conda.exceptions.NoPackagesFoundError` instead).
- `conda_build.conda_interface.normalized_version` (use `conda.models.version.normalized_version` instead).
- `conda_build.conda_interface.os` (use `os` instead).
- `conda_build.conda_interface.PackageRecord` (use `conda.models.records.PackageRecord` instead).
- `conda_build.conda_interface.PaddingError` (use `conda.exceptions.PaddingError` instead).
- `conda_build.conda_interface.partial` (use `functools.partial` instead).
- `conda_build.conda_interface.PathType` (use `conda.models.enums.PathType` instead).
- `conda_build.conda_interface.pkgs_dirs` (use `conda.base.context.context.pkgs_dirs` instead).
- `conda_build.conda_interface.prefix_placeholder` (use `conda.base.constants.PREFIX_PLACEHOLDER` instead).
- `conda_build.conda_interface.ProgressiveFetchExtract` (use `conda.core.package_cache_data.ProgressiveFetchExtract` instead).
- `conda_build.conda_interface.reset_context` (use `conda.base.context.reset_context` instead).
- `conda_build.conda_interface.Resolve` (use `conda.resolve.Resolve` instead).
- `conda_build.conda_interface.rm_rf` (use `conda_build.utils.rm_rf` instead).
- `conda_build.conda_interface.root_dir` (use `conda.base.context.context.root_prefix` instead).
- `conda_build.conda_interface.root_writable` (use `conda.base.context.context.root_writable` instead).
- `conda_build.conda_interface.spec_from_line` (use `conda.cli.common.spec_from_line` instead).
- `conda_build.conda_interface.specs_from_args` (use `conda.cli.common.specs_from_args` instead).
- `conda_build.conda_interface.specs_from_url` (use `conda.cli.common.specs_from_url` instead).
- `conda_build.conda_interface.StringIO` (use `io.StringIO` instead).
- `conda_build.conda_interface.subdir` (use `conda.base.context.context.subdir` instead).
- `conda_build.conda_interface.symlink_conda`.
- `conda_build.conda_interface.TemporaryDirectory` (use `conda.gateways.disk.create.TemporaryDirectory` instead).
- `conda_build.conda_interface.TmpDownload` (use `conda.gateways.connection.download.TmpDownload` instead).
- `conda_build.conda_interface._toposort` (use `conda.common.toposort._toposort` instead).
- `conda_build.conda_interface.unix_path_to_win` (use `conda.utils.unix_path_to_win` instead).
- `conda_build.conda_interface.untracked` (use `conda.misc.untracked` instead).
- `conda_build.conda_interface.Unsatisfiable` (use `conda.exceptions.UnsatisfiableError` instead).
- `conda_build.conda_interface.UnsatisfiableError` (use `conda.exceptions.UnsatisfiableError` instead).
- `conda_build.conda_interface.url_path` (use `conda.utils.url_path` instead).
- `conda_build.conda_interface.VersionOrder` (use `conda.models.version.VersionOrder` instead).
- `conda_build.conda_interface.walk_prefix` (use `conda.misc.walk_prefix` instead).
- `conda_build.conda_interface.win_path_to_unix` (use `conda.common.path.win_path_to_unix` instead).
- `conda_build.index.channel_data`; `conda_build.index.get_build_index` return value for `channel_data` is now always `None`.
- `conda_build.metadata.check_circular_dependencies` (use `conda_build.metadata._check_circular_dependencies` instead).
- `conda_build.metadata.toposort` (use `conda_build.metadata.toposort_outputs` instead).
- `conda_build.utils._convert_lists_to_sets` (use `frozendict.deepfreeze` instead).
- `conda_build.utils.HashableDict` (use `frozendict.deepfreeze` instead).
- `conda_build.utils.represent_hashabledict` (use `frozendict.deepfreeze` instead).
- `conda_build.utils.rm_rf(config)`.
- `conda_build.variants.get_vars(loop_only)`.

---

## Changes in Conda-Libmamba-Solver [24.7.0](https://github.com/conda/conda-libmamba-solver/releases/tag/24.7.0)

To update conda-libmamba-solver, run:

```bash
conda install -n base conda-libmamba-solver=24.7.0
```

### ✨ What's New? ✨

- Document development workflows with devcontainers.
- Add DevContainer configurations for local development workflows.

### 🔧 What Got Fixed? 🔧

- Allow wildcards in package names for `conda remove` (e.g. `conda remove "python-*"`).
- Avoid duplicate channel listing when using channel-pinned specs like `channel::package`.
- Fix a performance regression where `.solv` repodata cache files were not being loaded when available.
- Do not ignore virtual packages as input specs.
- Pin `libmambapy <2` to defend against upcoming API changes.

---

### We ❤️ Our Community

Altogether, we had 9 (!) new contributors this release cycle; thank you to all of our open source community members for helping making these improvements possible.

- [@carterbox](https://github.com/carterbox) made their first contribution in [conda-build#5216](https://github.com/conda/conda-build/pull/5216)
- [@DerThorsten](https://github.com/DerThorsten) made their first contribution in [conda#13962](https://github.com/conda/conda/pull/13962)
- [@erik-whiting](https://github.com/erik-whiting) made their first contribution in [conda#13877](https://github.com/conda/conda/pull/13877)
- [@kelvinou01](https://github.com/kelvinou01) made their first contribution in [conda#14044](https://github.com/conda/conda/pull/14044)
- [@padeoe](https://github.com/padeoe) made their first contribution in [conda#12856](https://github.com/conda/conda/pull/12856)
- [@skupr-anaconda](https://github.com/skupr-anaconda) made their first contribution in [conda#13946](https://github.com/conda/conda/pull/13946)
- [@timkpaine](https://github.com/timkpaine) made their first contribution in [conda-build#4821](https://github.com/conda/conda-build/pull/4821)
- [@tl-hbk](https://github.com/tl-hbk) made their first contribution in [conda-libmamba-solver#449](https://github.com/conda/conda-libmamba-solver/pull/449)
- [@zklaus](https://github.com/zklaus) made their first contributions in [conda-build#5364](https://github.com/conda/conda-build/pull/5364) and [conda-libmamba-solver#476](https://github.com/conda/conda-libmamba-solver/pull/476)

If you have ideas or want to help improve any of the conda community projects, we love to see new (and returning) contributors! 😄
Loading

0 comments on commit 1641cd4

Please sign in to comment.