Skip to content

Releases: conan-io/conan

2.25.1 (29-Jan-2026)

29 Jan 15:33
2.25.1
794efce

Choose a tag to compare

  • Fix: Do "retry" over the os.replace() in Windows to avoid antivirus blocking issues. (#19532)

2.25.0 (28-Jan-2026)

28 Jan 06:15
2.25.0
5f4c767

Choose a tag to compare

  • Feature: Make the download of package binaries more atomic to make cancellations more robust. (#19510)
  • Feature: Add public docs for InstallAPI subapi. (#19497)
  • Feature: conan new with no positional arguments creates a default CMake basic conanfile. (#19496). Docs: 📃
  • Feature: Further optimize the number of DB calls for upload, download, and package builds. (#19485)
  • Feature: Add public documentation for CacheAPI and ConfigAPI subapis. (#19479)
  • Feature: Deprecate MesonToolchain.preprocessor_definitions in favor of extra_defines. (#19468)
  • Feature: Add conan require command to add/remove requirements to/from your local conanfile. (#19457). Docs: 📃
  • Feature: Support for CPS CMake round trip with components with requires. (#19446)
  • Feature: Add a way to specify link features ($<LINK_LIBRARY:...>) in CMakeConfigDeps. (#19444). Docs: 📃
  • Feature: Update settings with new versions of supported tools. (#19442)
  • Feature: CPS CMake-Conan round trip support for components. (#19428)
  • Feature: Move CMakeConfigDeps from incubating to experimental. (#19421). Docs: 📃
  • Feature: Support CPS shared libs from CMake. (#19417)
  • Feature: Support full CPS CMake round trip in CMakeConfigDeps. (#19410)
  • Feature: Optimize package cache DB access, reducing connections and queries by half for the dependency graph construction. (#19398)
  • Feature: Add root_profile_name to the profile jinja2 context to allow tracing back the root profile from included profiles. (#19393). Docs: 📃
  • Feature: Optimize package cache DB access by doing batch updates of the LRU recipes and packages. (#19392)
  • Feature: Define the Python version used by PipEnv using UV (#19388). Docs: 📃
  • Feature: (Experimental) Support built-in xz and zstd compression for Conan artifacts. (#19337). Docs: 📃
  • Fix: Check Python version in PyEnv init. (#19520)
  • Fix: Populate <library>_DEFINITIONS legacy variables in CMakeConfigDeps for compatibility with old check_symbol_exists and similar (#19519)
  • Fix: Use dnf as the default system package manager for Almalinux, Rocky and Oracle Linux instead of legacy yum. (#19487)
  • Fix: Display packages even when a system package manager install is a no-op. (#19483)
  • Fix: Remove --lockfile-out generation arguments in workspace commands that cannot generate a lockfile (orchestrated conan workspace install/build/complete). (#19475)
  • Fix: Reduce the sqlite DB connection scope to try to optimize DB locking. Remove the yield DB return that could create operational issues. (#19394)
  • Bugfix: Avoid potential None and PackageType comparison when deducing cpp_info. (#19494)
  • Bugfix: Solve PipEnv failure when using version ranges. (#19478)
  • Bugfix: Correct pattern comparison for symlink with files.copy function. (#19437)
  • Bugfix: Solve issue in CMakeConfigDeps when building transitive libraries in the "build" context. (#19429)
  • Bugfix: Allow updating to newer remote revisions that already exist in the Conan cache with an older timestamp. (#19402)
  • Bugfix: Fix unintended packages showing up when using conan list ... --graph-context={build-only,host-only} when there are package binary mismatches (#19368)

2.24.0 (15-Dec-2025)

15 Dec 13:48
2.24.0

Choose a tag to compare

  • Feature: MesonToolchain needs_exe_wrapper property now listens to can_run() function. (#19382)
  • Feature: Workspace super-install now follows layout(). (#19376). Docs: 📃
  • Feature: Make diff symbols in conan report diff ... -f=html non-selectable. (#19375)
  • Feature: Add more public sub Python APIs, some more typing and fix docstrings. (#19370). Docs: 📃
  • Feature: Represent missing packages in graph.html output. (#19360)
  • Feature: conan cache check-integrity: new JSON output format. (#19343). Docs: 📃
  • Feature: New conan workspace complete command to open/add intermediate packages to the workspace. (#19331). Docs: 📃
  • Feature: Inject hashlib in the global.conf jinja2 rendering to be able to compute hashes (for paths, for example). (#19319). Docs: 📃
  • Feature: Introduce new conanconfig.yml file that can store packages for multiple automatic conan config install-pkg. (#17793). Docs: 📃
  • Fix: defines and frameworks now also generate CMakeConfigDeps targets. (#19357)
  • Fix: Warn on version ranges in reference pattern, which have no effect (ie -o="foo/[>1]:shared=True"). (#19356)
  • Fix: Improve MSBuildToolchain docstrings for compile_options. (#19351). Docs: 📃
  • Fix: Conan profile detect can detect Visual Studio 18 (2026). (#19348)
  • Fix: Avoid AutotoolsToolchain/GnuToolchain to define --sysroot for QNX qcc compiler, define -Wc,-isysroot instead. (#18897)
  • Fix: Fixed conan_config.json storage to use only RecipeReferences (not PackageReferences). (#17793). Docs: 📃
  • Fix: conan config install-pkg will report for order-changing updates to existing configuration installs, allowing to -force to change the order. (#17793). Docs: 📃
  • Bugfix: Do correct scoping of conan install --requires=dep/[*] -o myoption=value. (#19367)
  • Bugfix: fix new core.graph:compatibility_mode=optimized with multiple repos. (#19349)
  • Bugfix: Fix crash for conan workspace build with external global editables. (#19338)
  • Bugfix: Bugfix: Fix CMakeConfigDeps flags handling of generator expressions with separators. (#19330)
  • Bugfix: Fix logic in EnvVars generation of .sh and .ps1 scripts for "unset" vs "empty" definition. (#19328). Docs: 📃
  • Bugfix: Fix Workspace crash when passing per-package configuration. (#19327)
  • Bugfix: Fix version range pattern replacement in replace_requires. (#19324)

2.23.0 (25-Nov-2025)

25 Nov 17:43
2.23.0

Choose a tag to compare

  • Feature: Adding optional cli_args to meson install. (#19301)
  • Feature: implement VCVars support for latest VS 18 2026. (#19294)
  • Feature: Implement ClangCL support for VS 18 2026, add v145 to the clang vs-runtime. (#19289)
  • Feature: Improve conan pkglist find-remote to handle partial information, like not providing revisions. (#19265)
  • Feature: Add message when compatibility does not find a matching package. (#19262)
  • Feature: Improve Workspace error reporting for user code, and allow workspace conanfile to execute self.run() commands. (#19260)
  • Feature: Introduce workspace_packages so workspace super-install can collect information from workspace packages. (#19245). Docs: 📃
  • Feature: New parameter to support custom Premake configuration names. (#19242). Docs: 📃
  • Feature: Add collapse all and expand level buttons to conan report diff html output. (#19240)
  • Feature: Add support for apple os versions 26.1 and corresponding SDKs. (#19239)
  • Feature: Show provides conflicts in conan graph info -f=html. (#19222)
  • Feature: Allow source_credentials.json and the source auth plugin to define headers. (#19206). Docs: 📃
  • Feature: Let conan install/create output the resulting graph.json/html even when there are build failures, to allow listing possible packages that have been built. (#19204)
  • Feature: Document the Remote() constructor as public API. (#19200)
  • Feature: CMake.ctest() runner new tools.cmake:ctest_args conf. (#19198). Docs: 📃
  • Feature: Add some more useful output to conan audit. (#19197)
  • Feature: Allow distro 1.19 python pip package dependency for broader compatibility. (#19192)
  • Feature: Support metadata files addition without previously downloading other metadata files. (#19185)
  • Feature: Add rename info for files in conan report diff. (#19171)
  • Feature: Add conan run command to run commands from packages (#18972). Docs: 📃
  • Feature: Compatibility checks are now performed in a single request to each remote (#18396)
  • Fix: Propagate verbosity confs to CMakeToolchain. (#19296)
  • Fix: Fix 15.7 version in settings.yml. (#19250)
  • Fix: Remove empty value from --verbose choice help string. (#19244)
  • Fix: Improve error message referencing non existing git_excluded, use core.scm:excluded instead. (#19232). Docs: 📃
  • Fix: CMakeConfigDeps management of cmake_extra_interface_libs per component. (#19187)
  • Fix: Added deployer arguments to workspace super-install command. (#18792)
  • Fix: Added format_graph_json formatter to workspace super-install command. (#18792)
  • Bugfix: Make layout() have higher precedence for self.layouts.build.xxxenv_info/conf_info. (#19268)
  • Bugfix: Fix bug in conan new cmake_lib template without arguments, incorrect function name. (#19257)
  • Bugfix: Conanfile.run's quiet parameter now silences the output of the command (#18972). Docs: 📃
  • Bugfix: Verbosity level quiet now also silences the output of tools ran by Conan (#18972). Docs: 📃

2.22.2 (07-Nov-2025)

07 Nov 16:15
2.22.2
658260f

Choose a tag to compare

  • Bugfix: Fix assert when finding compatible binaries of a package that exists in both contexts with different settings. (#19208)

2.22.1 (30-Oct-2025)

30 Oct 07:23
2.22.1

Choose a tag to compare

  • Bugfix: Revert "Error out if components miss requiring direct dependencies in more cases". (#19168)

2.22.0 (29-Oct-2025)

29 Oct 14:25
2.22.0

Choose a tag to compare

  • Feature: Make the remote name used by conan config install-pkg --url=<url> public. (#19132). Docs: 📃
  • Feature: Add support for macOS 15.7 and iOS 18.7. (#19130)
  • Feature: Group arguments in CLI help. (#19126)
  • Feature: Suggest possible typos for CLI arguments declared as string choices. (#19126)
  • Feature: Add opt-in conf to control making .sh and .ps1 env deactivate functionality into in-memory functions instead of files. (#19105). Docs: 📃
  • Feature: Document ExportAPI. (#19103)
  • Feature: Enable parallel download of packages by default, by defaulting core.download:parallel to the available CPU cores. (#19099). Docs: 📃
  • Feature: Support conan graph info --package-filter=& pattern. (#19080). Docs: 📃
  • Feature: Add new environment variable CONAN_DEFAULT_BUILD_PROFILE for default build profile. (#19040). Docs: 📃
  • Feature: Allow nullifying settings from profiles and command line. (#19035). Docs: 📃
  • Feature: Support compatibility plugin removal of nullable settings. (#19031). Docs: 📃
  • Feature: New tools.gnu:disable_flags configuration to allow disabling the injection of some build system flags. (#19014)
  • Feature: Expose recipe in the ConanFileInterface for information purpose only. (#18995). Docs: 📃
  • Feature: New CMakeConfigDeps properties to inject extra dependencies and targets. (#18316)
  • Fix: Better error message for CMakeConfigDeps when the package_type or component type is not defined for something with .location defined. (#19096)
  • Fix: Change order of build_modules inclusion in CMakeConfigDeps so it happens after legacy-vars, to support some ConanCenter recipes abusing those variables. (#19094)
  • Fix: Reintroduce settings.yml access to config Sub-API. (#19078)
  • Fix: Raise an error if conan list * --lru=xx, recommending the #<rev-pattern> argument. (#19077)
  • Fix: Sanitize XcodeDeps file and variable names to use only valid xcconfig characters. (#19075)
  • Fix: Explicitly set allow_empty=True in glob() function in BazelDeps (Bazel 8.x compatible). (#19068)
  • Fix: Fix CMakeConfigDeps when a regular library requires() an application, using components. (#19052)
  • Fix: Add missing final newline when saving lockfiles to disk. (#19043)
  • Fix: Warn when adding requirement to version range with pinned revision, it has no effect. (#19041). Docs: 📃
  • Fix: Fix CMakeConfigDeps escaping. (#19034)
  • Fix: Improved Python virtual environment creation in PipEnv by using the system-installed interpreter or a user-defined one via tools.system.pipenv:python_interpreter. (#19030). Docs: 📃
  • Fix: Add VS2026 CMake generator mapping. (#19024)
  • Fix: Avoid referencing xcconfig from skipped dependencies required in components in XcodeDeps. (#19023)
  • Fix: Add execution["jobs"] to the generated CMake testPresets with same logic and value as buildPresets. (#19021)
  • Fix: Improve the error message when a workspace super-install defines intermediate packages in the cache depending on workspace packages. (#19013)
  • Fix: Improve support for huge diffs in conan report diff HTML output. (#19012). Docs: 📃
  • Bugfix: MSBuildToolchain explicitly adds the specific toolset .props file when compiler.update is defined, otherwise, activating vcvars is not enough. (#19137)
  • Bugfix: Fixes an issue where the Apt packages for the build arch would be reported missing, in cross-compiling scenarios, even though they are installed. (#19074)
  • Bugfix: Solve unexpected conflict when pinning a recipe-revision directly in a conanfile that is not the latest, and having other dependencies resolving first to the latest recipe revision. (#19038)
  • Bugfix: Fix <host_version> resolution in certain transitive cases. (#18947)
  • Bugfix: Fix orphan nodes being created when expanding the dependency graph for some cases. (#18947)
  • Bugfix: Error out if components miss requiring direct dependencies in more cases. (#18830)

2.21.0 (29-Sep-2025)

29 Sep 16:24
2.21.0

Choose a tag to compare

  • Feature: Add support for universal binaries to AutotoolsToolchain. (#18992). Docs: 📃
  • Feature: Add support for universal binaries to GnuToolchain. (#18992). Docs: 📃
  • Feature: Add --context={build,host} filter to conan audit scan. (#18976). Docs: 📃
  • Feature: Default recipe paths to cwd if not specified when calling Conan. (#18964)
  • Feature: Implement a new post_package_id() hook. (#18960). Docs: 📃
  • Feature: Add support for Xcode 26 and related. (#18953)
  • Feature: Add support for MSVC VS 2026 (insiders at the moment). (#18948). Docs: 📃
  • Feature: Add the PipEnv tool to install python tools using pip in an isolated virtual environment. (#18923). Docs: 📃
  • Feature: Allow separate build and package directories for multiple CMake builds from single conanfile. (#18905). Docs: 📃
  • Feature: Add recipes_only field to remote to control whether a remote can be used to download binaries. (#18896). Docs: 📃
  • Feature: Add cmake_extra_variables property for CMakeConfigDeps. (#18822). Docs: 📃
  • Feature: Add cmake_extra_variables property for CMakeDeps. (#18822). Docs: 📃
  • Feature: Improve conan report diff html UX. (#18686). Docs: 📃
  • Feature: Allow passing build configuration in XcodeBuild explicitly via configuration parameter. (#18668). Docs: 📃
  • Feature: Allow passing arbitrary command line arguments to XcodeBuild via cli_args. (#18668). Docs: 📃
  • Feature: Add generation of dotenv environment files with tools.env:dotenv=True conf. (#18266). Docs: 📃
  • Fix: Avoid CMakePresets adding the jobs field when tools.build:jobs=0. (#18984)
  • Fix: Warn when exporting recipes with versions containing alphanumeric majors. (#18980). Docs: 📃
  • Fix: Set cpp.source.includedirs to include in basic_layout. (#18958). Docs: 📃
  • Fix: workspace add can update the package version of an existing package in the workspace. (#18955)
  • Fix: Move macOS bitcode flag testing to integration test. (#18930)
  • Fix: Move test_requires to build_requirements method in tests. (#18929)
  • Fix: Always run validate hooks even if recipe does not define validate() method. (#18928)
  • Fix: Remove deprecated, old and undocumented features, marked for deprecations for a long time. (#18920). Docs: 📃
  • Fix: Ensure VCVars generated conanvcvars.bat has normalized path with backward slash (Windows). (#18907)
  • Fix: Fix compatibility.py migration overwrite when no changes were necessary. (#18882)
  • Fix: Cleaning files and upload-urls from "package lists" after a download or when skipping uploads. (#18878)
  • Fix: Improve the error message and avoid the traceback when a build-scripts package tries to depend on a library in the "host" context. (#18869). Docs: 📃
  • Fix: Move legacy CMake vars from xxx-target-<config>.cmake to xxxx-config.cmake file. (#18860)
  • Bugfix: Added Apple frameworks support for BazelDeps. (#19004)
  • Bugfix: Ensure conan graph build-order errors out when passing both a recipe path and a --requires reference. (#18964)
  • Bugfix: MesonToolchain no longer add quotes to linker_script definition. (#18922)
  • Bugfix: Fix missing double quotes for MSBuild's commands. (#18911)
  • Bugfix: Command conan list with version-ranges can now listen to core.version_ranges:resolve_prereleases=True to list pre-releases. (#18868)
  • Bugfix: Stabilize PackagesList methods. (#18833)

2.20.1 (04-Sep-2025)

04 Sep 06:09
2.20.1
0384d64

Choose a tag to compare

  • BugFix: Fix Apt not detecting the correct architecture in multiarch setups. (#18872)
  • BugFix: Apt correctly detects arch-independent (all) packages during cross-building to avoid unnecessary reinstalls. (#18872)

2.20.0 (01-Sep-2025)

01 Sep 14:36
2.20.0
6960af2

Choose a tag to compare

  • Feature: new check_min_compiler_version validator which simplify compiler restriction description in recipes. (#18849). Docs: 📃
  • Feature: Adding Clang 21 to the default settings.yml. (#18846)
  • Feature: Add new Apple OS's versions. (#18845)
  • Feature: Avoid the generation of conanintelsetvars script by IntelCC if the tools.intel:installation_path="", similarly to VCVars generation. The user should have already activated the IntelCC environment on their own before running. (#18840). Docs: 📃
  • Feature: Improved the CMakeLists.txt file created by the conan new workspace command for super-builds. (#18838)
  • Feature: Add CMAKE_FIND_PACKAGE_PREFER_CONFIG=ON for CMakeConfigDeps generator. (#18832)
  • Feature: Add excludes pattern support for get and unzip methods. (#18831)
  • Feature: Add support for GCC 15.2. (#18735)
  • Feature: Add iOS 18.5 and tvOS 18.5 to default_settings.yml template. (#18722)
  • Feature: Stabilize and document ConfigAPI public Python sub-API. (#18709)
  • Feature: Print build-order in the conan workspace super-install command (#18693). Docs: 📃
  • Feature: Workspace super-build options aggregation. (#18608). Docs: 📃
  • Feature: Implement tools.build:install_strip for Autotools. (#18606). Docs: 📃
  • Feature: Added support to the system_package tool for defining the system package version to be installed. (#18517). Docs: 📃
  • Fix: Better error message when there is an existing file called "build" in the same location as the "build" build-folder is expected to be created. (#18842)
  • Fix: The cmake_layout was not taking into account the Apple multi-arch/universal separator when creating folders named after the arch setting. (#18823)
  • Fix: Avoiding issues if passing non-string objects to ConanOutput methods. Still, the input to several .info() and similar methods must be "text", passing arbitrary objects and expecting them to convert to strings internally is not supported. (#18782). Docs: 📃
  • Fix: Document public interface for ConanOutput class. (#18782). Docs: 📃
  • Fix: Remove Python 3.6 support, End Of Life since 2021. (#18779). Docs: 📃
  • Fix: Make all non-documented subapi attributes private. (#18736)
  • Fix: Remove SearchAPI in favour of ListAPI's select(). (#18726). Docs: 📃
  • Fix: Relax the "risk" warning for conflicting visibility in test_requires. (#18723)
  • Fix: Fixed an issue that caused APT packages without a defined architecture to be detected if one with the same name was installed for a different architecture. (#18517). Docs: 📃
  • Fix: Preserve subfolders for runtime_deploy deployer. (#17848). Docs: 📃
  • Bugfix: Made ConanAPI's home_folder read-only. (#18726). Docs: 📃