Changelog¶
For a more detailed description of the major changes that Conan 2 brings, compared with Conan 1.X, please read What’s new in Conan 2
2.5.0 (03-Jul-2024)¶
Feature: New
tools.cmake.cmaketoolchain:enabled_blocks
configuration to define which blocks ofCMakeToolchain
should be active or not. #16563 . Docs hereFeature: Allow –filter-options in conan list to use &: scope to refer to all packages being listed. #16559
Feature: Highlight missing or invalid requirements while computing dependency graph. #16520
Feature: New
conan lock update
subcommand to remove + add a reference in the same command. #16511 . Docs hereFeature: Honoring tools.android:ndk_path conf. Setting the needed flags to cross-build for Android. #16502 . Docs here
Feature: Qbs helper now invokes Conan provider automatically. #16486
Feature: Added force option to tools.cmake.cmaketoolchain:extra_variables. #16481 . Docs here
Feature: Raising a ConanException if any section is duplicated in the same Conan profile file. #16454
Feature: Added resolve() method to the Qbs toolchain. #16449
Feature: Make
MSBuildDeps
generation with deployer relocatable. #16441Feature: Add QbsDeps class to be used with Qbs Conan module provider. #16334
Feature: Add built in runtime_deploy deployer. #15382 . Docs here
Fix: Fix provides conflict error message not showing conflicting provides when a named reference matches a provider. #16562
Fix: Set correct testpaths for pytest. #16530
Fix: Allow
.conanrc
file in the root of a filesystem. #16514Fix: Add support for non default docker hosts in conan runners #16477
Fix: Don’t fail when we can’t overwrite the summary file in the backup upload. #16452
Fix: Make
source_credentials.json
do not apply to Conan server repos protocol. #16425 . Docs hereFix: Allow packages to have empty folders. #16424
Bugfix: Fix
detect_msvc_compiler()
fromdetect_api
to properly detect VS 17.10 withcompiler.version=194
. #16581Bugfix: Fix unexpected error when a recipe performs package_id() info erasure and is used as a compatibility candidate. #16575
Bugfix: Ensure msvc cppstd compatibility fallback does not ignore 194 binaries. #16573
Bugfix: XXXDeps generators did not include an absolute path in their generated files if –deployer-folder=xxxx param was used. #16552
Bugfix: Fix conan list … –format=compact for package revisions. #16490
Bugfix: Fix XcodeToolchain when only defines are set. #16429
2.4.1 (10-Jun-2024)¶
Fix: Avoid find_package’s of transitive dependencies on test_package generated by cmake_lib template. #16451
Fix: Fix back migration of default compatibility.py from a clean install. #16417
Bugfix: Solve issue with setuptools (distributed Conan packages in Python) packaging the “test” folder. #16446
Bugfix: Fixed regression in
CMakeToolchain
with--deployer=full_deploy
creating wrong escaping. #16434
2.4.0 (05-Jun-2024)¶
Feature: Added support for MacOS sdk_version 14.5 #16400 . Docs here
Feature: Added CC_FOR_BUILD and CXX_FOR_BUILD environment variable to AutotoolsToolchain. #16391 . Docs here
Feature: Added extra_xxxx flags to MesonToolchain as done in other toolchains like AutotoolsToolchain, CMakeToolchain, etc. #16389
Feature: Add new
qbs_lib
template for the conan new command. #16382Feature: new
detect_api.detect_sdk_version()
method #16355 . Docs hereFeature: Add excludes parameter to tools.files.rm to void removing pattern. #16350 . Docs here
Feature: Allow multiple
--build=missing:~pattern1 --build=missing:~pattern2
patterns. #16327Feature: Deprecate use of path accessors in ConanFile. #16247
Feature: add support for setting tools.cmake.cmaketoolchain:extra_variables #16242 . Docs here
Feature: Add cmake_additional_variables_prefixes variable to CMakeDeps generator to allow adding extra names for declared CMake variables. #16231 . Docs here
Feature: Allow GNUInstallDirs definition in
CMakeToolchain
for the localconan install/build
flow too. #16214Feature: Let
conan cache save
listen to thecore.gzip:compresslevel
conf. #16211Feature: Add new
revision_mode
including everything down to therecipe-revision
, but not thepackage_id
. #16195 . Docs hereFeature: Allow a recipe to
requires(..., visible=False)
a previous version of itself without raising a loop error. #16132Feature: New
vendor=True
package creation and build isolation strategy #16073 . Docs hereFeature: New
compiler.cstd
setting for C standard #16028 . Docs hereFeature: Implemented
compatibility.py
default compatibility for different C standards #16028 . Docs hereFeature: Implement
check_min_cstd
,check_max_cstd
,valid_max_cstd
,valid_min_cstd
,supported_cstd
tools #16028 . Docs hereFeature: New
languages = "C", "C++"
class attribute to further automate settings management #16028 . Docs hereFeature: Add CONAN_RUNTIME_LIB_DIRS variable to the conan_toolchain.cmake. #15914 . Docs here
Fix: Implement a back migration to <2.3 for default
compatibility.py
plugin. #16405Fix: Add missing [replace_requires] and [platform_requires] to serialization/dump of profiles. #16401
Fix: Fix handling spaces in paths in
Qbs
helper. #16382Fix: Make cc version detection more robust #16362
Fix: Allow
--build=missing:&
pattern to build only the consumer if missing, but not others. #16344Fix: Allow “local-recipes-index” to
conan list
packages with customuser/channel
. #16342Fix: Fixing docstrings for
cppstd
functions. #16341Fix: Change autodetect of CMAKE_SYSTEM_VERSION to use the Darwin version. #16335 . Docs here
Fix: Fix require syntax in output in graph build-order. #16308
Fix: Improve some commands help documentation strings by adding double quotes. #16292
Fix: Better error message for incorrect version-ranges definitions. #16289
Fix: Only print info about cached recipe revision being newer when it truly is. #16275
Fix: Warn when using
options
without pattern scope, to improve UX of users expecting-o shared=True
to apply to dependencies. #16233 . Docs hereFix: Fix CommandAPI usage when not used by Conan custom commands. #16213
Fix: Avoid
datetime
deprecated calls in Python 3.12. #16095Fix: Handle tools.build:sysroot on Meson toolchain. #16011 . Docs here
Bugfix: Fix
LLVM/Clang
enablement ofvcvars
for latestv14.4
toolset version after VS 17.10 update #16374 . Docs hereBugfix: Fix profile errors when using a docker runner of type=shared #16364
Bugfix:
conan graph info .. --build=pkg
doesn’t downloadpkg
sources unlesstools.build:download_source
is defined. #16349Bugfix: Solved problem with relativization of paths in CMakeToolchain and CMakeDeps. #16316
Bugfix: Avoid sanitizing tools.build:compiler_executables value in MesonToolchain. #16307
Bugfix: Solved incorrect paths in
conan cache save/restore
tgz files that crashed when usingstorage_path
custom configuration. #16293Bugfix: Fix stacktrace with nonexistent graph file in conan list. #16291
Bugfix: Let
CMakeDeps
generator overwrite thexxxConfig.cmake
when it already exists. #16279Bugfix: Disallow self.info access in source() method. #16272
2.3.2 (28-May-2024)¶
Feature: New
tools.microsoft:msvc_update
configuration to define the MSVC compilerupdate
even whencompiler.update
is not defined. Can be used to usecompiler.version=193
once VS2022 is updated to 17.10, which changes the default compiler tocompiler.version=194
. #16332Bugfix: Allow default
compatibility.py
plugin to fallback from MSVCcompiler.version=194->193
and to othercppstd
values. #16346Bugfix: Skip dot folders in local recipe index layouts. #16345
Bugfix: Remove extra backslash in generated conanvcvars.ps1. #16322
2.3.1 (16-May-2024)¶
Feature: Allow opt-out for
CMakeToolchain
default use of absolute paths for CMakeUserPresets->CMakePreset and CMakePresets->toolchainFile path. #16244 . Docs hereFix: Fix config container name for Docker runner. #16243
Bugfix: Make compatibility checks understand update flag patterns. #16252
Bugfix: Solve bug with
overrides
fromlockfiles
in case of diamond structures. #16235Bugfix: Allow
export-pkg --version=xxx
to be passed to recipes withpython_requires
inheritingset_version
from base class. #16224
2.3.0 (06-May-2024)¶
Feature: Allow * wildcard as subsetting in in rm_safe. #16105 . Docs here
Feature: Show recipe and package sizes when running conan upload. #16103
Feature: Extend conan version to report current python and system for troubleshooting. #16102 . Docs here
Feature: Add
detect_xxxx_compiler()
for mainstream compilers as gcc, msvc, clang. to the publicdetect_api
. #16092 . Docs hereFeature: Add comment support for .conanignore file. #16087
Feature: In graph html search bar now takes in multiple search patterns separated by commas. #16083
Feature: In graph html added ‘filter packages’ bar that takes in multiple search patterns separated by comma and hides filters them from graph. #16083
Feature: Add an argument hide_url to Git operations to allow logging of the repository URL. By default, URLs will stay <hidden>, but users may opt-out of this. #16038
Feature: Allow
.conf
access (exclusively toglobal.conf
information, not to profile information) in theexport()
andexport_sources()
methods. #16034 . Docs hereFeature: Avoid copying identical existing files in
copy()
. #16031Feature: New
conan pkglist merge
command to merge multiple package lists. #16022 . Docs hereFeature: New
conan pkglist find-remote
command to find matching in remotes for list of packages in the cache. #16022 . Docs hereFeature: Relativize paths in CMakePresets generation. #16015
Feature: Add new
test_package_folder
attribute toconanfile.py
to define a different custom location and name rather thantest_package
default. #16013 . Docs hereFeature: New
conan create --test-missing
syntax to optionally run thetest_package
only when the package is actually created (useful with--build=missing
). #15999 . Docs hereFeature: Add tools.gnu:build_triplet to conf. #15965
Feature: Add
--exist-ok
argument toconan profile detect
to not fail if the profile already exists, without overwriting it. #15933Feature: MesonToolchain can generate a native file if native=True (only makes sense when cross-building). #15919 . Docs here
Feature: Meson helper injects native and cross files if both exist. #15919 . Docs here
Feature: Add support for meson subproject. #15916 . Docs here
Feature: Added transparent support for running Conan within a Docker container. #15856 . Docs here
Fix: Allow defining
CC=/usr/bin/cc
(and for CXX) forconan profile detect
auto-detection. #16187Fix: Solve issue in
pyinstaller.py
script, it will no longer installpip install pyinstaller
, having it installed will be a precondition #16186Fix: Use backslash in
CMake
helper for the CMakeLists.txt folder, fixes issue when project is in the drive root, likeX:
#16180Fix: Allowing
conan editable remove <path>
even when the path has been already deleted. #16170Fix: Fix conan new –help formatting issue. #16155
Fix: Improved error message when there are conflicts in the graph. #16137
Fix: Improve error message when one URL is not a valid server but still returns 200-ok under a Conan “ping” API call. #16126
Fix: Solve
sqlite3
issues in FreeBSD due to queries with double quotes. #16123Fix: Clean error message for
conan cache restore <non-existing-file>
. #16113Fix: Improve UX and error messages when a remotes or credentials file in the cache is invalid/empty. #16091
Fix: Use
cc
executable in Linux systems for autodetect compiler (conan profile detect
anddetect_api
). #16074Fix: Improve the definition of version ranges UX with better error message for invalid
==, ~=, ^=
operators. #16069Fix: Improve error message UX when incorrect
settings.yml
orsettings_user.yml
. #16065Fix: Print a warning for Python 3.6 usage which is EOL since 2021. #16003
Fix: Remove duplicated printing of command line in
Autotools
helper. #15991Fix: Add response error message output to HTTP Status 401 Errors in FileDownloader. #15983
Fix: Add gcc 14 to default
settings.yml
. #15958Fix: Make
VCVars
use thecompiler.update
to specify the toolset. #15947Fix: Add
rc
toAutotoolsToolchain
mapping ofcompiler_executables
for cross-build Linux->Windows. #15946Fix: Add
Pop!_OS
to the distros usingapt-get
as system package manager. #15931Fix: Do not warn with package names containing the - character. #15920
Fix: Fix html escaping of new
--format=html
graph output, and pass the graph serialized object instead of the string. #15915Bugfix: Make MesonToolchain listen to tools.build:defines conf variable. #16172 . Docs here
Bugfix: Disallow self.cpp_info access in validate_build() method. #16135
Bugfix: Don’t show a trace when .conanrc’s conan_home is invalid. #16134
Bugfix: Avoid the propagation of transitive dependencies of
tool_requires
to generators information even if they are marked asvisible=True
. #16077Bugfix: BazelDeps now uses the requirement.build property instead of dependency.context one. #16025
Bugfix: Make conan cache restore work correctly when restoring over a package already in the local cache. #15950
2.2.3 (17-Apr-2024)¶
Fix: Fix to_apple_archs method when using architectures from settings_user. #16090
2.2.2 (25-Mar-2024)¶
2.2.1 (20-Mar-2024)¶
Fix: Add copytree_compat method for compatibility with Python>=3.12 after distutils removal. #15906
2.2.0 (20-Mar-2024)¶
Feature: Raise for toolchains different than CMakeToolchain if using universal binary syntax. #15896
Feature: Warn on misplaced requirement function calls #15888
Feature: Print options conflicts in the graph caused by different branches recipes defining options values. #15876 . Docs here
Feature: Add macOS versions 14.2, 14.3, 14.4 to settings.yml. #15859 . Docs here
Feature: New graph
html
: more information, test-requires, hiding/showing different packages (build, test). #15846 . Docs hereFeature: Add –backup-sources flag to conan cache clean. #15845
Feature: Add conan graph outdated command that lists the dependencies that have newer versions in remotes #15838 . Docs here
Feature: Set CMAKE_VS_DEBUGGER_ENVIRONMENT from CMakeToolchain to point to all binary directories when using Visual Studio. This negates the need to copy DLLs to launch executables from the Visual Studio IDE (requires CMake 3.27 or newer). #15830 . Docs here
Feature: Add a parameter to trim_conandata to avoid raising an exception when conandata.yml file doesn’t exist. #15829 . Docs here
Feature: Added build_context_folder ` to PkgConfigDeps. `#15813 . Docs here
Feature: Included build.pkg_config_path ` in the built-in options section in the MesonToolchain template. `#15813 . Docs here
Feature: Update _meson_cpu_family_map to support arm64ec. #15812
Feature: Add basic support in CMakeToolchain for universal binaries. #15775 . Docs here
Feature: New
tools.cmake.cmake_layout:build_folder
config that allows re-definingcmake_layout
local build-folder. #15767 . Docs hereFeature: New
tools.cmake.cmake_layout:test_folder
config that allows re-definingcmake_layout
output build folder fortest_package
, including a$TMP
placeholder to create a temporary folder in systemtmp
. #15767 . Docs hereFeature: (Experimental) Add
conan config install-pkg myconf/[*]
new configuration inside Conan packages with newpackage_type = "configuration"
. #15748 . Docs hereFeature: (Experimental) New
core.package_id:config_mode
that allows configuration package reference to affect thepackage_id
of all packages built with that configuration. #15748 . Docs hereFeature: Make cppstd_flag public to return the corresponding C++ standard flag based on the settings. #15710 . Docs here
Feature: Allow
self.name
andself.version
inbuild_folder_vars
attribute and conf. #15705 . Docs hereFeature: Add
conan list --filter-xxx
arguments to list package binaries that match settings+options. #15697 . Docs hereFeature: Add detect_libc to the detect_api to get the name and version of the C library. #15683 . Docs here
Feature: New
CommandAPI
subapi in theConanAPI
that allows calling other commands. #15630 . Docs hereFix: Avoid unnecessary build of
tool_requires
when--build=missing
and repeatedtool_requires
. #15885Fix: Fix
CMakeDeps
set_property(... APPEND
argument order. #15877Fix: Raising an error when an infinite loop is found in the install graph (ill-formed dependency graph with loops). #15835
Fix: Make sure detect_default_compiler() always returns a 3-tuple. #15832
Fix: Print a clear message for
conan graph explain
when no binaries exist for one revision. #15823Fix: Add
package_type="static-library"
to theconan new msbuild_lib
template. #15807Fix: Avoid
platform_requires
to fail when explicit options are being passed viarequires(.., options={})
. #15804Fix: Make
CMakeToolchain
end with newline. #15788Fix: Do not allow
conan list
binary filters or package query if a binary pattern is not provided. #15781Fix: Avoid
CMakeToolchain.preprocessor_definition
definitions to"None"
literal string when it has no value (PythonNone
). #15756Fix: Improved
conan install <path> --deployer-package=*
case that was crashing when usingself.package_folder
. #15737Fix: Fix conan graph info –format=html for large dependency graphs. #15724
Fix: Make all recipe and plugins python file
print()
tostderr
, so json outputs tostdout
are not broken. #15704Fix: Fix getting the gnu triplet for Linux x86. #15699
Bugfix: Solve backslash issues with
conan_home_folder
inglobal.conf
when used in strings inside lists. #15870Bugfix: Fix
CMakeDeps
multi-config when there are conditional dependencies on thebuild_type
. #15853Bugfix: Move get_backup_sources() method to expected CacheAPI from UploadAPI. #15845
Bugfix: Avoid TypeError when a version in conandata.yml lists no patches. #15842
Bugfix: Solve
package_type=build-scripts
issue with lockfiles and conan create. #15802Bugfix: Allow
--channel
command line argument if the recipe specifiesuser
attribute. #15794Bugfix: Fix cross-compilation to Android from Windows when using
MesonToolchain
. #15790Bugfix: Fix
CMakeToolchain
GENERATOR_TOOLSET whencompiler.update
is defined. #15789Bugfix: Solved evaluation of
conf
items when they matched a Python module #15779Bugfix: Fix
PkgConfigDeps
generating .pc files for itstool_requires
when it is in the build context already. #15763Bugfix: Adding VISIBILITY flags to CONAN_C_FLAGS too. #15762
Bugfix: Fix conan profile show –format=json for profiles with scoped confs. #15747
Bugfix: Fix legacy usage of update argument in Conan API. #15743
Bugfix: Solve broken profile
[conf]
when strings contains Windows backslash. #15727Bugfix: Fix version precendence for metadata version ranges. #15653
2.1.0 (15-Feb-2024)¶
Feature: Implement multi-config
tools.build:xxxx
flags inCMakeToolchain
. #15654Feature: Add ability to pass patterns to –update flag. #15652 . Docs here
Feature: Add –format=json formatter to conan build. #15651
Feature: Added tools.build.cross_building:cross_build to decide whether cross-building or not regardless of the internal Conan mechanism. #15616
Feature: Add –format=json option to conan cache path. #15613
Feature: Add the –order-by argument for conan graph build-order. #15602 . Docs here
Feature: Provide a new
graph build-order --reduce
argument to reduce the order exclusively to packages that need to be built from source. #15573 . Docs hereFeature: Add configuration to specify desired CUDA Toolkit in CMakeToolchain for Visual Studio CMake generators. #15572 . Docs here
Feature: New “important” options values definition, with higher precedence over regular option value definitions. #15571 . Docs here
Feature: Display message when calling deactivate_conanvcvars. #15557
Feature: Add
self.info
information ofpackage_id
to serialized output in the graph, and forward it to package-lists. #15553 . Docs hereFeature: Log Git tool commands when running in verbose mode. #15514
Feature: Add verbose debug information (with
-vvv
) forconan.tools.files.copy()
calls. #15513Feature: Define
python_requires = "tested_reference_str"
for explicittest_package
ofpython_requires
. #15485 . Docs hereFeature: Adding CMakeToolchain.presets_build/run_environment to modify CMakePresets environment in generate() method. #15470 . Docs here
Feature: Add –allowed-packges to remotes to limit what references a remote can supply. #15464 . Docs here
Feature: Initial documentation to make
RemotesAPI
publicly available (experimental). #15462Feature: Add support for use of vcvars env variables when calling from powershell. #15461 . Docs here
Feature: New
Git(..., excluded=[])
feature to avoid “dirty” errors inGit
helper. #15457 . Docs hereFeature: New
core.scm:excluded
feature to avoid “dirty” errors inGit
helper andrevision_mode = "scm"
. #15457 . Docs hereFeature: Recipe
python_package_id_mode
forpython_requires
recipes, to define per-recipe effect on consumerspackage_id
. #15453 . Docs hereFeature: Add cmakeExecutable to configure preset. #15447 . Docs here
Feature: Add new
--core-conf
command line argument to allow passing core. confs via CLI. #15441 . Docs hereFeature: Add
detect_api.detect_msvc_update(version)
helper todetect_api
. #15435 . Docs hereFeature:
CMakeToolchain
definesjobs
in generatedCMakePresets.json
buildPresets. #15422Feature: Allow nested “ANY” definitions in
settings.yml
. #15415 . Docs hereFeature: Helpers
Git().coordinates_to_conandata()
andGit().checkout_from_conandata_coordinates()
to simplify scm based flows. #15377Feature:
AutotoolsToolchain
automatically inject-FS
for VS. #15375Feature: New conan upload
core.upload:parallel
for faster parallel uploads. #15360 . Docs hereFeature: Intel oneAPI compiler detection improvement. #15358
Feature: Display progress for long
conan list
commands. #15354Feature: Add extension_properties attribute to pass information to extensions from recipes. #15348 . Docs here
Feature: Implement compatibility_cppstd in extension_properties for the
compatibility.py
plugin to disable fallback to other cppstd for the recipe. #15348 . Docs hereFeature: Add
Git.get_commit(..., repository=True)
to obtain the repository commit, not the folder commit. #15304Feature: Ensure
--build=editable
and--build=cascade
works together. #15300 . Docs hereFeature: New
conan graph build-order --order=configuration
to output a different order, sorted by package binaries/configurations, not grouped by recipe revisions. #15270 . Docs hereFeature: Allow copy&paste of recipe revisions with timestamps from
--format=compact
intoconan lock add
. #15262 . Docs hereFix: Guarantee order of generators attribute execution. #15678
Fix: Solve issue with
[platform_tool_requires]
in the build profile and context. Discard[platform_requires]
in build profile. #15665Fix: Fix gcc detection in conda environments. #15664
Fix: Improve handling of .dirty download files when uploading backup sources. #15601
Fix: Fix relativize paths in generated files. #15592
Fix: Allow
None
values forCMakeToolchain.preprocessor_definitions
that will map to definitions without values. #15545 . Docs hereFix: Fix graph build-order –order=configuration text format output. #15538
Fix: Raise a helpful error when the remote is not reachable in case the user wants to work in offline mode. #15516
Fix: Avoid missing file stacktrace when no metadata exists for a source backup. #15501
Fix: Remove
--lockfile-packages
argument, it was not documented as it is was not intended for public usage. #15499 . Docs hereFix: Raise if check_type=int and conf value is set to bool. #15378
Fix: Add pkg-config entry to machine file generated by MesonToolchain, due to pkgconfig entry being deprecated since Meson 1.3.0. #15369
Fix: Fix graph explain not showing some differences in requirements if missing. #15355
Fix: Fix tools.info.package_id:confs when pattern did not match any defined conf. #15353
Fix: Fix
upload_policy=skip
with--build=missing
issues. #15336Fix: Accept
conan download/upload --list=.. --only-recipe
to download only the recipes. #15312Fix: Allow
cmake.build(build_type="Release")
for recipes built with multi-config systems but withoutbuild_type
setting. #14780Bugfix: Fix
MSBuildDeps
with components and skipped dependencies. #15626Bugfix: Avoid
provides
raising an error for packages that selftool_requires
to themselves to cross-build. #15575Bugfix: Fix build scope OS detection in tools.microsoft.visual.VCVars. #15568
Bugfix: Fix wrong propagation over
visible=False
when dependency is header-only. #15564Bugfix: Store the temporary cache folders inside
core.cache:storage_path
, soconan cache clean
also finds and clean them correctly. #15505Bugfix: The
conan export-pkg --format=json
output now returnsrecipe = "cache"
status, as the recipe is in the cache after the command. #15504Bugfix: The conan export-pkg command stores the lockfile excluding the
test_package
, following the same behavior as conan create. #15504Bugfix: Avoid conan test failing for
python_requires
test-package. #15485 . Docs hereBugfix: MesonToolchain calculates a valid apple_min_version_flag. #15465
Bugfix: Allow to limit
os
,compiler
and other settings with subsettings inbuild_id()
andpackage_id()
methods. #15439Bugfix: Fix getting environment variable CONAN_LOGIN_USERNAME_REMOTE. #15388
Bugfix: Don’t take . folder into consideration for tools.files.copy() excludes patterns. #15349
Bugfix: Disable creating editables without name and version. #15337
Bugfix: Fix Git.get_url_and_commit raising for some Git configs. #15271
Bugfix: Direct dependencies in the “host” context of packages being built shouldn’t be skipped. This allows for non C/C++ libraries artifacts, like images, in the “host” context, to be used as build-time resources. #15128
2.0.17 (10-Jan-2024)¶
Fix: Automatically create folder if
conan cache save --file=subfolder/file.tgz
subfolder doesn’t exist. #15409Bugfix: Fix libcxx detection when using CC/CXX env vars. #15418 . Docs here
Bugfix: Solve
winsdk_version
bug inCMakeToolchain
generator forcmake_minimum_required(3.27)
. #15373Bugfix: Fix visible trait propagation with
build=True
trait. #15357Bugfix: Fix package_id calculation when including conf values thru tools.info.package_id:confs. #15356
Bugfix: Order conf items when dumping them to allow reproducible package_id independent of the order the confs were declared. #15356
2.0.16 (21-Dec-2023)¶
2.0.15 (20-Dec-2023)¶
Feature: New
conan lock remove
command to remove requires from lockfiles. #15284 . Docs hereFeature: New
CMake.ctest()
helper method to launch directlyctest
instead of viacmake --target=RUN_TEST
. #15282Feature: Add tracking syntax in <host_version> for different references. #15274 . Docs here
Feature: Adding
tools.microsoft:winsdk_version
conf to makeVCVars
generator to use the givenwinsdk_version
. #15272 . Docs hereFeature: Add pkglist formatter for conan export command. #15266 . Docs here
Feature: Define
CONAN_LOG_LEVEL
env-var to be able to change verbosity at a global level. #15263 . Docs hereFeature: conan cache path xxx –folder xxxx raises an error if the folder requested does not exist. #15257
Feature: Add in operator support for ConanFile’s self.dependencies. #15221 . Docs here
Feature: Make
CMakeDeps
generator create aconandeps.cmake
that aggregates all direct dependencies in acmake
-like generator style. #15207 . Docs hereFeature: Add build environment information to CMake configure preset and run environment information to CMake test presets. #15192 . Docs here
Feature: Removed a warning about a potential issue with conan migration that would print every time a build failed. #15174
Feature: New
deploy()
method in recipes for explicit per-recipe deployment. #15172 . Docs hereFeature: Allow
tool-requires
to be used insource()
method injecting environment. #15153 . Docs hereFeature: Allow accessing the contents of settings.yml (and settings_user!) from ConfigAPI. #15151
Feature: Add builtin conf access from ConfigAPI. #15151
Feature: Add redirect_stdout to CMake integration methods. #15150
Feature: Add core:warnings_as_errors configuration option to make Conan raise on warnings and errors. #15149 . Docs here
Feature: Added FTP_TLS option using secure argument in ftp_download for secure communication. #15137
Feature: New
[replace_requires]
and[replace_tool_requires]
in profile for redefining requires, useful for package replacements likezlibng/zlib
, to solve conflicts, and to replace some dependencies by system alternatives wrapped in another Conan package recipe. #15136 . Docs hereFeature: Add stderr capture argument to conanfile’s run() method. #15121 . Docs here
Feature: New
[platform_requires]
profile definition to be able to replace Conan dependencies by platform-provided dependencies. #14871 . Docs hereFeature: New
conan graph explain
command to search, compare and explain missing binaries. #14694 . Docs hereFeature: Global
cpp_info
can be used to initialize components values. #13994Fix: Make core:warnings_as_errors accept a list #15297
Fix: Fix user confs package scoping when no separator was given #15296
Fix: Fix range escaping in conflict reports involving ranges. #15222
Fix: Allow hard
set_name()
andset_version()
to mutate name and version provided in command line. #15211 . Docs hereFix: Make conan graph info –format=text print to stdout. #15170
Fix: Avoid warning in CMake output due to CMAKE_POLICY_DEFAULT_CMP0091 unused variable. #15127
Fix: Deprecate
[system_tools]
in favor of[platform_tool_requires]
to align with[platform_requires]
for regular dependencies. Changed output from “System tool” to “Platform”. #14871 . Docs hereBugfix: Ensure user confs have at least 1 : separator #15296
Bugfix:
Git.is_dirty()
will usegit status . -s
to make sure it only process the current path, not the whole repo, similarly to otherGit
methods. #15289Bugfix: Make
self.info.clear()
and header-only packages to removepython_requires
andtool_requires
. #15285 . Docs hereBugfix: Make
conan cache save/restore
portable across Windows and other OSs. #15253Bugfix: Do not relativize absolute paths in
deployers
. #15244Bugfix: Add
architecture
toCMakePresets
to avoid cmake ignoring toolchain definitions when using presets. #15215Bugfix: Fix conan graph info –format=html reporting misleading conflicting nodes. #15196
Bugfix: Fix serialization of tool_requires in conan profile show –format=json. #15185
Bugfix: Fix NMakeDeps quoting issues. #15140
Bugfix: Fix the 2.0.14 migration to add LRU data to the cache when
storage_path
conf is defined. #15135Bugfix: Fix definition of
package_metadata_folder
for conan export-pkg command. #15126Bugfix: pyinstaller.py was broken for Python 3.12 due to a useless distutils import. #15116
Bugfix: Fix backup sources error when no core.sources:download_cache is set. #15109
2.0.14 (14-Nov-2023)¶
Feature: Added
riscv64, riscv32
architectures to defaultsettings.yml
and management of them in Meson and Autotools. #15053Feature: Allow only one simultaneous database connection. #15029
Feature: Add conan cache backup-upload to upload all the backup sources in the cache, regardless of which references they are from #15013 . Docs here
Feature: New
conan list --format=compact
for better UX. #15011 . Docs hereFeature: Ignore metadata upload by passing –metadata=”” #15007 . Docs here
Feature: Better output messages in conan upload #14984
Feature: Add extra flags to CMakeToolchain. #14966 . Docs here
Feature: Implement package load/restore from the cache, for CI workflows and moving packages over air-gaps. #14923 . Docs here
Feature: Compute version-ranges intersection to avoid graph version conflicts for compatible ranges #14912
Feature: CMake helper can use multiple targets in target argument. #14883
Feature: Add CMakeDeps and PkgConfigDeps generators listening to system_package_version property. #14808 . Docs here
Feature: Add shorthand syntax in cli to specify host and build in 1 argument #14727 . Docs here
Feature: Implement cache LRU control for cleaning of unused artifacts. #14054 . Docs here
Fix: Avoid
CMakeToolchain
overwriting userCMakePresets.json
when no layout nor output-folder is defined #15058Fix: Add
astra
,elbrus
andaltlinux
as distribution usingapt
in SystemPackageManager #15051Fix: Default to apt-get package manager in Linux Mint #15026 . Docs here
Fix: Make
Git()
check commits in remote server even for shallow clones. #15023Fix: Add new Apple OS versions to settings.yml #15015
Fix: Fix AutotoolsToolchain extraflags priority. #15005 . Docs here
Fix: Remove colors from
conan --version
output #15002Fix: Add an error message if the sqlite3 version is unsupported (less than 3.7.11 from 2012) #14950
Fix: Make cache DB always use forward slash for paths, to be uniform across Windows and Linux #14940
Fix: Solve re-build of an existing package revision (like forcing rebuild of a an existing header-only package), while previous folder was still used by other projects. #14938
Fix: Avoid a recipe mutating a
conf
to affect other recipes. #14932 . Docs hereFix: The output of system packages via
Apt.install()
orPkgConfig.fill_cpp_info
, likexorg/system
was very noisy to the Conan output, making it more quiet #14924Fix: Serialize the
path
information ofpython_requires
, necessary for computing buildinfo #14886Fix: Define remotes in conan source command in case recipe has
python_requires
that need to be downloaded from remotes. #14852Fix: Fix min target flag for xros and xros-simulator. #14776
Bugfix:
--build=missing
was doing unnecessary builds of packages that were not needed and could be skipped, in the case oftool_requires
having transitive dependencies. #15082BugFix: Add package revision to format=json in ‘conan export-pkg’ command #15042
Bugfix:
tools.build:download_source=True
will not fail when there are editable packages. #15004 . Docs hereBugfix: Transitive dependencies were incorrectly added to conandeps.xcconfig. #14898
Bugfix: Fix integrity-check (
upload --check
orcache check-integrity
) when theexport_source
has not been downloaded #14850Bugfix: Properly lock release candidates of python requires #14846
BugFix: Version ranges ending with
-
do not automatically activate pre-releases resolution in the full range. #14814 . Docs hereBugFix: Fix version ranges so pre-releases are correctly included in the lower bound and excluded in the upper bound. #14814 . Docs here
2.0.13 (28-Sept-2023)¶
Bugfix: Fix wrong cppstd detection for newer apple-clang versions introduced in 2.0.11. #14837
2.0.12 (26-Sept-2023)¶
Feature: Add host_tool to install() method in package_manager to indicate whether the package is a host tool or a library. #14752 . Docs here
Fix: Better error message when trying to
export-pkg
apython-require
package, and avoid it being exported and then failing. #14819Fix:
CMakeDeps
allowsset_property()
on all properties. #14813Fix: Add minor version for Apple clang 15.0. #14797 . Docs here
Fix: conan build command prettier error when <path> argument not provided. #14787
Bugfix: fix
compatibility()
oversettings_target
making it None #14825Bugfix:
compatible
packages look first in the cache, and only if not found, the servers, to allow offline installs when there are compatible packages. #14800BugFix: Reuse session in ConanRequester to speed up requests. #14795
Bugfix: Fix relative paths of
editable
packages when they have components partially defining directories. #14782
2.0.11 (18-Sept-2023)¶
Feature: Add
--format=json
formatter toconan profile show
command #14743 . Docs hereFeature: add new –deployer –generators args to ‘conan build’ cmd #14737 . Docs here
Feature: Better
CMakeToolchain
blocks interface. Added new.blocks.select()
,.blocks.keys()
. #14731 . Docs hereFeature: Add message when copying large files from download cache instead of downloading from server. #14716
Feature: MesonToolchain shows a warning message if any options are used directly. #14692 . Docs here
Feature: Support clang-cl in default profile plugin. #14682 . Docs here
Feature: Added mechanism to transform c, cpp, and/or ld binaries variables from Meson into lists if declared blank-separated strings. #14676
Feature: Add nobara distro to dnf package manager mapping. #14668
Feature: Ensure meson toolchain sets b_vscrt with clang-cl. #14664
Feature: Supporting regex pattern for conf tools.info.package_id:confs #14621 . Docs here
Feature: MakeDeps: Provide “require” information, and more styling tweaks. #14605
Feature: New
detect_api
to be used in profiles jinja templates. #14578 . Docs hereFeature: Allow access to settings_target in compatibility method. #14532
Fix: Improve error messages in ConanApi init failures, #14735
Fix: CMakeDeps: Remove “Target name … already exists” warning about duplicating aliases. #14644
Bugfix: Fix regression in
Git.run()
whenwin_bash=True
. #14756Bugfix: Change the default check=False in conan.tools.system.package_manager.Apt to True as the other package manager tools. #14728 . Docs here
Bugfix: Solved propagation of transitive shared dependencies of
test_requires
with diamonds. #14721Bugfix: Solve crash with conan export-pkg with
test_package
doing calls to remotes. #14712Bugfix: Do not binary-skip packages that have transitive dependencies that are not skipped, otherwise the build chain of build systems to those transitive dependencies like
CMakeDeps
generated files are broken. #14673Bugfix: Fix detected CPU architecture when running
conan profile detect
on native ARM64 Windows. #14667Bugfix:
conan lock create --update
now correctly updates references from servers if newer than cache ones. #14643Bugfix: Fix unnecessarily decorating command stdout with escape sequences. #14642
Bugfix:
tools.info.package_id:confs
shouldn’t affect header-only libraries. #14622
2.0.10 (29-Aug-2023)¶
Feature: Allow
patch_user
inconandata.yml
definition for user patches, not handled byapply_conandata_patches()
. #14576 . Docs hereFeature: Support for Xcode 15, iOS 17, tvOS 17, watchOS 10, macOS 14. #14538
Feature: Raise an error if users are adding incorrect ConanCenter web URL as remote. #14531
Feature: Serialization of graph with
--format=json
adds information topython_requires
soconan list --graph
can listpython_requires
too. #14529Feature: Add
rrev
,rrev_timestamp
andprev_timestamp
to the graph json serialization. #14526Feature: Allow
version-ranges
to resolve to editable packages too. #14510Feature: Add tools.files.download:verify. #14508 . Docs here
Feature: Add support for Apple visionOS. #14504
Feature: Warn of unknown version range options. #14493
Feature: Add tools.graph:skip_binaries to control binary skipping in the graph. #14466 . Docs here
Feature: New
tools.deployer:symlinks
configuration to disable symlinks copy in deployers. #14461 . Docs hereFeature: Allow remotes to automatically resolve missing
python_requires
in ‘editable add’. #14413 . Docs hereFeature: Add
cli_args
argument forCMake.install()
. #14397 . Docs hereFeature: Allow
test_requires(..., force=True)
. #14394 . Docs hereFeature: New
credentials.json
file to store credentials for Conan remotes. #14392 . Docs hereFeature: Added support for apk package manager and Alpine Linux #14382 . Docs here
Feature: conan profile detect can now detect the version of msvc when invoked within a Visual Studio prompt where CC or CXX are defined and pointing to the cl compiler executable #14364
Feature: Properly document
--build=editable
build mode. #14358 . Docs hereFeature:
conan create --build-test=missing
new argument to control what is being built as dependencies of thetest_package
folder. #14347 . Docs hereFeature: Provide new
default_build_options
attribute for defining options fortool_requires
in recipes. #14340 . Docs hereFeature: Implement
...@
as a pattern for indicating matches with packages without user/channel. #14338 . Docs hereFeature: Add support to Makefile by the new MakeDeps generator #14133 . Docs here
Fix: Allow –format=json in conan create for python-requires #14594
Fix: Remove conan v2 ready conan-center link. #14593
Fix: Make conan inspect use all remotes by default. #14572 . Docs here
Fix: Allow extra hyphens in versions pre-releases. #14561
Fix: Allow confs for
tools.cmake.cmaketoolchain
to be used if defined even iftools.cmake.cmaketoolchain:user_toolchain
is defined. #14556 . Docs hereFix: Serialize booleans of
dependencies
in--format=json
for graphs as booleans, not strings. #14530 . Docs hereFix: Avoid errors in conan upload when
python_requires
are not in the cache and need to be downloaded. #14511Fix: Improve error check of
lock add
adding a full package reference instead of a recipe reference. #14491Fix: Better error message when a built-in deployer failed to copy files. #14461 . Docs here
Fix: Do not print non-captured stacktraces to
stdout
but tostderr
. #14444Fix: Serialize
conf_info
in--format=json
output. #14442Fix: MSBuildToolchain/MSBuildDeps: Avoid passing C/C++ compiler options as options for ResourceCompile. #14378
Fix: Removal of plugin files result in a better error message instead of stacktrace. #14376
Fix: Fix CMake system processor name on armv8/aarch64. #14362
Fix: Make backup sources
core.sources
conf not mandate the final slash. #14342Fix: Correctly propagate options defined in recipe
default_options
totest_requires
. #14340 . Docs hereFix: Invoke XCRun using conanfile.run() so that environment is injected. #14326
Fix: Use
abspath
forconan config install
to avoid symlinks issues. #14183Bugfix: Solve
build_id()
issues, when multiple differentpackage_ids
reusing same build-folder. #14555Bugfix: Avoid DB errors when timestamp is not provided to conan download when using package lists. #14526
Bugfix: Print exception stacktrace (when -vtrace is set) into stderr instead of stdout #14522
Bugfix: Print only packages confirmed interactively in conan upload. #14512
Bugfix: ‘conan remove’ was outputting all entries in the cache matching the filter not just the once which where confirmed by the user. #14478
Bugfix: Better error when passing –channel without –user. #14443
Bugfix: Fix
settings_target
computation fortool_requires
of packages already in the “build” context. #14441Bugfix: Avoid
DB is locked
error whencore.download:parallel
is defined. #14410Bugfix: Make generated powershell environment scripts relative when using deployers. #14391
Bugfix: fix profile [tool_requires] using revisions that were ignored. #14337
2.0.9 (19-Jul-2023)¶
Feature: Add implements attribute in ConanFile to provide automatic management of some options and settings. #14320 . Docs here
Feature: Add apple-clang 15. #14302
Fix: Allow repository being dirty outside of conanfile.py folder when using revision_mode = “scm_folder”. #14330
Fix: Improve the error messages and provide Conan traces for errors in compatibility.py and profile.py plugins. #14322
Fix:
flush()
output streams after every message write. #14310Bugfix: Fix Package signing plugin not verifying the downloaded sources. #14331 . Docs here
Bugfix: Fix
CMakeUserPresets
inherits from conan generated presets due to typo. #14325Bugfix: ConanPresets.json contains duplicate presets if multiple user presets inherit from the same conan presets. #14296
Bugfix: Meson prefix param is passed as UNIX path. #14295
Bugfix: Fix CMake Error: Invalid level specified for –loglevel when tools.build:verbosity is set to quiet. #14289
2.0.8 (13-Jul-2023)¶
Feature: Add GCC 10.5 to default settings.yml. #14252
Feature: Let pkg_config_custom_content overwrite default *.pc variables created by PkgConfigDeps. #14233 . Docs here
Feature: Let pkg_config_custom_content be a dict-like object too. #14233 . Docs here
Feature: The fix_apple_shared_install_name tool now uses xcrun to resolve the otool and install_name_tool programs. #14195
Feature: Manage shared, fPIC, and header_only options automatically. #14194 . Docs here
Feature: Manage package ID for header-library package type automatically. #14194 . Docs here
Feature: New
cpp_info.set_property("cmake_package_version_compat" , "AnyNewerVersion")
forCMakeDeps
generator. #14176 . Docs hereFeature: Metadata improvements. #14152
Fix: Improve error message when missing binaries with conan test command. #14272
Fix: Make conan download command no longer need to load conanfile, won’t fail for 1.X recipes or missing
python_requires
. #14261Fix: Using upload with the –list argument now permits empty recipe lists. #14254
Fix: Guarantee that
Options.rm_safe
never raises. #14238Fix: Allow tools.gnu:make_program to affect every CMake configuration. #14223
Fix: Add missing package_type to conan new lib templates. #14215
Fix: Add clarification for the default folder shown when querying a package reference. #14199 . Docs here
Fix: Enable existing status-message code in the patch() function. #14177
Fix: Use
configuration
inXcodeDeps
instead of alwaysbuild_type
. #14168Fix: Respect symlinked path for cache location. #14164
Fix:
PkgConfig
usesconanfile.run()
instead of internal runner to get full Conan environment from profiles and dependencies. #13985Bugfix: Fix leaking of
CMakeDeps
CMAKE_FIND_LIBRARY_SUFFIXES
variable. #14253Bugfix: Fix conan not finding generator by name when multiple custom global generators are detected. #14227
Bugfix: Improve display of graph conflicts in conan graph info in html format. #14190
Bugfix: Fix
CMakeToolchain
cross-building from Linux to OSX. #14187Bugfix: Fix KeyError in backup sources when no package is selected. #14185
2.0.7 (21-Jun-2023)¶
Feature: Add new
arm64ec
architecture, used to define CMAKE_GENERATOR_PLATFORM. #14114 . Docs hereFeature: Make
CppInfo
a public, documented, importable tool for generators that need to aggregate them. #14101 . Docs hereFeature: Allow
conan remove --list=pkglist
to remove package-lists. #14082 . Docs hereFeature: Output for
conan remove --format
both text (summary of deleted things) and json. #14082 . Docs hereFeature: Add core.sources:excluded_urls to backup sources. #14020
Feature: conan test command learned the
--format=json
formatter. #14011 . Docs hereFeature: Allow
pkg/[version-range]
expressions inconan list
(and download, upload, remove) patterns. #14004 . Docs hereFeature: Add
conan upload --dry-run
equivalent to 1.Xconan upload --skip-upload
. #14002 . Docs hereFeature: Add new command conan version to format the output. #13999 . Docs here
Feature: Small UX improvement to print some info while downloading large files. #13989
Feature: Use
PackagesList
as input argument forconan upload --list=pkglist.json
. #13928 . Docs hereFeature: Use
--graph
input forconan list
to create aPackagesList
that can be used as input for conan upload. #13928 . Docs hereFeature: New metadata files associated to recipes and packages that can be uploaded, downloaded and added after the package exists. #13918
Feature: Allow to specify a custom deployer output folder. #13757 . Docs here
Feature: Split build & compilation verbosity control to two confs. #13729 . Docs here
Feature: Added bindir to generated .pc file in PkgConfigDeps. #13623 . Docs here
Fix: Deprecate
AutoPackage
remnant from Conan 1.X. #14083 . Docs hereFix: Fix description for the conf entry for default build profile used. #14075 . Docs here
Fix: Remove trailing
.
inconanfile.xxx_folder
that is breaking subsystems like msys2. #14061Fix: Avoid caching issues when some intermediate package in the graph calls
aggregated_components()
over some dependency and using--deployer
, generators still pointed to the Conan cache and not deployed copy. #14060Fix: Allow internal
Cli
object to be called more than once. #14053Fix: Force
pyyaml>=6
for Python 3.10, as previous versions broke. #13990Fix: Improve graph conflict message when Conan can’t show one of the conflicting recipes. #13946
Bugfix: Solve bug in timestamp of non-latest revision download from the server. #14110
Bugfix: Fix double base path setup in editable packages. #14109
Bugfix: Raise if
conan graph build-order
graph has any errors, instead of quietly doing nothing and outputting and empty json. #14106Bugfix: Avoid incorrect path replacements for
editable
packages when folders have overlapping matching names. #14095Bugfix: Set clang as the default FreeBSD detected compiler. #14065
Bugfix: Add prefix var and any custom content (through the pkg_config_custom_content property) to already generated pkg-config root .pc files by PkgConfigDeps. #14051
Bugfix: conan create command returns always the same output for
--format=json
result graph, irrespective of test_package existence. #14011 . Docs hereBugfix: Fix problem with
editable
packages when definingself.folders.root=".."
parent directory. #13983Bugfix: Removed libdir1 and includedir1 as the default index. Now, PkgConfigDeps creates the libdir and includedir variables by default in .pc files. #13623 . Docs here
2.0.6 (26-May-2023)¶
Feature: Add a tools.cmake:cmake_program configuration item to allow specifying the location of the desired CMake executable. #13940 . Docs here
Fix: Output “id” property in graph json output as str instead of int. #13964 . Docs here
Fix: Fix custom commands in a layer not able to do a local import. #13944
Fix: Improve the output of download + unzip. #13937
Fix: Add missing values to package_manager:mode in conan config install. #13929
Bugfix: Ensuring the same graph-info JSON output for graph info, create, export-pkg, and install. #13967 . Docs here
Bugfix:
test_requires
were affecting thepackage_id
of consumers as regularrequires
, but they shouldn’t. #13966Bugfix: Define
source_folder
correctly in the json output when-c tools.build:download_source=True
. #13953Bugfix: Fixed and completed the graph info xxxx –format json output, to publicly document it. #13934 . Docs here
Bugfix: Fix “double” absolute paths in premakedeps. #13926
Bugfix: Fix regression from 2.0.5 https://github.com/conan-io/conan/pull/13898, in which overrides of packages and components specification was failing #13923
2.0.5 (18-May-2023)¶
Feature: -v argument defaults to the VERBOSE level. #13839
Feature: Avoid showing unnecessary skipped dependencies. Now, it only shows a list of reference names if exists skipped binaries. They can be completely listed by adding -v (verbose mode) to the current command. #13836
Feature: Allow step-into dependencies debugging for packages built locally with
--build
#13833 . Docs hereFeature: Allow non relocatable, locally built packages with
upload_policy="skip"
andbuild_policy="missing"
#13833 . Docs hereFeature: Do not move “build” folders in cache when
package-revision
is computed to allow locating sources for dependencies debuggability with step-into #13810Feature: New
settings.possible_values()
method to query the range of possible values for a setting. #13796 . Docs hereFeature: Optimize and avoid hitting servers for binaries when
upload_policy=skip
#13771Feature: Partially relativize generated environment .sh shell scripts #13764
Feature: Improve settings.yml error messages #13748
Feature: Auto create empty
global.conf
to improve UX looking for file in home. #13746 . Docs hereFeature: Render the profile file name as profile_name #13721 . Docs here
Feature: New global custom generators in cache “extensions/generators” that can be used by name. #13718 . Docs here
Feature: Improve conan inspect output, it now understands set_name/set_version. #13716 . Docs here
Feature: Define new
self.tool_requires("pkg/<host_version>")
to allow some tool-requires to follow and use the same version as the “host” regular requires do. #13712 . Docs hereFeature: Introduce new
core:skip_warns
configuration to be able to silence some warnings in the output. #13706 . Docs hereFeature: Add info_invalid to graph node serialization #13688
Feature: Computing and reporting the
overrides
in the graph, and in thegraph build-order
#13680Feature: New
revision_mode = "scm_folder"
for mono-repo projects that want to usescm
revisions. #13562 . Docs hereFeature: Demonstrate that it is possible to
tool_requires
different versions of the same package. #13529 . Docs hereFix: build_scripts now set the run trait to True by default #13901 . Docs here
Fix: Fix XcodeDeps includes skipped dependencies. #13880
Fix: Do not allow line feeds into
pkg/version
reference fields #13870Fix: Fix
AutotoolsToolchain
definition oftools.build:compiler_executable
for Windows subsystems #13867Fix: Speed up the CMakeDeps generation #13857
Fix: Fix imported library config suffix. #13841
Fix: Fail when defining an unkown conf #13832
Fix: Fix incorrect printing of “skipped” binaries in the
conan install/create
commands, when they are used by some other dependencies. #13778Fix: Renaming the cache “deploy” folder to “deployers” and allow
-d, --deployer
cli arg. (“deploy” folder will not break but will warn as deprecated). #13740 . Docs hereFix: Omit
-L
libpaths inCMakeDeps
for header-only libraries. #13704Bugfix: Fix when a
test_requires
is also a regular transitive “host” requires and consumer defines components. #13898Bugfix: Fix propagation of options like
*:shared=True
defined in recipes #13855Bugfix: Fix
--lockfile-out
paths for ‘graph build-order’ and ‘test’ commands #13853Bugfix: Ensure backup sources are uploaded in more cases #13846
Bugfix: fix
settings.yml
definition ofintel-cc
cppstd=03
#13844Bugfix: Fix conan upload with backup sources for exported-only recipes #13779
Bugfix: Fix
conan lock merge
of lockfiles containing alias #13763Bugfix: Fix python_requires in transitive deps with version ranges #13762
Bugfix: fix CMakeToolchain CMAKE_SYSTEM_NAME=Generic for baremetal #13739
Bugfix: Fix incorrect environment scripts deactivation order #13707
Bugfix: Solve failing lockfiles when graph has requirements with
override=True
#13597
2.0.4 (11-Apr-2023)¶
Feature: extend
--build-require
to more commands (graph info
,lock create
,install
) and cases. #13669 . Docs hereFeature: Add -d tool_requires to conan new. #13608 . Docs here
Feature: Make CMakeDeps, CMakeToolchain and Environment (.bat, Windows only) generated files have relative paths. #13607
Feature: Adding preliminary (non documented, dev-only) support for premake5 deps (PremakeDeps). #13390
Fix: Update old conan user references to
conan remote login
. #13671Fix: Improve dependencies options changed in
requirements()
error msg. #13668Fix: [system_tools] was not reporting the correct resolved version, but still the original range. #13667
Fix: Improve provides conflict message error. #13661
Fix: When server responds Forbidden to the download of 1 file in a recipe/package, make sure other files and DB are cleaned. #13626
Fix: Add error in conan remove when using –package-query without providing a pattern that matches packages. #13622
Fix: Add
direct_deploy
subfolder for thedirect_deploy
deployer. #13612 . Docs hereFix: Fix html output when pattern does not list package revisions, like:
conan list "*#*:*"
. #13605Bugfix:
conan list -p <package-query>
failed when a package had no settings or options. #13662Bugfix: python_requires now properly loads remote requirements. #13657
Bugfix: Fix crash when
override
is used in a node of the graph that is also the closing node of a diamond. #13631Bugfix: Fix the
--package-query
argument foroptions
. #13618Bugfix: Add
full_deploy
subfolder for thefull_deploy
deployer to avoid collision with “build” folder. #13612 . Docs hereBugfix: Make STATUS the default log level. #13610
Bugfix: Fix double delete error in conan cache clean. #13601
2.0.3 (03-Apr-2023)¶
Feature:
conan cache clean
learned the--all
and--temp
to clean everything (sources, builds) and also the temporary folders. #13581 . Docs hereFeature: Introduce the
conf
dictionary update semantics with*=
operator. #13571 . Docs hereFeature: Support MacOS SDK 13.1 (available in Xcode 14.2). #13531
Feature: The
full_deploy
deployer together withCMakeDeps
generator learned to create relative paths deploys, so they are relocatable. #13526Feature: Introduce the
conan remove *#!latest
(also for package-revisions), to remove all revisions except the latest one. #13505 . Docs hereFeature: New
conan cache check-integrity
command to replace 1.X legacyconan upload --skip-upload --check
. #13502 . Docs hereFeature: Add filtering for options and settings in conan list html output. #13470
Feature: Automatic server side source backups for third parties. #13461
Feature: Add tools.android:cmake_legacy_toolchain configuration useful when building CMake projects for Android. If defined, this will set the value of ANDROID_USE_LEGACY_TOOLCHAIN_FILE. It may be useful to set this to False if compiler flags are defined via tools.build:cflags or tools.build:cxxflags to prevent Android’s legacy CMake toolchain from overriding the values. #13459 . Docs here
Feature: Default
tools.files.download:download_cache
tocore.download:download_cache
, so it is only necessary to define one. #13458Feature: Authentication for
tools.files.download()
. #13421 . Docs hereFix: Define a way to update
default_options
inpython_requires_extend
extension. #13487 . Docs hereFix: Allow again to specify
self.options["mydep"].someoption=value
, equivalent to"mydep/*"
. #13467Fix: Generate cpp_std=vc++20 for c++20 with meson with VS2019 and VS2022, rather than vc++latest. #13450
Bugfix: Fixed
CMakeDeps
not clearingCONAN_SHARED_FOUND_LIBRARY
var infind_library()
. #13596Bugfix: Do not allow adding more than 1 remote with the same remote name. #13574
Bugfix:
cmd_wrapper
added missing parameterconanfile
. #13564 . Docs hereBugfix: Avoid generators errors because dependencies binaries of editable packages were “skip”. #13544
Bugfix: Fix subcommands names when the parent command has underscores. #13516
Bugfix: Fix
python-requires
in remotes when running conan export-pkg. #13496Bugfix: Editable packages now also follow
build_folder_vars
configuration. #13488Bugfix: Fix
[system_tools]
profile composition. #13468
2.0.2 (15-Mar-2023)¶
Feature: Allow relative paths to the Conan home folder in the
global.conf
. #13415 . Docs hereFeature: Some improvements for html formatter in conan list command. #13409 . Docs here
Feature: Adds an optional “build_script_folder” argument to the autoreconf method of the Autotools class. It mirrors the same argument and behavior of the configure method of the same class. That is, it allows one to override where the tool is run (by default it runs in the source_folder. #13403
Feature: Create summary of cached content. #13386
Feature: Add conan config show <conf> command. #13354 . Docs here
Feature: Allow
global.conf
jinja2 inclusion of other files. #13336Feature: Add
conan export-pkg --skip-binaries
to allow exporting without binaries of dependencies. #13324 . Docs hereFeature: Add core.version_ranges:resolve_prereleases conf to control whether version ranges can resolve to prerelease versions #13321
Fix: Allow automatic processing of
package_type = "build-scripts"
in conan create as--build-require
. #13433Fix: Improve the detection and messages of server side package corruption. #13432
Fix: Fix conan download help typo. #13430
Fix: Remove profile arguments from conan profile path. #13423 . Docs here
Fix: Fix typo in _detect_compiler_version. #13396
Fix: Fix
conan profile detect
detection oflibc++
forclang
compiler on OSX. #13359Fix: Allow internal
vswhere
calls to detect and use VS pre-releases too. #13355Fix: Allow conan export-pkg to use remotes to install missing dependencies not in the cache. #13324 . Docs here
Fix: Allow conversion to
dict
ofsettings.yml
lists whensettings_user.yml
define adict
. #13323Fix: Fix flags passed by AutotoolsToolchain when cross compiling from macOS to a non-Apple OS. #13230
BugFix: Fix issues in
MSBuild
with custom configurations when custom configurations has spaces. #13435Bugfix: Solve bug in
conan profile path <nonexisting>
that was crashing. #13434Bugfix: Add global verbosity conf tools.build:verbosity instead of individual ones. #13428 . Docs here
Bugfix: Avoid raising fatal exceptions for malformed custom commands. #13365
Bugfix: Do not omit
system_libs
from dependencies even if they are header-only. #13364Bugfix: Fix
VirtualBuildEnv
environment not being created whenMesonToolchain
is instantiated. #13346Bugfix: Nicer error in the compatibility plugin with custom compilers. #13328
Bugfix: adds qcc cppstd compatibility info to allow dep graph to be calculated. #13326
2.0.1 (03-Mar-2023)¶
Feature: Add –insecure alias to –verify-ssl in config install. #13270 . Docs here
Feature: Add .conanignore support to conan config install. #13269 . Docs here
Feature: Make verbose tracebacks on exception be shown for
-vv
and-vvv
, instead of custom env-var used in 1.X. #13226Fix: Minor improvements to conan install and 2.0-readiness error messages. #13299
Fix: Remove
vcvars.bat
VS telemetry env-var, to avoid Conan hanging. #13293Fix: Remove legacy
CMakeToolchain
support forCMakePresets
schema2 forCMakeUserPresets.json
. #13288 . Docs hereFix: Remove
--logger
json logging and legacy traces. #13287 . Docs hereFix: Raise arg error if
conan config list unexpected-arg
. #13282Fix: Do not auto-detect
compiler.runtime_type
formsvc
, rely on profile plugin. #13277Fix: Fix conanfile.txt options parsing error message. #13266
Fix: Improve error message for unified patterns in options. #13264
Fix: Allow
conan remote add --force
to force re-definition of an existing remote name. #13249Fix: Restore printing of profiles for build command. #13214
Fix: Change conan build argument description for “path” to indicate it is only for conanfile.py and explicitly state that it does not work with conanfile.txt. #13211 . Docs here
Fix: Better error message when dependencies
options
are defined inrequirements()
method. #13207Fix: Fix broken links to docs from error messages and readme. #13186
Bugfix: Ensure that topics are always serialized as lists. #13298
Bugfix: Ensure that provides are always serialized as lists. #13298
Bugfix: Fixed the detection of certain visual c++ installations. #13284
Bugfix: Fix supported
cppstd
values formsvc
compiler. #13278Bugfix: CMakeDeps generate files for
tool_requires
with the samebuild_type
as the “host” context. #13267Bugfix: Fix definition of patterns for dependencies options in configure(). #13263
Bugfix: Fix CMakeToolchain error when output folder in different Win drive. #13248
Bugfix: Do not raise errors if a
test_requires
is not used by components.requires
. #13191
2.0.0 (22-Feb-2023)¶
Feature: Change default profile cppstd for apple-clang to gnu17. #13185
Feature: New
conan remote auth
command to force authentication in the remotes #13180Fix: Allow defining options trait in
test_requires(..., options={})
#13178Fix: Unifying Conan commands help messages. #13176
Bugfix: Fix MesonToolchain wrong cppstd in apple-clang #13172
Feature: Improved global Conan output messages (create, install, export, etc.) #12746
2.0.0-beta10 (16-Feb-2023)¶
Feature: Add basic html output to conan list command. #13135
Feature: Allow
test_package
to process--build
arguments (computing –build=never for the main, non test_package graph). #13117Feature: Add –force argument to remote add. #13112
Feature: Validate if the input configurations exist, to avoid typos. #13110
Feature: Allow defining
self.folders.build_folder_vars
in recipeslayout()
. #13109Feature: Block settings assignment. #13099
Feature: Improve conan editable ui. #13093
Feature: Provide the ability for users to extend Conan generated CMakePresets. #13090
Feature: Add error messages to help with the migration of recipes to 2.0, both from ConanCenter and from user repos. #13074
Feature: Remove option.fPIC for shared in conan new templates. #13066
Feature: Add conan cache clean subcommand to clean build and source folders. #13050
Feature: Implement customizable
CMakeToolchain.presets_prefix
so presets name prepend this. #13015Feature: Add [system_tools] section to profiles to use your own installed tools instead of the packages declared in the requires. #10166
Fix: Fixes in powershell escaping. #13084
Fix: Define
CMakeToolchain.presets_prefix="conan"
by default, to avoid conflict with other users presets. #13015
2.0.0-beta9 (31-Jan-2023)¶
Feature: Add package names in Conan cache hash paths. #13011
Feature: Implement
tools.build:download_source
conf to force the installation of sources in conan install orconan graph info
. #13003Feature: Users can define their own settings in settings_user.yml that will be merged with the Conan settings.yml. #12980
Feature: List disabled remotes too. #12937
Fix: PkgConfiDeps is using the wrong
dependencies.host
from dependencies instead ofget_transitive_requires()
computation. #13013Fix: Fixing transitive shared linux libraries in CMakeDeps. #13010
Fix: Fixing issues with test_package output folder. #12992
Fix: Improve error messages for wrong methods. #12962
Fix: Fix fail in parallel packages download due to database concurrency issues. #12930
Fix: Enable authentication against disabled remotes. #12913
Fix: Improving system_requirements. #12912
Fix: Change tar format to PAX, which is the Python3.8 default. #12899
2.0.0-beta8 (12-Jan-2023)¶
Feature: Add unix_path_package_info_legacy function for those cases in which it is used in package_info in recipes that require compatibility with Conan 1.x. In Conan 2, path conversions should not be performed in the package_info method. #12886
Feature: New serialization json and printing for
conan list
. #12883Feature: Add requirements to conan new cmake_{lib,exe} #12875
Feature: Allow
--no-remotes
to force temporal disabling of remotes #12808Feature: Add barebones template option to conan new. #12802
Feature: Avoid requesting package configuration if PkgID is passed. #12801
Feature: Implemented conan list *#latest and conan list *:*#latest. Basically, this command can show the latest RREVs and PREVs for all the matching references. #12781
Feature: Allow chaining of self.output write methods #12780
Fix: Make
graph info
filters to work on json output too #12836Bugfix: Fix bug to pass a valid GNU triplet when using AutotoolsToolchain and cross-building on Windows. #12881
Bugfix: Ordering if same ref.name but different versions. #12801
2.0.0-beta7 (22-Dec-2022)¶
Feature: Raise an error when a generator is both defined in generators attribute and instantiated in generate() method #12722
Feature: test_requires improvements, including allowing it in conanfile.txt #12699
Feature: Improve errors for when required_conan_version has spaces between the operator and the version #12695
Feature: ConanAPI cleanup and organization #12666
2.0.0-beta6 (02-Dec-2022)¶
Feature: Use
--confirm
to not request confirmation when removing instead of--force
#12636Feature: Simplify loading conaninfo.txt for search results #12616
Feature: Renamed ConanAPIV2 to ConanAPI #12615
Feature: Refactor ConanAPI #12615
Feature: Improve conan cache path command #12554
Feature: Improve #latest and pattern selection from remove/upload/download #12572
Feature: Add build_modules to provided deprecated warning to allow migration from 1.x #12578
Feature: Lockfiles alias support #12525
2.0.0-beta5 (11-Nov-2022)¶
Feature: Improvements in the remotes management and API #12468
Feature: Implement env_info and user_info as fake attributes in Conan 2.0 #12351
Feature: Improve settings.rm_safe() #12379
Feature: New RecipeReference equality #12506
Feature: Simplifying compress and uncompress of .tgz files #12378
Feature: conan source command does not require a default profile #12475
Feature: Created a proper LockfileAPI, with detailed methods (update, save, etc), instead of several loose methods #12502
Feature: The conan export can also produce lockfiles, necessary for users doing a 2 step (export + install–build) process #12502
Feature: Drop compat_app #12484
Fix: Fix transitive propagation of transitive_headers=True #12508
Fix: Fix transitive propagation of transitive_libs=False for static libraries #12508
Fix: Fix test_package for python_requires #12508
2.0.0-beta4 (11-Oct-2022)¶
Feature: Do not allow doing conan create/export with uncommitted changes using revision_mode=scm #12267
Feature: Simplify conan inspect command, removing path subcommand #12263
Feature: Add –deploy argument to graph info command #12243
Feature: Pass graph object to deployers instead of ConanFile #12243
Feature: Add included_files method to conan.tools.scm.Git #12246
Feature: Improve detection of clang libcxx #12251
Feature: Remove old profile variables system in favor of Jinja2 syntax in profiles #12152
Fix: Update command to follow Conan 2.0 conventions about CLI output #12235
Fix: Fix aggregation of test trait in diamonds #12080
2.0.0-beta3 (12-Sept-2022)¶
Feature: Decouple test_package from create. #12046
Feature: Warn if special chars in exported refs. #12053
Feature: Improvements in MSBuildDeps traits. #12032
Feature: Added support for CLICOLOR_FORCE env var, that will activate the colors in the output if the value is declared and different to 0. #12028
Fix: Call source() just once for all configurations. #12050
Fix: Fix deployers not creating output_folder. #11977
Fix: Fix build_id() removal of require. #12019
Fix: If Conan fails to load a custom command now it fails with a useful error message. #11720
Bugfix: If the ‘os’ is not specified in the build profile and a recipe, in Windows, wanted to run a command. #11728
2.0.0-beta2 (27-Jul-2022)¶
Feature: Add traits support in MSBuildDeps. #11680
Feature: Add traits support in XcodeDeps. #11615
Feature: Let dependency define package_id modes. #
Feature: Add
conan.conanrc
file to setup the conan user home. #11675Feature: Add
core.cache:storage_path
to declare the absolute path where you want to store the Conan packages. #11672Feature: Add tools for checking max cppstd version. #11610
Feature: Add a
post_build_fail
hook that is called when a build fails. #11593Feature: Add
pre_generate
andpost_generate
hook, covering the generation of files around thegenerate()
method call. #11593Feature: Brought
conan config list
command back and other conf improvements. #11575Feature: Added two new arguments for all commands -v for controlling the verbosity of the output and –logger to output the contents in a json log format for log processors. #11522
2.0.0-beta1 (20-Jun-2022)¶
Feature: New graph model to better support C and C++ binaries relationships, compilation, and linkage.
Feature: New documented public Python API, for user automation
Feature: New build system integrations, more flexible and powerful, and providing transparent integration when possible, like
CMakeDeps
andCMakeToolchain
Feature: New custom user commands, that can be built using the public PythonAPI and can be shared and installed with
conan config install
Feature: New CLI interface, with cleaner commands and more structured output
Feature: New deployers mechanism to copy artifacts from the cache to user folders, and consume those copies while building.
Feature: Improved
package_id
computation, taking into account the new more detailed graph model.Feature: Added
compatibility.py
extension mechanism to allow users to define binary compatibility globally.Feature: Simpler and more powerful
lockfiles
to provide reproducibility over time.Feature: Better configuration with
[conf]
and better environment management with the newconan.tools.env
tools.Feature: Conan cache now can store multiple revisions simultaneously.
Feature: New extensions plugins to implement profile checking, package signing, and build commands wrapping.
Feature: Used the package immutability for an improved update, install and upload flows.