diff --git a/blog/2023-10-12-september-releases.md b/blog/2023-10-12-september-releases.mdx similarity index 53% rename from blog/2023-10-12-september-releases.md rename to blog/2023-10-12-september-releases.mdx index bed23165..28d90625 100644 --- a/blog/2023-10-12-september-releases.md +++ b/blog/2023-10-12-september-releases.mdx @@ -2,9 +2,17 @@ title: "September 2023 Releases" slug: "2023-10-12-september-releases" authors: [kenodegard] -tags: [announcement, conda, conda-build, conda-libmamba-solver, conda-index, pycosat] +tags: + [ + announcement, + conda, + conda-build, + conda-libmamba-solver, + conda-index, + pycosat, + ] description: | - Conda 23.9.0, conda-build 3.27.0, conda-libmamba-solver 23.9.0/23.9.1, conda-index 0.3.0, and pycosat 0.6.5/0.6.6 have been released! 🎉 + Conda 23.9.0, conda-build 3.27.0, conda-libmamba-solver 23.9.0/23.9.1, conda-index 0.3.0, and pycosat 0.6.5/0.6.6 have been released! 🎉 image: img/blog/2023-10-12-september-releases/banner.jpg --- @@ -13,6 +21,7 @@ The September 2023 releases included updates to five conda community projects: c ## Changes in Conda [23.9.0](https://github.com/conda/conda/releases/tag/23.9.0) To update conda, run: + ```bash conda install -n base conda=23.9.0 ``` @@ -21,7 +30,7 @@ conda install -n base conda=23.9.0 :::info -Conda's default solver will change to [`conda-libmamba-solver`](https://conda.github.io/conda-libmamba-solver/) in a __special 23.10.0 release__ in the near future! +Conda's default solver will change to [`conda-libmamba-solver`](https://conda.github.io/conda-libmamba-solver/) in a **special 23.10.0 release** in the near future! ::: @@ -35,160 +44,164 @@ Additional details on this change as well as the full announcement can be found ### ✨ What's New? ✨ -* A new "auth handler" plugin hook has been added for conda. See the new [`conda-auth`](https://github.com/conda-incubator/conda-auth) plugin for an example. -* Index cache metadata is locked by default; a `--no-lock` option is also now available. -* A new `context.register_envs` option can control whether to register environments in `~/.conda/environments.txt` when they are created. Defaults to true. -* New detailed output verbosity level (i.e., the old debug level `-vv` is now `-vvv`). -* Support for `truststore` to the `ssl_verify` config option has been added, enabling conda to use the operating system certificate store (requires Python 3.10 or later). -* `emscripten-wasm32` and `wasi-wasm32` platforms are now supported. +- A new "auth handler" plugin hook has been added for conda. See the new [`conda-auth`](https://github.com/conda-incubator/conda-auth) plugin for an example. +- Index cache metadata is locked by default; a `--no-lock` option is also now available. +- A new `context.register_envs` option can control whether to register environments in `~/.conda/environments.txt` when they are created. Defaults to true. +- New detailed output verbosity level (i.e., the old debug level `-vv` is now `-vvv`). +- Support for `truststore` to the `ssl_verify` config option has been added, enabling conda to use the operating system certificate store (requires Python 3.10 or later). +- `emscripten-wasm32` and `wasi-wasm32` platforms are now supported. ### 🔧 What Got Fixed? 🔧 -* `conda env create` checks the directory permissions when using pip dependencies before writing to disk. -* `InsecureRequestWarning` for JLAP is hidden when `CONDA_SSL_VERIFY=false`, matching non-JLAP behavior. -* The ability to create a conda environment with a colon in the prefix is no longer allowed. -* `AttributeError` logging response with nonexistent request has been fixed when using JLAP with `file:///` URIs. -* For cleaner logs, progress bars no longer show up in non-interactive runs. -* `--json` and `--debug` default to `NULL` so as to not override `CONDA_JSON` and `CONDA_DEBUG` environment variables. -* Fixed `conda remove --all --json` output. -* Test data has been updated to stop triggering security scanners' false-positives. -* No more performance regression of basic commands (e.g., `conda info`) on WSL. -* Conda is now configured to ignore "Retry-After" header to avoid the scenarios when this value is very large and causes conda to hang indefinitely. -* `JSONDecodeError` on `repodata.info.json` is treated as a warning, equivalent to a missing `repodata.info.json`. -* Fixed sorting error for `conda config --show-sources --json`. -* `OSError` in `find_commands` is now detected to account for incorrect `PATH` entries on Windows. -* `conda env update --prune` uses only the specs coming from `environment.yml` file and ignores the history specs. +- `conda env create` checks the directory permissions when using pip dependencies before writing to disk. +- `InsecureRequestWarning` for JLAP is hidden when `CONDA_SSL_VERIFY=false`, matching non-JLAP behavior. +- The ability to create a conda environment with a colon in the prefix is no longer allowed. +- `AttributeError` logging response with nonexistent request has been fixed when using JLAP with `file:///` URIs. +- For cleaner logs, progress bars no longer show up in non-interactive runs. +- `--json` and `--debug` default to `NULL` so as to not override `CONDA_JSON` and `CONDA_DEBUG` environment variables. +- Fixed `conda remove --all --json` output. +- Test data has been updated to stop triggering security scanners' false-positives. +- No more performance regression of basic commands (e.g., `conda info`) on WSL. +- Conda is now configured to ignore "Retry-After" header to avoid the scenarios when this value is very large and causes conda to hang indefinitely. +- `JSONDecodeError` on `repodata.info.json` is treated as a warning, equivalent to a missing `repodata.info.json`. +- Fixed sorting error for `conda config --show-sources --json`. +- `OSError` in `find_commands` is now detected to account for incorrect `PATH` entries on Windows. +- `conda env update --prune` uses only the specs coming from `environment.yml` file and ignores the history specs. ### 🌅 What's Marked for [Deprecation](https://github.com/conda-incubator/ceps/blob/main/cep-9.md)? 🌅 This is the first release of conda removing code previously marked as deprecated per the [deprecation schedule](https://github.com/conda-incubator/ceps/blob/main/cep-9.md). The following is a list of what was removed: -* `conda.another_unicode()` -* `conda._vendor.toolz` -* `conda._vendor.tqdm` -* `conda.auxlib.decorators.memoized` -* `conda.base.context.Context.experimental_solver` -* `conda.base.context.Context.conda_private` -* `conda.base.context.Context.cuda_version` -* `conda.base.context.get_prefix()` -* `conda.cli.common.ensure_name_or_prefix()` -* `--experimental-solver` -* `conda.common.cuda` -* `conda.common.path.explode_directories(already_split)` -* `conda.common.url.escape_channel_url()` -* `conda.core.index.check_whitelist()` -* `conda.core.solve._get_solver_class()` -* `conda.core.subdir_data.read_mod_and_etag()` -* `conda.gateways.repodata.RepodataState.load()` -* `conda.gateways.repodata.RepodataState.save()` -* `conda.lock` -* `conda_env.cli.common.stdout_json()` -* `conda_env.cli.common.get_prefix()` -* `conda_env.cli.common.find_prefix_name()` - -* * * +- `conda.another_unicode()` +- `conda._vendor.toolz` +- `conda._vendor.tqdm` +- `conda.auxlib.decorators.memoized` +- `conda.base.context.Context.experimental_solver` +- `conda.base.context.Context.conda_private` +- `conda.base.context.Context.cuda_version` +- `conda.base.context.get_prefix()` +- `conda.cli.common.ensure_name_or_prefix()` +- `--experimental-solver` +- `conda.common.cuda` +- `conda.common.path.explode_directories(already_split)` +- `conda.common.url.escape_channel_url()` +- `conda.core.index.check_whitelist()` +- `conda.core.solve._get_solver_class()` +- `conda.core.subdir_data.read_mod_and_etag()` +- `conda.gateways.repodata.RepodataState.load()` +- `conda.gateways.repodata.RepodataState.save()` +- `conda.lock` +- `conda_env.cli.common.stdout_json()` +- `conda_env.cli.common.get_prefix()` +- `conda_env.cli.common.find_prefix_name()` + +--- ## Changes in Conda-Build [3.27.0](https://github.com/conda/conda-build/releases/tag/3.27.0) To update conda-build, run: + ```bash conda install -n base conda-build=3.27.0 ``` ### ✨ What's New? ✨ -* Removed `glob2` dependency. -* `emscripten-wasm32` and `wasi-wasm32` platforms are now supported. +- Removed `glob2` dependency. +- `emscripten-wasm32` and `wasi-wasm32` platforms are now supported. ### 🔧 What Got Fixed? 🔧 -* Imports in conda command plugins are delayed until the command is used, avoiding import-time side effects. +- Imports in conda command plugins are delayed until the command is used, avoiding import-time side effects. ### 📄 What's New in Documentation? 📄 -* Improved formatting of `~=` (compatibility release) match spec. -* Docs now clarify that the `build` prefix is activated _after_ the `host` prefix. -* An explanation has been added stating that conda-build should be run from the base environment. +- Improved formatting of `~=` (compatibility release) match spec. +- Docs now clarify that the `build` prefix is activated _after_ the `host` prefix. +- An explanation has been added stating that conda-build should be run from the base environment. -* * * +--- ## Changes in Conda-Libmamba-Solver [23.9.0](https://github.com/conda/conda-libmamba-solver/releases/tag/23.9.0)/[23.9.1](https://github.com/conda/conda-libmamba-solver/releases/tag/23.9.1) To update conda-libmamba-solver, run: + ```bash conda install -n base conda-libmamba-solver=23.9.1 ``` ### ✨ What's New? ✨ -* Increased performance of `notify_conda_outdated` logic. -* Libmamba's `repoquery` search features are now exposed as a conda subcommand plugin. -* How tasks for `libsolv` are created has been rewritten, making use of `libmamba`'s `add_pin` features (requires `libmambapy >=1.5.1`). -* Name-only pins now lock the corresponding package if installed. -* The `.solv` cache for repodata is used if available and recent. +- Increased performance of `notify_conda_outdated` logic. +- Libmamba's `repoquery` search features are now exposed as a conda subcommand plugin. +- How tasks for `libsolv` are created has been rewritten, making use of `libmamba`'s `add_pin` features (requires `libmambapy >=1.5.1`). +- Name-only pins now lock the corresponding package if installed. +- The `.solv` cache for repodata is used if available and recent. ### 🔧 What Got Fixed? 🔧 -* The solver no longer bounces between two compatible solutions when the same command is run twice in a row. -* Commands with no channels passed are handled gracefully. -* Workaround added for missing `noarch` field in returned `PackageRecord` payload. -* A bug where the `--prune` flag was not working correctly in `conda env update` commands has been fixed. -* Environments are no longer aggressively updated to higher priority channels under certain conditions. -* No more injection of channels from installed packages that do not exist or are unavailable. -* All configured channels in `PackagesNotFoundError` exceptions print correctly. -* No more crashes when a `MatchSpec` with a build string is specified in the CLI and there's a pinned spec for the same package name. -* `defaults::pkg` workarounds are only applied for the default value `default_channels`. -* Users won't be able to override pinned specs with incompatible CLI specs anymore. Instead, they must modify their pinned specs explicitly. +- The solver no longer bounces between two compatible solutions when the same command is run twice in a row. +- Commands with no channels passed are handled gracefully. +- Workaround added for missing `noarch` field in returned `PackageRecord` payload. +- A bug where the `--prune` flag was not working correctly in `conda env update` commands has been fixed. +- Environments are no longer aggressively updated to higher priority channels under certain conditions. +- No more injection of channels from installed packages that do not exist or are unavailable. +- All configured channels in `PackagesNotFoundError` exceptions print correctly. +- No more crashes when a `MatchSpec` with a build string is specified in the CLI and there's a pinned spec for the same package name. +- `defaults::pkg` workarounds are only applied for the default value `default_channels`. +- Users won't be able to override pinned specs with incompatible CLI specs anymore. Instead, they must modify their pinned specs explicitly. ### 📄 What's New in Documentation? 📄 -* Intentional deviations from conda's `classic` solver behavior are now documented. +- Intentional deviations from conda's `classic` solver behavior are now documented. -* * * +--- ## Changes in Conda-Index [0.3.0](https://github.com/conda/conda-index/releases/tag/0.3.0) To update conda-index, run: + ```bash conda install -n base conda-index=0.3.0 ``` ### ✨ What's New? ✨ -* `--run-exports` has been added to generate CEP-12 compliant `run_exports.json` documents for each `subdir`. -* Pretty-print `repodata.json` is no longer default, saving time and space. -* Version requirement: `conda >= 4.14`. +- `--run-exports` has been added to generate CEP-12 compliant `run_exports.json` documents for each `subdir`. +- Pretty-print `repodata.json` is no longer default, saving time and space. +- Version requirement: `conda >= 4.14`. -* * * +--- ## Changes in Pycosat [0.6.5](https://github.com/conda/pycosat/releases/tag/0.6.5)/[0.6.6](https://github.com/conda/pycosat/releases/tag/0.6.6) To update conda-index, run: + ```bash conda install -n base pycosat=0.6.6 ``` ### ✨ What's New? ✨ -* Pycosat 0.6.4 accidentally did not include the changes intended to be released. Pycosat 0.6.5 includes those changes. -* `PyMem_Calloc()` is utilized in order to initialize memory to `0`. +- Pycosat 0.6.4 accidentally did not include the changes intended to be released. Pycosat 0.6.5 includes those changes. +- `PyMem_Calloc()` is utilized in order to initialize memory to `0`. -* * * +--- ### We ❤️ Our Community Altogether, we had 11 (!) new contributors this release cycle; thank you to all of our open source community members for helping making these improvements possible. -* [@boldorider4](https://github.com/boldorider4) made their first contribution in [conda-build#4960](https://github.com/conda/conda-build/pull/4960) -* [@DaveKaretnyk](https://github.com/DaveKaretnyk) made their first contribution in [conda-build#5004](https://github.com/conda/conda-build/pull/5004) -* [@dholth](https://github.com/dholth) made their first contribution in [pycosat#54](https://github.com/conda/pycosat/pull/54) -* [@jmcarpenter2](https://github.com/jmcarpenter2) made their first contribution in [conda#13034](https://github.com/conda/conda/pull/13034) -* [@Mon-ius](https://github.com/Mon-ius) made their first contribution in [conda#12811](https://github.com/conda/conda/pull/12811) -* [@otaithleigh](https://github.com/otaithleigh) made their first contribution in [conda#13035](https://github.com/conda/conda/pull/13035) -* [@psteyer](https://github.com/psteyer) made their first contribution in [conda#11610](https://github.com/conda/conda/pull/11610) -* [@scdub](https://github.com/scdub) made their first contribution in [conda-build#4965](https://github.com/conda/conda-build/pull/4965) -* [@tarcisioe](https://github.com/tarcisioe) made their first contribution in [conda#9614](https://github.com/conda/conda/pull/9614) -* [@wolfv](https://github.com/wolfv) made their first contribution in [conda#13095](https://github.com/conda/conda/pull/13095) and [conda-build#4813](https://github.com/conda/conda-build/pull/4813) -* [@zeehio](https://github.com/zeehio) made their first contribution in [conda#13075](https://github.com/conda/conda/pull/13075) +- [@boldorider4](https://github.com/boldorider4) made their first contribution in [conda-build#4960](https://github.com/conda/conda-build/pull/4960) +- [@DaveKaretnyk](https://github.com/DaveKaretnyk) made their first contribution in [conda-build#5004](https://github.com/conda/conda-build/pull/5004) +- [@dholth](https://github.com/dholth) made their first contribution in [pycosat#54](https://github.com/conda/pycosat/pull/54) +- [@jmcarpenter2](https://github.com/jmcarpenter2) made their first contribution in [conda#13034](https://github.com/conda/conda/pull/13034) +- [@Mon-ius](https://github.com/Mon-ius) made their first contribution in [conda#12811](https://github.com/conda/conda/pull/12811) +- [@otaithleigh](https://github.com/otaithleigh) made their first contribution in [conda#13035](https://github.com/conda/conda/pull/13035) +- [@psteyer](https://github.com/psteyer) made their first contribution in [conda#11610](https://github.com/conda/conda/pull/11610) +- [@scdub](https://github.com/scdub) made their first contribution in [conda-build#4965](https://github.com/conda/conda-build/pull/4965) +- [@tarcisioe](https://github.com/tarcisioe) made their first contribution in [conda#9614](https://github.com/conda/conda/pull/9614) +- [@wolfv](https://github.com/wolfv) made their first contribution in [conda#13095](https://github.com/conda/conda/pull/13095) and [conda-build#4813](https://github.com/conda/conda-build/pull/4813) +- [@zeehio](https://github.com/zeehio) made their first contribution in [conda#13075](https://github.com/conda/conda/pull/13075) If you have ideas or want to help improve any of the conda community projects, we love to see new (and returning) contributors! 😄 diff --git a/blog/2023-11-06-conda-23-10-0-release.mdx b/blog/2023-11-06-conda-23-10-0-release.mdx index 96f0e22c..90984ab8 100644 --- a/blog/2023-11-06-conda-23-10-0-release.mdx +++ b/blog/2023-11-06-conda-23-10-0-release.mdx @@ -4,7 +4,7 @@ slug: "2023-11-06-conda-23-10-0-release" authors: [jaimergp, jezdez] tags: [announcement, conda, libmamba] description: | - 🚄 The speedy conda-libmamba-solver becomes the default solver in the Conda 23.10.0 release. Please fasten your seat belts. + 🚄 The speedy conda-libmamba-solver becomes the default solver in the Conda 23.10.0 release. Please fasten your seat belts. image: img/blog/2023-11-06-conda-23-10-0-release/speed.jpg image_credit: | Mathew Schwartz on Unsplash @@ -26,20 +26,20 @@ Since July 2023, the [`conda-libmamba-solver`](https://github.com/conda/conda-li ### What changes will I notice? -* First, complex solves will run noticeably faster. [Benchmarking](https://www.anaconda.com/blog/a-faster-conda-for-a-growing-community) predicts a 50 to 80% improvement in run times. -* Second, you will notice improved error messages when conda encounters problems. [libmamba's error messages give you more insight into what is triggering the problem](https://medium.com/@AntoineProuvost/managing-conflicts-with-mamba-6a5fa10ed6a). -* Third, `conda-libmamba-solver` outputs more details about the channels in use and target platform at the beginning of the process. Mind these differences if you are parsing `stdout` (although we definitely recommend enabling the `--json` mode for programmatic usage!). +- First, complex solves will run noticeably faster. [Benchmarking](https://www.anaconda.com/blog/a-faster-conda-for-a-growing-community) predicts a 50 to 80% improvement in run times. +- Second, you will notice improved error messages when conda encounters problems. [libmamba's error messages give you more insight into what is triggering the problem](https://medium.com/@AntoineProuvost/managing-conflicts-with-mamba-6a5fa10ed6a). +- Third, `conda-libmamba-solver` outputs more details about the channels in use and target platform at the beginning of the process. Mind these differences if you are parsing `stdout` (although we definitely recommend enabling the `--json` mode for programmatic usage!). ### What can I do if this update doesn't work for me? If the new solver is not working as you expect: -* Check if the behavior you are observing is a [known issue](https://github.com/conda/conda-libmamba-solver/issues/283) or a [deliberate change](https://conda.github.io/conda-libmamba-solver/libmamba-vs-classic/#intentional-deviations-from-classic). -* If that's not the case, please consider submitting a bug report or feature request in the [conda-libmamba-solver repository](https://github.com/conda/conda-libmamba-solver/issues/new/choose). -* If necessary, you can go back to using the `classic` solver without modifying your conda installation: - * When possible, pass the command line option `--solver=classic` to your `conda` calls. - * Otherwise (e.g. for `conda build ...` or `constructor ...`), set the environment variable `CONDA_SOLVER=classic`. - * For permanent changes, use the conda configuration system: `conda config --set solver classic`. +- Check if the behavior you are observing is a [known issue](https://github.com/conda/conda-libmamba-solver/issues/283) or a [deliberate change](https://conda.github.io/conda-libmamba-solver/libmamba-vs-classic/#intentional-deviations-from-classic). +- If that's not the case, please consider submitting a bug report or feature request in the [conda-libmamba-solver repository](https://github.com/conda/conda-libmamba-solver/issues/new/choose). +- If necessary, you can go back to using the `classic` solver without modifying your conda installation: + - When possible, pass the command line option `--solver=classic` to your `conda` calls. + - Otherwise (e.g. for `conda build ...` or `constructor ...`), set the environment variable `CONDA_SOLVER=classic`. + - For permanent changes, use the conda configuration system: `conda config --set solver classic`. ### Where can I learn more about conda-libmamba-solver? @@ -51,6 +51,6 @@ For more information about the `conda-libmamba-solver` rollout plan, please also The libmamba integration is part of a larger effort to improve the run time of conda. See also: -* [How we reduced conda's index fetch bandwidth by 99%](https://conda.org/blog/2023-05-05-how-we-reduced-the-conda-index-fetch-bandwidth/). -* [Conda now downloads and extracts packages in parallel](https://conda.org/blog/2022-12-06-conda-release-22-11-1), which greatly speeds up package downloads when latency is high. -* conda-package-handling, a library and command line utility used by `conda` and `conda-build` to handle `.conda` and `.tar.bz2`, [is now twice as fast as it was before](https://conda.github.io/conda-package-handling/#a-new-major-version). +- [How we reduced conda's index fetch bandwidth by 99%](https://conda.org/blog/2023-05-05-how-we-reduced-the-conda-index-fetch-bandwidth/). +- [Conda now downloads and extracts packages in parallel](https://conda.org/blog/2022-12-06-conda-release-22-11-1), which greatly speeds up package downloads when latency is high. +- conda-package-handling, a library and command line utility used by `conda` and `conda-build` to handle `.conda` and `.tar.bz2`, [is now twice as fast as it was before](https://conda.github.io/conda-package-handling/#a-new-major-version). diff --git a/blog/2023-12-07-november-releases.mdx b/blog/2023-12-07-november-releases.mdx new file mode 100644 index 00000000..d6be4004 --- /dev/null +++ b/blog/2023-12-07-november-releases.mdx @@ -0,0 +1,177 @@ +--- +title: "November 2023 Releases" +slug: "2023-12-07-november-releases" +authors: [kenodegard] +tags: [announcement, conda, conda-build, conda-libmamba-solver] +description: | + Conda 23.11.0, conda-build 3.28.0/3.28.1, and conda-libmamba-solver 23.11.0/23.11.1 have been released! 🎉 +image: img/blog/2023-12-07-november-releases/banner.jpg +--- + +The November 2023 releases included updates to three conda community projects: conda, conda-build, and conda-libmamba-solver! 🎉 Each of these have been released to both `main` and `conda-forge`. + +## Changes in Conda [23.11.0](https://github.com/conda/conda/releases/tag/23.11.0) + +To update conda, run: + +```bash +conda install -n base conda=23.11.0 +``` + +### 📢 Special Announcement 📢 + +New [`menuinst` v2](https://github.com/conda/menuinst/releases/tag/2.0.0) support! + + + +`conda` has supported Start menu items on Windows for a long time. This is what allows users to open up their Miniconda prompt on CMD (Command Prompt) with an initialized `conda` session. This menu item (or shortcut) creation logic is provided by the `menuinst` package. + +With the release of 23.11.0, `conda` now supports [`menuinst` v2](https://github.com/conda/menuinst/releases/tag/2.0.0), which enables the same experience across Windows, Linux, and macOS. This means package builders will be able to provide desktop icons across all operating systems, which can be especially useful for GUI applications. See the [documentation](https://conda.github.io/menuinst/) for more details. + +If you don't want `conda` to create shortcuts, you can disable it via: + +- `shortcuts: false` entry in your `.condarc` configuration +- `CONDA_SHORTCUTS=false` environment variable +- `--no-shortcuts` command-line flag + +### ✨ What's New? ✨ + +- Introduce a new plugin hook, `CondaHealthCheck`, as part of `conda doctor`. +- Include `activate` and `deactivate` in the `--help` command list. +- Prioritize download of larger packages to prevent smaller ones from waiting. +- Display the used solver in `conda info` output for debugging purposes. +- Add `__conda` virtual package. +- Implement resume capability for interrupted package downloads. + +### 🔧 What Got Fixed? 🔧 + +- Log expected JLAP range-request errors at `info` level, occurring when the remote file has rolled over. +- Fix a bug causing an error when options like `--debug` are used without specifying a command. +- Improve CTRL-C (cancellation) handling for parallel download threads. +- Allow overriding of `CONDA_FETCH_THREADS`/`fetch_threads` to set parallel package downloads besides the default `5`. +- Require `requests >=2.28` for enhanced `response.json()` exception handling. +- Apply `callback=reset_context` in `conda.plan` to resolve `conda-build` + `conda-libmamba-solver` incompatibilities. + +### 🌅 What's Marked for [Deprecation](https://github.com/conda-incubator/ceps/blob/main/cep-9.md)? 🌅 + +- Remove `ruamel_yaml` fallback; use `ruamel.yaml` exclusively. +- Mark `conda.plugins.subcommands.doctor.health_checks.display_health_checks` for pending deprecation. +- Mark `conda.plugins.subcommands.doctor.health_checks.display_report_heading` for pending deprecation. +- Mark `conda.gateways.anaconda_client.EnvAppDirs` for pending deprecation. Use `platformdirs` instead. +- Mark `conda._vendor.cpuinfo` for pending deprecation. +- Switch from `requests`/`pip`'s vendored `chardet` to `charset_normalizer`. +- Switch from `conda._vendor.appdirs` to `platformdirs`. +- Switch from `conda._vendor.distro` to `distro`. + +### 📄 What's New in Documentation? 📄 + +The https://docs.conda.io/ docs have received a major overhaul! 🎉 + +Go take a look and let us know what you think! 🤩 + +--- + +## Changes in Conda-Build [3.28.0](https://github.com/conda/conda-build/releases/tag/3.28.0)/[3.28.1](https://github.com/conda/conda-build/releases/tag/3.28.1) + +To update conda-build, run: + +```bash +conda install -n base conda-build=3.28.1 +``` + +### 📢 Special Announcement 📢 + +In the upcoming January 2024 release of conda-build, significant changes are underway. We're set to transition to the [CalVer](https://calver.org/) versioning system. Additionally, we'll be formally embracing [CEP 8](https://github.com/conda-incubator/ceps/blob/main/cep-8.md) to manage our release schedule. Moreover, an expedited version of [CEP 9](https://github.com/conda-incubator/ceps/blob/main/cep-8.md) will be adopted for deprecation handling, omitting the pending deprecation phase and streamlining the period from deprecation to removal to a mere 2 months. + +### ✨ What's New? ✨ + +- Add `stblib` jinja function similar to `compiler` to explicitly define sysroot dependencies. +- Utilize conda-known subdirs for selector definitions, enabling `conda_build` to support new architectures with only an updated `conda` version. New OS support requires additional information for proper `conda_build` functionality, including UNIX-like platform designation, shared library prefix, and binary archive format for the platform. +- Eliminate unnecessary cache clearing from `conda_build.build.test`. +- Consolidate `which_package` implementations and replace `conda.models.dist.Dist` usage with `conda.models.records.PrefixRecords`. + +### 🔧 What Got Fixed? 🔧 + +- Display package file name in `get_hash_input`. +- Fall back to solved record filename to locate the downloaded tarball in `get_upstream_pins`. +- Prevent overwriting of variants in high priority `cbc.yaml` entries when absent in lower priority `cbc.yaml`s. +- Correct the check for a missing anaconda-client to display a useful error message. +- Fix `conda_index.index` verbose `DEBUG`/`INFO` message logging. +- (3.28.1) Relax metadata check for `package/version` when `outputs` are defined. + +### 🌅 What's Marked for [Deprecation](https://github.com/conda-incubator/ceps/blob/main/cep-9.md)? 🌅 + +- Mark `conda_build.environ.clean_pkg_cache` for pending deprecation. +- Mark `conda_build.conda_interface.IndexRecord` for pending deprecation. Use `conda.models.records.PackageRecord` instead. +- Mark `conda_build.os_utils.pyldd.is_string` for pending deprecation. Use `isinstance(value, str)` instead. +- Mark `conda_build.os_utils.pyldd.is_codefile` for pending deprecation. Use `conda_build.os_utils.pyldd.codefile_class` instead. +- Mark `conda_build.os_utils.pyldd.codefile_type` for pending deprecation. Use `conda_build.os_utils.pyldd.codefile_class` instead. +- Mark `conda_build.inspect_pkg.dist_files` for pending deprecation. +- Mark `conda_build.inspect_pkg.which_package(avoid_canonical_channel_name)` for pending deprecation. +- Mark `conda_build.inspect_pkg._installed` for pending deprecation. +- Mark `conda_build.os_utils.ldd.get_package_files` for pending deprecation. +- Mark `conda_build.os_utils.pyldd.mach_o_change` for pending deprecation. +- Mark `conda_build.os_utils.pyldd.inspect_rpath` for pending deprecation. +- Mark `conda_build.os_utils.pyldd.get_runpaths` for pending deprecation. +- Mark `conda_build.os_utils.pyldd.otool_sys` for pending deprecation. +- Mark `conda_build.os_utils.pyldd.ldd_sys` for pending deprecation. +- Mark `conda_build.post.determine_package_nature` for pending deprecation. Use `conda_build.post.get_dsos` and `conda_build.post.get_run_exports` instead. +- Mark `conda_build.post.library_nature(subdir, bldpkgs_dirs, output_folder, channel_urls)` for pending deprecation. +- Mark `conda_build.post.dist_from_names` for pending deprecation. Query `conda.core.prefix_data.PrefixData` instead. +- Mark `conda_build.post.FakeDist` for pending deprecation. Use `conda.models.records.PrefixRecord` instead. +- Mark `conda_build.post._get_fake_pkg_dist` for pending deprecation. Use `conda.models.records.PrefixRecord` instead. +- Mark `conda_build.utils.relative` for pending deprecation. Use `os.path.relpath` or `pathlib.Path.relative_to` instead. + +### 📄 What's New in Documentation? 📄 + +The https://docs.conda.io/ docs have received a major overhaul! 🎉 + +Go take a look and let us know what you think! 🤩 + +--- + +## Changes in Conda-Libmamba-Solver [23.11.0](https://github.com/conda/conda-libmamba-solver/releases/tag/23.11.0)/[23.11.1](https://github.com/conda/conda-libmamba-solver/releases/tag/23.11.1) + +To update conda-libmamba-solver, run: + +```bash +conda install -n base conda-libmamba-solver=23.11.1 +``` + +### ✨ What's New? ✨ + +- (23.11.1) Raise a friendlier `InvalidSpec` error instead of `RuntimeError` when libmamba detects a problem in the configured solver jobs. +- (23.11.1) Ensure specs, `SolverInputState.installed` and `SolverInputState.virtual` containers, are consistently sorted. + +### 🔧 What Got Fixed? 🔧 + +- Do not use `libmamba`'s default signal handler so users can `Ctrl-C` from `conda`. +- Defer conda-build-specific exception definition and import until it is needed by the solver. +- Interpret "excluded by strict priority" solver errors as proper satisfiability conflicts and avoid printing related yet uninformative warnings. +- Ensure that historic specs are kept in the environment, even if that means raising a conflict. +- (23.11.1) Configure pinned specs just once to avoid solver bugs related with their persistence (i.e. inability to downgrade environments if pinned specs are present and a transient dependency needs to be removed). +- (23.11.1) Detect whether a channel is part of a multichannel so the latter is used in the `PackageRecord` entries for conda-build. Fixes an issue with conda-build and custom multichannels. +- (23.11.1) Allow authenticated URLs in `default_channels` and other multichannels. +- (23.11.1) Preserve authentication while reloading local channels. + +### 📄 What's New in Documentation? 📄 + +The https://conda.github.io/conda-libmamba-solver/ docs have received a major overhaul! 🎉 + +Go take a look and let us know what you think! 🤩 + +--- + +### We ❤️ Our Community + +Altogether, we had 7 (!) new contributors this release cycle; thank you to all of our open source community members for helping making these improvements possible. + +- [@13rac1](https://github.com/13rac1) made their first contribution in [conda#13191](https://github.com/conda/conda/pull/13191) +- [@AniketP04](https://github.com/AniketP04) made their first contribution in [conda#13224](https://github.com/conda/conda/pull/13224) +- [@danpetry](https://github.com/danpetry) made their first contribution in [conda-build#5039](https://github.com/conda/conda-build/pull/5039) +- [@gfggithubleet](https://github.com/gfggithubleet) made their first contribution in [conda#13270](https://github.com/conda/conda/pull/13270) +- [@h-vetinari](https://github.com/h-vetinari) made their first contribution in [conda-build#4999](https://github.com/conda/conda-build/pull/4999) +- [@kennethlaskoski](https://github.com/kennethlaskoski) made their first contribution in [conda#13322](https://github.com/conda/conda/pull/13322) +- [@scruel](https://github.com/scruel) made their first contribution in [conda#13274](https://github.com/conda/conda/pull/13274) + +If you have ideas or want to help improve any of the conda community projects, we love to see new (and returning) contributors! 😄 diff --git a/blog/news.json b/blog/news.json index af664759..0076b486 100644 --- a/blog/news.json +++ b/blog/news.json @@ -1 +1 @@ -[{"title": "Conda 23.10.0: libmamba is now the default solver", "slug": "2023-11-06-conda-23-10-0-release", "authors": ["jaimergp", "jezdez"], "tags": ["announcement", "conda", "libmamba"], "description": "\ud83d\ude84 The speedy conda-libmamba-solver becomes the default solver in the Conda 23.10.0 release. Please fasten your seat belts.\n", "image": "img/blog/2023-11-06-conda-23-10-0-release/speed.jpg", "image_credit": "Mathew Schwartz on Unsplash", "date": "2023-11-06T00:00:00"}, {"title": "September 2023 Releases", "slug": "2023-10-12-september-releases", "authors": ["kenodegard"], "tags": ["announcement", "conda", "conda-build", "conda-libmamba-solver", "conda-index", "pycosat"], "description": "Conda 23.9.0, conda-build 3.27.0, conda-libmamba-solver 23.9.0/23.9.1, conda-index 0.3.0, and pycosat 0.6.5/0.6.6 have been released! \ud83c\udf89\n", "image": "img/blog/2023-10-12-september-releases/banner.jpg", "date": "2023-10-12T00:00:00"}, {"title": "Conda Newsletter, Issue #2", "slug": "2023-09-19-newsletter", "authors": ["pinak-datta"], "tags": ["conda", "newsletter"], "description": "Upcoming Events, conda-store brief, Is conda free?, pre and post plugin hooks, Recent releases, Travis Hathaway's latest talk on Youtube.\n", "image": "img/blog/2023-09-19-newsletter-2/newsletter.jpg", "image_credit": "Yannik Mika on Unsplash", "date": "2023-09-19T00:00:00"}, {"title": "Is conda free?", "slug": "2023-08-30-conda-is-free", "description": "Answers the frequently asked questions about what's free (almost everything), what parts of the ecosystem may not be free, and under what (clearly defined) conditions those \"maybe-not-free\" parts are free after all.\n", "authors": ["tnabtaf"], "tags": ["conda", "anaconda"], "image": "img/blog/2023-08-30-conda-is-free/whatsfree.png", "image_credit": "Is conda free?", "date": "2023-08-30T00:00:00"}, {"title": "New pre and post command plugin hooks", "slug": "2023-07-31-latest-conda-release-includes-new-plugin-hooks", "authors": ["travishathaway"], "tags": ["conda", "plugins"], "description": "The latest release of conda introduces two new plugin hooks: pre and post command. These hooks allow plugin\nauthors to execute code before and after any conda command. Learn more about how and why you would use\nthese in this post.\n", "image": "img/blog/2023-07-31-new-pre-post-command-plugin-hooks/pre-post-command-image.jpg", "image_credit": "Kier in Sight Archives on Unsplash", "date": "2023-07-31T00:00:00"}] \ No newline at end of file +[{"title": "November 2023 Releases", "slug": "2023-12-07-november-releases", "authors": ["kenodegard"], "tags": ["announcement", "conda", "conda-build", "conda-libmamba-solver"], "description": "Conda 23.11.0, conda-build 3.28.0/3.28.1, and conda-libmamba-solver 23.11.0/23.11.1 have been released! \ud83c\udf89\n", "image": "img/blog/2023-12-07-november-releases/banner.jpg", "date": "2023-12-07T00:00:00"}, {"title": "Conda 23.10.0: libmamba is now the default solver", "slug": "2023-11-06-conda-23-10-0-release", "authors": ["jaimergp", "jezdez"], "tags": ["announcement", "conda", "libmamba"], "description": "\ud83d\ude84 The speedy conda-libmamba-solver becomes the default solver in the Conda 23.10.0 release. Please fasten your seat belts.\n", "image": "img/blog/2023-11-06-conda-23-10-0-release/speed.jpg", "image_credit": "Mathew Schwartz on Unsplash", "date": "2023-11-06T00:00:00"}, {"title": "September 2023 Releases", "slug": "2023-10-12-september-releases", "authors": ["kenodegard"], "tags": ["announcement", "conda", "conda-build", "conda-libmamba-solver", "conda-index", "pycosat"], "description": "Conda 23.9.0, conda-build 3.27.0, conda-libmamba-solver 23.9.0/23.9.1, conda-index 0.3.0, and pycosat 0.6.5/0.6.6 have been released! \ud83c\udf89\n", "image": "img/blog/2023-10-12-september-releases/banner.jpg", "date": "2023-10-12T00:00:00"}, {"title": "Conda Newsletter, Issue #2", "slug": "2023-09-19-newsletter", "authors": ["pinak-datta"], "tags": ["conda", "newsletter"], "description": "Upcoming Events, conda-store brief, Is conda free?, pre and post plugin hooks, Recent releases, Travis Hathaway's latest talk on Youtube.\n", "image": "img/blog/2023-09-19-newsletter-2/newsletter.jpg", "image_credit": "Yannik Mika on Unsplash", "date": "2023-09-19T00:00:00"}, {"title": "Is conda free?", "slug": "2023-08-30-conda-is-free", "description": "Answers the frequently asked questions about what's free (almost everything), what parts of the ecosystem may not be free, and under what (clearly defined) conditions those \"maybe-not-free\" parts are free after all.\n", "authors": ["tnabtaf"], "tags": ["conda", "anaconda"], "image": "img/blog/2023-08-30-conda-is-free/whatsfree.png", "image_credit": "Is conda free?", "date": "2023-08-30T00:00:00"}] \ No newline at end of file diff --git a/src/theme/BlogPostItem/Header/Banner/index.jsx b/src/theme/BlogPostItem/Header/Banner/index.jsx index 60e248c7..6ca67d79 100644 --- a/src/theme/BlogPostItem/Header/Banner/index.jsx +++ b/src/theme/BlogPostItem/Header/Banner/index.jsx @@ -1,6 +1,6 @@ -import React from 'react'; -import Image from '@theme/IdealImage'; -import { useBlogPost } from '@docusaurus/theme-common/internal'; +import React from "react"; +import Image from "@theme/IdealImage"; +import { useBlogPost } from "@docusaurus/theme-common/internal"; export default function BlogPostItemHeaderBanner() { const { metadata } = useBlogPost(); @@ -11,7 +11,8 @@ export default function BlogPostItemHeaderBanner() {

