Releases: conan-io/conan
Releases Β· conan-io/conan
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: π
- Feature: Add macOS versions 14.2, 14.3, 14.4 to
settings.yml
. (#15859). Docs: π - Feature: New graph
html
: more information, test-requires, hiding/showing different packages (build, test). (#15846). Docs: π - Feature: Add
--backup-sources
flag toconan cache clean
. (#15845) - Feature: Add
conan graph outdated
command that lists the dependencies that have newer versions in remotes (#15838). Docs: π - 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: π - Feature: Add a parameter to
trim_conandata
to avoid raising an exception when conandata.yml file doesn't exist. (#15829). Docs: π - Feature: Added
build_context_folder
to PkgConfigDeps. (#15813). Docs: π - Feature: Included
build.pkg_config_path
in the built-in options section in the MesonToolchain template. (#15813). Docs: π - Feature: Update
_meson_cpu_family_map
to supportarm64ec
. (#15812) - Feature: Added support for Clang 18. (#15806). Docs: π
- Feature: Add basic support in CMakeToolchain for universal binaries. (#15775). Docs: π
- Feature: New
tools.cmake.cmake_layout:build_folder
config that allows re-definingcmake_layout
local build-folder. (#15767). Docs: π - Feature: 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: π - Feature: (Experimental) Add
conan config install-pkg myconf/[*]
new configuration inside Conan packages with newpackage_type = "configuration"
. (#15748). Docs: π - Feature: (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: π - Feature: Make
cppstd_flag
public to return the corresponding C++ standard flag based on the settings. (#15710). Docs: π - Feature: Allow
self.name
andself.version
inbuild_folder_vars
attribute and conf. (#15705). Docs: π - Feature: Add
conan list --filter-xxx
arguments to list package binaries that match settings+options. (#15697). Docs: π - Feature: Add
detect_libc
to thedetect_api
to get the name and version of the C library. (#15683). Docs: π - Feature: New
CommandAPI
subapi in theConanAPI
that allows calling other commands. (#15630). Docs: π - Fix: Avoid unnecessary build of
tool_requires
when--build=missing
and repeatedtool_requires
. (#15885) - Fix: Fix
CMakeDeps
set_property(... APPEND
argument order. (#15877) - Fix: 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. (#15823) - Fix: Add
package_type="static-library"
to theconan new msbuild_lib
template. (#15807) - Fix: Avoid
platform_requires
to fail when explicit options are being passed viarequires(.., options={})
. (#15804) - Fix: Make
CMakeToolchain
end with newline. (#15788) - Fix: Do not allow
conan list
binary filters or package query if a binary pattern is not provided. (#15781) - Fix: Avoid
CMakeToolchain.preprocessor_definition
definitions to"None"
literal string when it has no value (PythonNone
). (#15756) - Fix: Improved
conan install <path> --deployer-package=*
case that was crashing when usingself.package_folder
. (#15737) - Fix: 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. (#15704) - Fix: 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. (#15870) - Bugfix: Fix
CMakeDeps
multi-config when there are conditional dependencies on thebuild_type
. (#15853) - Bugfix: Move
get_backup_sources()
method to expectedCacheAPI
fromUploadAPI
. (#15845) - Bugfix: Avoid TypeError when a version in conandata.yml lists no patches. (#15842)
- Bugfix: Solve
package_type=build-scripts
issue with lockfiles andconan create
. (#15802) - Bugfix: Allow
--channel
command line argument if the recipe specifiesuser
attribute. (#15794) - Bugfix: Fix cross-compilation to Android from Windows when using
MesonToolchain
. (#15790) - Bugfix: Fix
CMakeToolchain
GENERATOR_TOOLSET whencompiler.update
is defined. (#15789) - Bugfix: Solved evaluation of
conf
items when they matched a Python module (#15779) - Bugfix: Fix
PkgConfigDeps
generating .pc files for itstool_requires
when it is in the build context already. (#15763) - Bugfix: Adding
VISIBILITY
flags toCONAN_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. (#15727) - Bugfix: Fix version precendence for metadata version ranges. (#15653)
2.1.0 (15-Feb-2024)
- Feature: Implement multi-config
tools.build:xxxx
flags inCMakeToolchain
. (#15654) - Feature: Add ability to pass patterns to
--update
flag. (#15652). Docs: π - Feature: Add
--format=json
formatter toconan 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 toconan cache path
. (#15613) - Feature: Add the --order-by argument for conan graph build-order. (#15602). Docs: π
- 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: π - Feature: Add configuration to specify desired CUDA Toolkit in CMakeToolchain for Visual Studio CMake generators. (#15572). Docs: π
- Feature: New "important" options values definition, with higher precedence over regular option value definitions. (#15571). Docs: π
- 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: π - Feature: Log Git tool commands when running in verbose mode. (#15514)
- Feature: Add verbose debug information (with
-vvv
) forconan.tools.files.copy()
calls. (#15513) - Feature: Define
python_requires = "tested_reference_str"
for explicittest_package
ofpython_requires
. (#15485). Docs: π - Feature: Adding
CMakeToolchain.presets_build/run_environment
to modifyCMakePresets
environment ingenerate()
method. (#15470). Docs: π - Feature: Add
--allowed-packges
to remotes to limit what references a remote can supply. (#15464). Docs: π - Feature: Initial documentation to make
RemotesAPI
publicly available (experimental). (#15462) - Feature: Add support for use of vcvars env variables when calling from powershell. (#15461). Docs: π
- Feature: New
Git(..., excluded=[])
feature to avoid "dirty" errors inGit
helper. (#15457). Docs: π - Feature: New
core.scm:excluded
feature to avoid "dirty" errors inGit
helper andrevision_mode = "scm"
. (#15457). Docs: π - Feature: Recipe
python_package_id_mode
forpython_requires
recipes, to define per-recipe effect on consumerspackage_id
. (#15453). Docs: π - Feature: Add cmakeExecutable to configure preset. (#15447). Docs: π
- Feature: Add new
--core-conf
command line argument to allow passingcore.
confs via CLI. (#15441). Docs: π - Feature: Add
detect_api.detect_msvc_update(version)
helper todetect_api
. (#15435). Docs: π - Feature:
CMakeToolchain
definesjobs
in generatedCMakePresets.json
buildPresets. (#15422) - Feature: Allow nested "ANY" definitions in
settings.yml
. (#15415). Docs: π - Feature: Helpers
Git().coordinates_to_conandata()
andGit().checkout_from_conandata_coordinates()
to simplify scm based flows. (#15377) - Feature:
AutotoolsToolchain
automatically inject-FS
for VS. (#15375) - Feature: New
conan upload
core.upload:parallel
for faster parallel uploads. (#15360). Docs: π - Feature: Intel oneAPI compiler detection improvement. (#15358)
- Feature: Display progress for long
conan list
commands. (#15354) - Feature: Add
extension_properties
attribute to pass information to extensions from recipes. (#15348). Docs: π - Feature: Implement
compatibility_cppstd
inextension_properties
for thecompatibility.py
plugin to disable fallback to other cppstd for the recipe. (#15348). Docs: π - Feature: Add
Git.get_commit(..., repository=True)
to obtain the repository commit, not the folder commit. (#15304) - Feature: Ensure
--build=editable
and--build=cascade
works together. (#15300). Docs: π - Feature: New
conan graph build-order --order=configuration
to output a different order, sorted by package binaries/configurations, not grouped by recipe revisions. (#15270). Docs: π - Feature: Allow copy&paste of recipe revisions with timestamps from
--format=compact
intoconan lock add
. (#15262). Docs: π - Fix: 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. (#15665) - Fix: 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: π - Fix: 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: π - Fix: Raise if
check_type=int
and conf value is set tobool
. (#15378) - Fix: Add
pkg-config
entry to machine file generated by MesonToolchain, due topkgconfig
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. (#15336) - Fix: Accept
conan download/upload --list=.. --only-recipe
to download only the recipes. (#15312) - Fix: Allow
cmake.build(build_type="Release")
for recipes built with multi-config systems but withoutbuild_type
setting. (#14780) - Bugfix: Fix
MSBuildDeps
with components and skipped dependencies. (#15626) - Bugfix: Avoid
provides
raising an error for packages that selftool_requires
to themselves to cross-build. (#15575) - Bugfix: Fix build scope OS detection in
tools.microsoft.visual.VCVars
. (#15568) - Bugfix: Fix wrong propagation over
visible=False
when dependency is header-only. (https://github.com/conan...
1.63.0 (12-Feb-2024)
- Feature: Improved
get_libs
algorithm for BazelDeps. (#15299) - Feature: Changed shared lib name in conan-new templates. (#15299)
- Feature: Add tracking of different ref to
<host_version>
. (#15287). Docs: π - Fix: Adding a workaround to avoid
tqdm
failing on macOS. (#15628) - Bugfix:
BazelDeps._get_libs()
was gathering binary names. (#15410) - Bugfix: Non-visible transitive dependencies are not included in the requires (PkgConfigDeps). (#15320)
- Bugfix:
from_old_cppinfo
helper checks if the old cpp_info is notNone
before merging. (#15320) - Bugfix: Fix
NMakeDeps
quoting issues. (#15288) - Bugfix: Make
<host_version>
only track for same user/channel. (#15287). Docs: π
2.0.17 (10-Jan-2024)
- Fix: Automatically create folder if
conan cache save --file=subfolder/file.tgz
subfolder doesn't exist. (#15409) - Bugfix: Fix libcxx detection when using
CC/CXX
env vars. (#15418). Docs: π - Bugfix: Solve
winsdk_version
bug inCMakeToolchain
generator forcmake_minimum_required(3.27)
. (#15373) - Bugfix: Fix visible trait propagation with
build=True
trait. (#15357) - Bugfix: Fix
package_id
calculation when including conf values thrutools.info.package_id:confs
. (#15356) - Bugfix: Order
conf
items when dumping them to allow reproduciblepackage_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: π - Feature: New
CMake.ctest()
helper method to launch directlyctest
instead of viacmake --target=RUN_TEST
. (#15282) - Feature: Add tracking syntax in
<host_version>
for different references. (#15274). Docs: π - Feature: Adding
tools.microsoft:winsdk_version
conf to makeVCVars
generator to use the givenwinsdk_version
. (#15272). Docs: π - Feature: Add
pkglist
formatter for conan export command. (#15266). Docs: π - Feature: Define
CONAN_LOG_LEVEL
env-var to be able to change verbosity at a global level. (#15263). Docs: π - Feature:
conan cache path xxx --folder xxxx
raises an error if the folder requested does not exist. (#15257) - Feature: Add
in
operator support for ConanFile'sself.dependencies
. (#15221). Docs: π - Feature: Make
CMakeDeps
generator create aconandeps.cmake
that aggregates all direct dependencies in acmake
-like generator style. (#15207). Docs: π - Feature: Add build environment information to CMake configure preset and run environment information to CMake test presets. (#15192). Docs: π
- 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: π - Feature: Allow
tool-requires
to be used insource()
method injecting environment. (#15153). Docs: π - Feature: Allow accessing the contents of
settings.yml
(andsettings_user
!) fromConfigAPI
. (#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: π - Feature: Added
FTP_TLS
option usingsecure
argument inftp_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: π - Feature: Add
stderr
capture argument to conanfile'srun()
method. (#15121). Docs: π - Feature: New
[platform_requires]
profile definition to be able to replace Conan dependencies by platform-provided dependencies. (#14871). Docs: π - Feature: New
conan graph explain
command to search, compare and explain missing binaries. (#14694). Docs: π - Feature: Global
cpp_info
can be used to initialize components values. (#13994) - Fix: 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: π - Fix: 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: π - Bugfix: 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. (#15289) - Bugfix: Make
self.info.clear()
and header-only packages to removepython_requires
andtool_requires
. (#15285). Docs: π - Bugfix: Make
conan cache save/restore
portable across Windows and other OSs. (#15253) - Bugfix: Do not relativize absolute paths in
deployers
. (#15244) - Bugfix: Add
architecture
toCMakePresets
to avoid cmake ignoring toolchain definitions when using presets. (#15215) - Bugfix: 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. (#15135) - Bugfix: Fix definition of
package_metadata_folder
forconan export-pkg
command. (#15126) - Bugfix:
pyinstaller.py
was broken for Python 3.12 due to a uselessdistutils
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. (#15053) - Feature: 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: π - Feature: New
conan list --format=compact
for better UX. (#15011). Docs: π - Feature: Ignore metadata upload by passing --metadata="" (#15007). Docs: π
- Feature: Better output messages in
conan upload
(#14984) - Feature: Add extra flags to CMakeToolchain. (#14966). Docs: π
- Feature: Implement package load/restore from the cache, for CI workflows and moving packages over air-gaps. (#14923). Docs: π
- 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 Macos 13.6 to settings.yml. (#14858). Docs: π
- Feature: Add CMakeDeps and PkgConfigDeps generators listening to system_package_version property. (#14808). Docs: π
- Feature: Add shorthand syntax in cli to specify host and build in 1 argument (#14727). Docs: π
- Feature: Implement cache LRU control for cleaning of unused artifacts. (#14054). Docs: π
- Fix: Avoid
CMakeToolchain
overwriting userCMakePresets.json
when no layout nor output-folder is defined (#15058) - Fix: Add
astra
,elbrus
andaltlinux
as distribution usingapt
in SystemPackageManager (#15051) - Fix: Default to apt-get package manager in Linux Mint (#15026). Docs: π
- Fix: Make
Git()
check commits in remote server even for shallow clones. (#15023) - Fix: Add new Apple OS versions to settings.yml (#15015)
- Fix: Fix AutotoolsToolchain extraflags priority. (#15005). Docs: π
- Fix: Remove colors from
conan --version
output (#15002) - Fix: 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: π - Fix: 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 (#14924) - Fix: Serialize the
path
information ofpython_requires
, necessary for computing buildinfo (#14886) - Fix: Define remotes in
conan source
command in case recipe haspython_requires
that need to be downloaded from remotes. (#14852) - Fix: 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. (#15082) - BugFix: 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: π - Bugfix: 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 (#14850) - Bugfix: 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: π - BugFix: Fix version ranges so pre-releases are correctly included in the lower bound and excluded in the upper bound. (#14814). Docs: π
1.62.0 (14-Nov-2023)
- Feature: Removed extra_xxxx attributes from BazelToolchain (#15073). Docs: π
- Feature: BazelDeps global refactor. Adding each component as an isolated target, better requirements management (including requirements coming from build-context), adding C/C++ flags, etc. (#14959). Docs: π
- Feature: BazelDeps works fine in editable mode. (#14959). Docs: π
- Feature: Added
bazel_tagert_name
andbazel_repository_name
properties. (#14959). Docs: π - Feature: Added mechanism to consume shared/static libraries for
bazel_lib
template in all the platforms. (#14959). Docs: π - Feature:
BazelToolchain
creates aconan_bzl.rc
file which defines theconan-config
configuration. If it exists, Bazel helper will use it automatically. (#14958). Docs: π - Feature: Add clang-17 support to settings. (#14915). Docs: π
- Feature: Add support for gcc 10.5 (#14865). Docs: π
- Feature: Add support for gcc 11.4 (#14865). Docs: π
- Feature: Add support for gcc 13.2 (#14865). Docs: π
- Fix: Use importlib in Python >= 3.12 (#14841)
- Bugfix: Solve crash of
conan lock install
when the provided lockfile was created from aconanfile.txt
(#14836)
2.0.13 (28-Sep-2023)
- Bugfix: Fix wrong cppstd detection for newer apple-clang versions introduced in 2.0.11. (#14837)
2.0.12 (26-Sep-2023)
- Feature: Add support for Clang 17. (#14781). Docs: π
- Feature: Add
--dry-run
forconan remove
. (#14760). Docs: π - Feature: Add
host_tool
toinstall()
method inpackage_manager
to indicate whether the package is a host tool or a library. (#14752). Docs: π - Fix: Better error message when trying to
export-pkg
apython-require
package, and avoid it being exported and then failing. (#14819) - Fix:
CMakeDeps
allowsset_property()
on all properties. (#14813) - Fix: Add minor version for Apple clang 15.0. (#14797). Docs: π
- Fix:
conan build
command prettier error when argument not provided. (#14787) - Bugfix: fix
compatibility()
oversettings_target
making it None (#14825) - Bugfix:
compatible
packages look first in the cache, and only if not found, the servers, to allow offline installs when there are compatible packages. (#14800) - BugFix: Reuse session in ConanRequester to speed up requests. (#14795)
- Bugfix: Fix relative paths of
editable
packages when they have components partially defining directories. (#14782)