- Image credit: + Image credit:{" "} +

@@ -19,8 +20,13 @@ export default function BlogPostItemHeaderBanner() { return (
- {image && ({`Banner)} - {image && image_credit && ()} + {image && ( + {`Banner + )} + {image && image_credit && }
); } diff --git a/src/theme/BlogPostItem/Header/index.jsx b/src/theme/BlogPostItem/Header/index.jsx index c7cdcdb5..ecca84ba 100644 --- a/src/theme/BlogPostItem/Header/index.jsx +++ b/src/theme/BlogPostItem/Header/index.jsx @@ -1,8 +1,8 @@ -import React from 'react'; -import BlogPostItemHeaderTitle from '@theme/BlogPostItem/Header/Title'; -import BlogPostItemHeaderInfo from '@theme/BlogPostItem/Header/Info'; -import BlogPostItemHeaderAuthors from '@theme/BlogPostItem/Header/Authors'; -import BlogPostItemHeaderBanner from './Banner'; +import React from "react"; +import BlogPostItemHeaderTitle from "@theme/BlogPostItem/Header/Title"; +import BlogPostItemHeaderInfo from "@theme/BlogPostItem/Header/Info"; +import BlogPostItemHeaderAuthors from "@theme/BlogPostItem/Header/Authors"; +import BlogPostItemHeaderBanner from "./Banner"; export default function BlogPostItemHeader() { return (
@@ -10,7 +10,7 @@ export default function BlogPostItemHeader() { -
+
); } diff --git a/static/img/blog/2023-12-07-november-releases/banner.jpg b/static/img/blog/2023-12-07-november-releases/banner.jpg new file mode 100644 index 00000000..f9d46ac1 Binary files /dev/null and b/static/img/blog/2023-12-07-november-releases/banner.jpg differ