.. spelling:: dragly mathieu melmdk raulbocanegra rhel tivek tru yogeva
Check https://github.com/conan-io/conan for issues and more details about development, contributors, etc.
Important
Conan 1.24 shouldn't break any existing 1.0 recipe or command line invocation. If it does, please submit a report on GitHub. Read more about the :ref:`Conan stability commitment<stability>`.
- Bugfix: correct the cmake generator target name in the markdown generator output. #6788
- Bugfix: Avoid FileNotFoundError as it is not compatible with Python 2. #6786
- Feature: Add the needed command-line arguments to existing commands to provide information about host and build profiles. #5594 . Docs: here
- Feature: Add markdown generator, it exposes useful information to consume the installed packages. #6758 . Docs here
- Feature: Add new tool cppstd_flag to retrieve the compiler flag for the given settings. #6744 . Docs here
- Feature: Short paths feature is available for Cygwin. #6741 . Docs here
- Feature: Add Apple Clang as a base compiler for Intel C++. #6740 . Docs here
- Feature: Make settings.get_safe and options.get_safe accept a default value. #6739 . Docs here
- Feature: CONAN_V2_MODE deprecates two legacy ways of reusing python code: the <cache>/python path and the automatic PYTHONPATH environment variable. #6737 . Docs here
- Feature: Add the _description_ field to the output of the :command:`conan info` command. #6724 . Docs here
- Feature: Add more detailed information when there are missing packages. #6700 . Docs here
- Feature: Support mirrors for tools.download and tools.get. #6679 . Docs here
- Feature: Modify the default behaviour in SystemPackageTool to be able to create a recipe that does not install system requirements by default if the CONAN_SYSREQUIRES_MODE is not set. #6677 . Docs here
- Feature: Add cpp_info.components package creator interface to model internal dependencies inside a recipe. #6653 . Docs here
- Feature: Add a new
init()
method toconanfile.py
recipes that can be used to add extra logic when inheriting frompython_requires
classes. #6614 . Docs here - Fix: Add Sun C compiler version 5.15 into default settings.yml. #6767
- Fix: Raises ConanException when package folder is invalid for export-pkg. #6720 . Docs here
- Fix: Added print to stderr and exit into pyinstaller script when it detects python usage of python 3.8 or higher as currently pyinstaller does not support python 3.8. #6686
- Fix: Improve the command line help for the conan install --build option. #6681 . Docs here
- Fix: Add build policy help for --build argument when used in conan graph build-order command. #6650
- Fix: Remove file before copying in
conan config install
to avoid permission issues. #6601 - Fix: check_min_cppstd raises an exception for an unknown compiler. #6548 . Docs here
- Fix: cmake_find_package no longer seeks to find packages which are already found. #6389
- Bugfix: Fixes the auto-detection of
sun-cc
compiler when it outputsStudio 12.5 Sun C
. #6757 - Bugfix: Add values to
definitions
passed toMSBuild
build helper which values are not None (0, False...). #6730 - Bugfix: Include name and version in the data from
conanbuildinfo.txt
, so it is available inself.deps_cpp_info["dep"].version
andself.deps_cpp_info["dep"].name
, so it can be used in :command:`conan build` and intest_package/conanfile.py
. #6723 . Docs here - Bugfix: Fix check_output_runner() to handle dirs with whitespaces. #6703
- Bugfix: Fix vcvars_arch usage before assignment, that can cause a crash in
tools.vcvars_command()
that is also used internally byMSBuild
helper. #6675 - Bugfix: Silent output from cmake_find_package generator with CONAN_CMAKE_SILENT_OUTPUT. #6672
- Bugfix: Use always LF line separator for .sh scripts generated by
virtualenv
generators. #6670 - Bugfix: Use the real settings value to check the compiler and compiler version in the
cmake
generator local flow when thepackage_id()
method changes values. #6659
- Feature: New
general.parallel_download=<num threads>
configuration, for parallel installation of binaries, to speed up populating packages in a cache. #6632 . Docs here - Feature: Fixed inability to run execute test and install separately, that is, without build step. Added meson_test() method, which executes meson test (compared to ninja test in test()). Added meson_install() method, which executes meson install (compared to ninja install in install()). #6574 . Docs here
- Feature: Update python six dependency to 1.14.0. #6507
- Feature: Add environment variable 'CONAN_V2_MODE' to enable Conan v2 behavior. #6490 . Docs here
- Feature: Implement conan graph clean-modified subcommand to be able to clean the modified state of a lockfile and re-use it later for more operations. #6465 . Docs here
- Feature: Allow building dependency graphs when using lockfiles even if some requirements are not in the lockfiles. This can happen for example when
test_package/conanfile.py
has other requirements, as they will not be part of the lockfile. #6457 . Docs here - Feature: Implement a new package-ID computation that includes transitive dependencies even when the direct dependencies have remove them, for example when depending on a header-only library that depends on a static library. #6451 . Docs here
- Fix: inspect command can be executed without remote.json (#6558) #6559
- Fix: Raise an error if
MSBuild
argumenttargets
is not a list, instead of splitting a string passed as argument instead of a list. #6555 - Bugfix: Check the CMP0091 policy and set CMAKE_MSVC_RUNTIME_LIBRARY accordingly to CONAN_LINK_RUNTIME if it's set to NEW. #6626
- Bugfix: Fix error parsing system_libs from conanbuildinfo.txt file. #6616
- Bugfix: Environment variables from the profiles are not set in the _conaninfo.txt_ file of the packages exported with the export-pkg command. #6607
- BugFix: Set the
self.develop=True
attribute for recipes when they are used with :command:`conan export-pkg`, in all methods, it was previously only setting it for thepackage()
method. #6585 - Bugfix: set CMAKE_OSX_DEPLOYMENT_TARGET for iOS, watchOS and tvOS. #6566
- Bugfix: Parse function of GCC version from command line now works with versions >=10. #6551
- Bugfix: improve Apple frameworks lookups with CMake integration #6533
- Bugfix: Fixed crashing of recipes using both
python_requires
andbuild_id()
. #6618 - Bugfix: Conan should not append generator_platform to the Visual Studio generator if it is already specified by the user. #6549
- Bugfix: Do not re-evaluate lockfiles nodes, only update the package reference, otherwise the build-requires are broken. #6529
- Bugfix: Fixing locking system for metadata file so it can be accessed concurrently. #6524
- Fix: Increase
six
version to allow more modern releases. #6509 - Fix: remove GLOBAL from targets to avoid conflicts when using add_subdirectory. #6488 . Docs here
- Fix: Avoid caching revision "0" under api V2 (revisions enabled) in the download cache. #6475 . Docs here
- Bugfix: Manage the
dirty
state of the cache package folder with :command:`conan export-pkg`. #6498 - BugFix: Add
system_libs
topremake
generator. #6495 - Bugfix: Upload was silently skipping exceptions that could leave the packages dirty. Long uploads or large compressing times in non-terminals (piped output, like in CI systems) crashed, leaving packages dirty too, but not reporting any error. #6486
- BugFix: Add quotes to
virtualenv
scripts, so they don't crash in pure sh shells. #6265
- Feature: Set conan generated CMake targets as GLOBAL so that they can be used with an ALIAS for consumers. #6438 . Docs here
- Feature: Deduce compiler.base.runtime for Intel compiler settings when using Visual Studio as the base compiler. #6424
- Feature: Allow defining an extra user-defined properties .props file in
MSBuild
build helper. #6374 . Docs here - Feature: Force the user to read that Python 2 has been deprecated. #6336 . Docs here
- Feature: Add opt-in scm_to_conandata for the SCM feature: Conan will store the data from the SCM attribute in the conandata.yml file (except the fields username and password). #6334 . Docs here
- Feature: Implement a download cache, which can be shared and concurrently used among different conan user homes, selectable configuring
storage.download_cache
inconan.conf
. #6287 . Docs here - Feature: Some improvements in the internal of lockfiles. Better ordering of nodes indexes. Separation of
requires
andbuild-requires
. Betterstatus
field, with explicitexported
,built
values. #6237 - Feature:
imports
functionality can import from "symbolic" names, preceded with @, like @bindirs, @libdirs, etc. This allows importing files from variable package layouts, including custompackage_info()
layouts (likecpp_info.bindirs = ["mybin"]
can be used withsrc="@bindirs"
), and editable package layouts #6208 . Docs here - Feature: Improve output messages for parallel uploads: the text of the uploaded files contains to which packages they belong and the output for CI is clearer. #6184
- Feature: Adds
vcvars_append
variable (defaulting toFalse
) toCMake
andMeson
build helpers constructors, so when they need to activate the Visual Studio environment viavcvars
(for Ninja and NMake generators), thevcvars
environment is appended at the end, giving precedence to the environment previously defined. #6000 . Docs here - Fix: Use CCI package reference for example command. #6463
- Fix: Generators cmake and cmake_multi use the name defined in cpp_info.name (reverts change from 1.21.1 as stated). #6429
- Fix: Cleaning
LD_LIBRARY_PATH
environment inSCM
commands for "pyinstaller" installations, as SSL can fail due to using old SSL stuff from Conan instead from git/svn. #6380 - Fix: Recipe substitution for scm (old behavior) fixed for multiline comments in Python 3.8. #6355 . Docs here
- Fix: Avoid warning in "detect" process with Python 3.8, due to Popen with
bufsize=1
#6333 - Fix: Propagate server error (500) in checksum_deploy. #6324
- Fix: Fixed wrong CMake command line with
-G Visual Studio 15 ARM
forarmv8
architectures. #6312 - Fix: Add all the system_libs and requirements to the CMake targets constructed by the generators. It will impact header-only libraries that are consumed using targets (previously they were missing some information). #6298
- Fix: Avoid WindowsStore
tools.vcvars()
management when the environment is already set. #6296 - Fix: When the token is empty, and
conan user myuser -p=mypass -r=remote
is used, the user-password are send in HttpBasic so it can be used for completely protected servers that do not expose the ping endpoint. #6254 - Fix: Add cpp_info.<config> information to cmake_find_package_multi and cmake_find_package generators. #6230 . Docs here
- Fix: Multi-generators cannot be used without build_type setting. A failure is forced to cmake_find_package_multi and visual_studio_multi as it was in cmake_multi. #6228
- Fix: Fix typo in error message from
tools.get()
. #6204 - Fix: Raise error for symlinks in Windows that point to a different unit. #6201
- BugFix: Avoid included profiles overwriting variables in the current profile. #6398
- Bugfix: Lockfiles were not correctly applying locked
options
to packages, which produced incorrect evaluation ofrequirements()
method. #6395 - Bugfix: Fix broken compression of .tgz files due to Python 3.8 changing tar default schema. #6355 . Docs here
- Bugfix: Include MacOS frameworks definitions in autotools LDFLAGS (also Meson). #6309
- Bugfix: Apply
system_libs
information in autotools build helper. #6309 - Bugfix: The
environment_append()
helper does not modify the argument anymore, which caused problems if the argument was reused. #6285 - Bugfix: Include "Package ID Unknown" nodes in
conan graph build-order
, as they need to be processed in that order. #6251 - Bugfix: --raw argument is ignored when searching for a specific reference. #6241
- Bugfix: Avoid raising a version conflict error when aliases have not been resolved yet, typically for aliased
build-requires
that are also in therequires
. #6236 - Bugfix: :command:`conan inspect` now is able to properly show name and version coming from
set_name()
andset_version()
methods. #6214
- Bugfix: Fixing locking system for metadata file so it can be accessed concurrently. #6543
- Bugfix: Manage the dirty state of the cache package folder with conan export-pkg. #6517
- Bugfix: BugFix: Add quotes to virtualenv scripts, so they don't crash in pure sh shells. #6516
- Bugfix: Upload was silently skipping exceptions, which could result in packages not uploaded, but user not realizing about the error. #6515
- BugFix: Add
system_libs
topremake
generator. #6496
- Fix: Recipe substitution for scm (old behavior) fixed for multiline comments in Python 3.8 #6439
- Bugfix: Fix broken compression of .tgz files due to Python 3.8 changing tar default schema. #6439
- Bugfix: Append CONAN_LIBS in cmake generator to avoid overwriting user-defined libs. #6433
- Fix: Fix options type detection using six.string_types. #6322
- Fix: Fix minor issues in cmake and cmake_multi generators: wrong variable used in conan_find_apple_frameworks macro. #6295
- Fix: Generators cmake and cmake_multi use the name of the package instead of cpp_info.name (this change is to be reverted in 1.22) #6288
- Bugfix: Fixing readout of backslashes for virtualenv generator files so they are not interpreted as escape characters. #6320
- Bugfix: Fix uninformative crash when
tools.download()
gets a 403 and it is not providing anauth
field. #6317 - Bugfix: Enhance validation of the short_paths_home property to correctly handle the scenarios where it is set to a path that contains the value of the Conan cache path, but is not a subdirectory of it. #6304
- Bugfix: Fixes cpp_info.name vs. cpp_info.names issue in pkg_config generator #6223
- Feature: The generator cmake_find_package_multi generates a PackageConfigVersion.cmake file that allows using find_package with the VERSION argument. #6063 . Docs here
- Feature: Settings support for Intel compiler. #6052 . Docs here
- Feature: Allow setting different cpp_info name for each generator that supports that property using the new cpp_info.names["generator_name"] property. #6033 . Docs here
- Feature: Provide _INCLUDE_DIR variables in the cmake_find_package generator #6017
- Feature: Information in the artifacts.properties file is sent using matrix-params too when a package is uploaded to a server (if it has the capability). This will be the recommended way to send these properties to Artifactory (release TBD) to bypass Nginx blocking properties with periods. #6014 . Docs here
- Feature: New tools.check_min_cppstd and tools.valid_min_cppstd to check if the cppstd version is valid for a specific package. #5997 . Docs here
- Feature: New parameter for tools.patch to opt-in applying fuzzy patches. #5996 . Docs here
- Feature: Environment variables for virtual environments are stored in .env files containing just the key-value pairs. It will help other processes that need to read these variables to run their own commands. #5989
- Feature: New argument of :command:`conan upload` command --parallel to upload packages using multithreading. #5856 . Docs here
- Feature: New
python_requires
declared as Conanfile class attributes. Includes extension of base class, they affect the binary packageID withminor_mode
default mode. They are also locked in lockfiles. #5804 . Docs here - Feature: Accept logging level as logging names #5772 . Docs here
- Fix: Add the RES_DIRS as variable to the variables when using the
cmake_find_package
generator. #6166 - Fix: Fix SyntaxWarning when comparing a literal with for identity in Python 3.8 #6165
- Fix: Remove recipe linter from codebase, it is no longer a built-in feature. It has been moved to hooks. Install the hook and update your "conan.conf" to activate it. #6152 . Docs here
- Fix: Make lockfiles invariant when the graph doesn't change. Now 2 different lockfiles captured with the same resulting graph in 2 different instants will be identical. #6139
- Fix: Make the
compatible_packages
feature to follow the--build=missing
build policy. Packages that find a compatible binary will not fire a binary build with the "missing" build policy. #6134 . Docs here - Fix: Fix create command build policy help message to reflect correct behavior. #6131 . Docs here
- Fix: Improved error message when sources can't be retrieved from remote #6085
- Fix: Raise a meaningful error when the settings.yml file is invalid #6059
- Fix: Move the warning about mixing 'os' and 'os_build' to just before the pre_export stage #6021
- Bugfix: Implement
SystemPackageTool.installed(package_name)
as described in the documentation. #6198 - Bugfix: Remove carriage returns from build info .json file to avoid Artifactory errors in some cases when publishing the build info to the remote. #6180
- Bugfix: Upload correct packages when specifying revisions and fail with incorrect ones. #6143
- Bugfix: Fix different problems when using :command:`conan download` with revisions. #6138
- Bugfix: Make sure
set_version()
runs in theconanfile.py
folder, not in the current folder, so relative paths are not broken if executing from a different location. #6130 . Docs here - Bugfix: Fix the help message for :command:`conan export-pkg` command for the --options parameter. #6092
- Bugfix: Use a context manager to change the folder during build_package to avoid propagating the directory change to other tasks. #6060
- Bugfix: The AutoToolsBuildEnvironment build helper now uses the win_bash parameter of the constructor when calling to configure(). #6026
- Bugfix: Conan's virtualenvironments restore the environment to the state it was before activating them (previously it was restored to the state it was when the :command:`conan install` was run). #5989
- Bugfix: Removing --skip-env and --multi-module arguments for conan_build_info --v2. Now the environment is not captured (will be handled by the Artifactory plugin) and recipes and packages are saved as different modules in build info. #6169 . Docs here
- Feature: Added traces to check_output internal call to log the called command and the output as INFO traces (can be adjusted with export CONAN_LOGGING_LEVEL=20) #6091
- Bugfix: Using scm with auto values with a conanfile.py not being in the root scm folder it failed to export the right source code directory if not using --ignore-dirty and the repo was not pristine. #6098
- Bugfix: Fix conan_build_info command when conan_sources.tgz not present in remote. #6088
- Bugfix: Using the scm feature with auto fields was not using correctly the freeze sources from the local user directory from the second call to :command:`conan create`. #6048
- Bugfix: Each Apple framework found using CMake find_library is stored in a different CONAN_FRAMEWORK_<name>_FOUND variable #6042
- Bugfix: Fix Six package version to be compatible with Astroid #6031
- Bugfix: Fixed authentication with an Artifactory repository without anonymous access enabled. #6022
- Feature: Provide CONAN_FRAMEWORKS and CONAN_FRAMEWORKS_FOUND for Apple frameworks in CMake generators and conan_find_apple_frameworks() macro helper in CMake generators. #6003 . Docs here
- Feature: Saving profile list as a json file #5954 . Docs here
- Feature: Improve conan_build_info command maintaining old functionality. #5950 . Docs here
- Feature: Add --json `argument to the `config home subcommand to output the result to a JSON file. #5946 . Docs here
- Feature: Add cpp_info.build_modules to manage build system modules like additional CMake functions in packages #5940 . Docs here
- Feature: Add support for Clang 10. #5936
- Feature: Store md5 and sha1 checksums of downloaded and uploaded packages in metadata.json. #5910
- Feature: Allow the possibility to avoid x86_64 to x86 building when cross-building. #5904 . Docs here
- Feature: Allow to specify encoding for tools.load, tools.save and tools.replace_in_files. #5902 . Docs here
- Feature: Add support for gcc 7.4. #5898 . Docs here
- Feature: New
set_name()
andset_version()
member methods to dynamically obtain the name and version (at export time). #5881 . Docs here - Feature: New binary compatibility mode. Recipes can define in their
package_id()
an ordered list of binary package variants that would be binary compatible with the default one. These variants will be checked in order if the main package ID is not found (missing), and the first one will be installed and used. #5837 . Docs here - Feature: Support for DNF system package manager (Fedora 31+ and others) when present. #5791 . Docs here
- Feature: Refactor Conan Upload, Download and Compress progress bars. #5763
- Feature: Add system_deps attribute for cpp_info and deps_cpp_info. #5582 . Docs here
- Feature: The scm feature does not replace the scm.revision="auto" field with the commit when uncommitted changes unless
--scm-dirty
argument is specified. The recipe in the local cache will be kept with revision=auto. #5543 . Docs here - Feature: The :command:`conan upload` command forbids to upload a recipe that uses the scm feature containing revision=auto or url=auto, unless --force is used. #5543 . Docs here
- Feature: The scm feature captures the local sources in the local cache during the export, avoiding later issues of modified local sources. #5543 . Docs here
- Fix: Deprecate argument --build-order in :command:`conan info` command. #5965 . Docs here
- Fix: Avoid doing complex
conan search --query
in the server, do them always in the client. #5960 - Fix: Improved
conan remove --help
message for--packages
#5899 - Fix: Improved cmake compiler check message to explain the problem with different compiler versions when installing dependencies #5858
- Fix: Adds support for transitive dependencies to b2 generator. #5812
- Fix: Add support for recipes without settings.compiler in b2 generator. #5810
- Fix: Add and remove out-of-tree git patches (#5320) #5761
- Fix: Add quiet output for inspect --raw. #5702
- Bugfix: Allow :command:`conan download` for packages without user/channel #6010
- Bugfix: Avoid erroneous case-sensitive conflict for packages without user/channel. #5981
- Bugfix: Fix crashing when using lockfiles with a
conanfile.txt
instead ofconanfile.py
. #5894 - Bugfix: Fix incorrect propagation of build-requires to downstream consumers, resulting in missing dependencies in
deps_cpp_info
. #5886 - Bugfix: Adds the short_paths_home property to ConanClientConfigParser to validate that it is not a subdirectory of the conan cache. #5864 . Docs here
- Bugfix: Use imported python requires' short_path value instead of the defined in the conanfile that imports it. #5841
- Bugfix: Avoid repeated copies of absolute paths when using self.copy(). #5792
- Bugfix: Downstream overrides to exact dependencies versions are always used, even if the upstream has a version range that does not satisfy the override. #5713
- Fix: Fixed range of pylint and astroid requirements to keep compatibility with python 2 #5987
- Fix: Force
conan search --query
queries to be resolved always in the client to avoid servers failures due to unsupported syntax #5970 - Bugfix: Use cpp_info.name lower case in pkg-config generator when defined #5988
- Bugfix: Fix
cpp_info.name
not used in cmake find generators for dependencies #5973 - Bugfix: Fixed bug when overriden dependencies that don't exist and make the CMake generated code crash #5971
- Bugfix: Fixed bug when overriden dependencies that don't exist and make the CMake generated code crash #5945
- Feature: Implement
self.info.shared_library_package_id()
to better manage shared libraries package-ID, specially when they depend on static libraries #5893 . Docs here - Bugfix: Allow
conan install pkg/[*]@user/channel
resolving to a reference, not a path. #5908 - Bugfix: The dependency overriding mechanism was not working properly when using the same version with different build metadata (1.2.0+xyz vs 1.2.0+abc). #5903
- Bugfix: Artifactory was returning an error on the first login attempt because the server capabilities were not assigned correctly. #5880
- Bugfix: conan export failed if there is no user/channel and a lockfile is applied #5875
- Bugfix: SCM component failed for url pointing to local path in Windows with backslash. #5875
- Bugfix: Fix conan graph build-order output so it uses references including its recipe revision #5863
- Bugfix: Use imported python requires' short_path value instead of the defined in the conanfile that imports it. #5849
- Bugfix: Fix regression in
visual_studio
generator adding a<Lib>
task. #5846 . Docs here
- Feature: Update settings.yml file with macOS, watchOS, tvOS, iOS version numbers #5823
- Feature: Add clang 9 to the settings.yml file #5786 . Docs here
- Feature: Show suggestions when typing an incorrect command conan command. #5725
- Feature: Client support for using refresh tokens in the auth process with Artifactory. #5662
- Feature: Add GCC 9.2 to default settings.yml file #5650 . Docs here
- Feature: Add subcommand for enabling and disabling remotes #5623 . Docs here
- Feature: New conan config home command for getting Conan home directory #5613 . Docs here
- Feature: Adds name attribute to CppInfo and use cpp_info.name in all CMake and pkg-config generators as the find scripts files names, target names, etc. #5598 . Docs here
- Feature: Enhanced vs-generator by providing more properties that can be referenced by other projects; added library paths also to <Lib> so it's possible to compile static libraries that reference other libs #5564
- Feature: Better support OSX frameworks by declaring cppinfo.frameworks. #5552 . Docs here
- Feature: Virtual environment generator for gathering only the PYTHONPATH. #5511 . Docs here
- Fix: :command:`conan upload` with a reference without user and channel and package id
name/version:package_id
should work #5824 - Fix: Dropped support for python 3.4. That version is widely being dropped by the python community. Since Conan 1.19, the tests won't be run with python 3.4 and we won't be aware if something is not working correctly. #5820 . Docs here
- Fix: Apply lockfile to the node before updating with downstream requirements #5771
- Fix: Make :command:`conan new` generate default options as a dictionary #5767
- Fix: Output search result for remotes in order by version, as local search #5723
- Fix: Excluded also ftp_proxy and all_proxy variables from the environment when proxy configuration is specified in the conan.conf file. #5697
- Fix: Relax restriction on the future python dependency #5692
- Fix: Call post_package hook before computing the manifest #5647
- Fix: Show friendly message when can't get remote path #5638
- Fix: Detect the number of CPUs used by Docker (#5464) #5466 . Docs here
- Bugfix: Set Ninja to use cpu_count value when building with parallel option with CMake #5832
- Bugfix: output of references without user/channel is done with _/_, like in lockfiles. #5817
- Bugfix: A lockfile generated from a consumer should be able to generate a build-order too. #5800
- Bugfix: Fix system detection on Solaris. #5630
- Bugfix: SVN uses username and password if provided #5601
- Bugfix: Use the final package folder as the conanfile.package_folder attribute for the pre_package hook. #5600
- BugFix: Fix crash with custom generators using
install_folder
#5569
- Bugfix: A bug in urllib3 caused bad encoded URLs causing failures when using any repository from Bintray, like conan-center. #5801
- Fix: Version ranges resolution using references without user/channel #5707
- Feature: Add opt-out for Git shallow clone in SCM feature #5677 . Docs here
- Fix: Use the value of argument useEnv provided by the user to the MSBuild helper also to adjust /p:UseEnv=false when the arg is False. #5609
- Bugfix: Fixed assertion when using nested build_requires that depend on packages that are also used in the main dependency graph #5689
- Bugfix: When Artifactory doesn't have the anonymous access activated, the conan client wasn't able to capture the server capabilities and therefore never used the revisions mechanism. #5688
- Bugfix: When no user/channel is specified creating a package, upload it to a remote using None as the "folder" in the storage, instead of _. #5671
- Bugfix: Using the version ranges mechanism Conan wasn't able to resolve the correct reference if a library with the same name but different user/channel was found in an earlier remote. #5657
- Bugfix: Broken cache package collection for packages without user/channel #5607
- Bugfix: The scm feature was trying to run a checkout after a shallow clone. #5571
- Feature: The "user/channel" fields are now optional. e.g: conan create . is valid if the name and version are declared in the recipe. e.g: conan create . lib/1.0@ to omit user and channel. The same for other commands. The user and channel can also be omitted while specifying requirements in the conanfiles. #5381 . Docs here
- Feature: Output current revision from references in local cache when using a pattern #5537 . Docs here
- Feature: New parameter
--skip-auth
for the :command:`conan user` command to avoid trying to authenticate when the client already has credentials stored. #5532 . Docs here - Feature: Allow patterns in per-package settings definitions, not only the package name #5523 . Docs here
- Feature: Search custom settings (#5378) #5521 . Docs here
- Feature: shallow git clone #5514 . Docs here
- Fix: Remove
conan graph clean-modified
command, it is automatic and no longer necessary. #5533 . Docs here - Fix: Incomplete references (for local conanfile.py files) are not printed with @None/None anymore. #5509
- Fix: Discard empty string values in SCM including subfolder #5459
- Bugfix: The stderr was not printed when a command failed running the tools.check_output function. #5548
- Bugfix: Avoid dependency (mainly build-requires) being marked as skipped when another node exists in the graph that is being skipped because of being private #5547
- Bugfix: fix processing of UTF-8 files with BOM #5506
- Bugfix: apply http.sslVerify to the current Git command only #5470
- Bugfix: Do not raise when accessing the metadata of editable packages #5461
- Bugfix: Use cxxFlags instead of cppFlags in
qbs
generator. #5452 . Docs here
- Bugfix: Lock transitive python-requires in lockfiles, not only direct ones. #5531
- Feature: support 7.1 clang version #5492
- Bugfix: When a profile was detected, for GCC 5.X the warning message about the default libcxx was not shown. #5524
- Bugfix: Update python-dateutil dependency to ensure availability of dateutil.parser.isoparse #5485
- Bugfix: Solve regression in
conan info <ref>
command, incorrectly reading the graph_info.json and lockfiles #5481 - Bugfix: Trailing files left when packages are not found in conan info and install, restricted further installs with different case in Windows, without
rm -rf ~/.conan/data/pkg_name
#5480 - Bugfix: The lock files mechanism now allows to update a node providing new information, like a retrieved package revision, if the "base" reference was the same. #5467
- Bugfix: search command table output has invalid HTML code syntax #5460
- Feature: Better UX for no_proxy (#3943) #5438 . Docs here
- Feature: Show warning when URLs for remotes is invalid (missing schema, host, etc). #5418
- Feature: Implementation of lockfiles. Lockfiles store in a file all the configuration, exact versions (including revisions), necessary to achieve reproducible builds, even when using version-ranges or package revisions. #5412 . Docs here
- Feature: Change progress bar output to tqdm to make it look better #5407
- Feature: Define 2 new modes and helpers for the package binary ID:
recipe_revision_mode
andpackage_revision_mode
, that take into account the revisions. The second one will use all the information from dependencies, resulting in fully deterministic and complete package IDs: if some dependency change, it will be necessary to build a new binary of consumers #5363 . Docs here - Feature: Add apple-clang 11.0 to settings.yml (#5328) #5357 . Docs here
- Feature: SystemPackageTool platform detection (#5026) #5215 . Docs here
- Fix: Enable the definition of revisions in conanfile.txt #5435
- Fix: Improve resolution of version ranges for remotes #5433
- Fix: The conan process returns 6 when a ConanInvalidConfiguration is thrown during :command:`conan info`. #5421
- Fix: Inspect missing attribute is not an error (#3953) #5419
- Fix: Allow --build-order and --graph together for conan info (#3447) #5417
- Fix: Handling error when reference not found using conan download #5399
- Fix: Update Yum cache (#5370) #5387
- Fix: Remove old folder for conan install (#5376) #5384
- Fix: Add missing call to super constructor to VirtualEnvGenerator. #5375
- Fix: Force forward slashes in the variable $PROFILE_DIR #5373 . Docs here
- Fix: Accept a list for the requires attribute #5371 . Docs here
- Fix: Remove packages when version is asterisk (#5297) #5346
- Fix: Make conan_data visible to pylint (#5327) #5337
- Fix: Improve the output to show the remote (or cache) that a version range is resolved to. #5336
- Fix: Deprecated
conan copy|download|upload <ref> -p=ID
, useconan .... <pref>
instead #5293 . Docs here - Fix: AutoToolsBuildEnvironment is now aware of os_target and arch_target to calculate the gnu triplet when declared. #5283
- Fix: Better message for gcc warning of libstdc++ at default profile detection #5275
- Bugfix: verify_ssl field in SCM being discarded when used with False value. #5441
- Bugfix: enable retry for requests #5400
- Bugfix: Allow creation and deletion of files in
tools.patch
withstrip>0
#5334 - Bugfix: Use case insensitive comparison for SHA256 checksums #5306
- Feature: Print nicer error messages when receive an error from Artifactory. #5326
- Fix: Make
conan config get storage.path
return an absolute, resolved path #5350 - Fix: Skipped the compiler version check in the cmake generator when a -s compiler.toolset is specified (Visual Studio). #5348
- Fix: Constraint transitive dependency
typed-ast
(required by astroid) in python3.4, as they stopped releasing wheels, and it fails to build in some Windows platforms with older SDKs. #5324 - Fix: Accept v140 and VS 15.0 for CMake generator (#5318) #5321
- Fix: Accept only .lib and .dll as Visual extensions (#5316) #5319
- Bugfix: Do not copy directories inside a symlinked one #5342
- Bugfix: Conan was retrying the upload when failed with error 400 (request error). #5326
- Feature: The :command:`conan upload` command can receive now the full package reference to upload a binary package. The -p argument is now deprecated. #5224 . Docs here
- Feature: Add hooks pre_package_info and post_package_info #5223 . Docs here
- Feature: New build mode --build cascade that forces building from sources any node with dependencies also built from sources. #5218 . Docs here
- Feature: Print errors and warnings to stderr #5206
- Feature: New
conan new --template=mytemplate
to initialize recipes with your own templates #5189 . Docs here - Feature: Allow using wildcards to remove system requirements sentinel from cache. #5176 . Docs here
- Feature: Implement conan.conf
retry
andretry-wait
andCONAN_RETRY
andCONAN_RETRY_WAIT
to configure all retries for all transfers, including upload, download, andtools.download()
. #5174 . Docs here - Feature: Support yaml lists in workspace
root
field. #5156 . Docs here - Feature: Add gcc 8.3 and 9.1 new versions to default settings.yml #5112
- Feature: Retry upload or download for error in response message (e.g. status is '500') #4984
- Fix: Do not retry file transfer operations for 401 and 403 auth and permissions errors. #5278
- Fix: Copy symlinked folder when using merge_directories function #5237
- Fix: Add the ability to avoid the /verbosity argument in CMake command line for MSBuild #5220 . Docs here
- Fix: self.copy with symlinks=True does not copy symlink if the .conan directory is a symlink #5114 #5125
- Fix: Export detected_os from tools.oss (#5101) #5102 . Docs here
- Fix: Use revision as the SVN's peg_revision (broken for an edge case) #5029
- Bugfix:
--update
was not updatingpython_requires
using version ranges. #5265 - Bugfix:
visual_studio
generator only adds ".lib" extension for lib names without extension, otherwise (like ".a") respect it. #5254 - Bugfix: Fix :command:`conan search` command showing revisions timestamps in a different time offset than UTC. #5232
- Bugfix: Meson build-helper gets correct compiler flags, AutoTools build environment adds compiler.runtime flags #5222
- Bugfix: The cmake_multi generator was not managing correctly the RelWithDebInfo and MinSizeRel build types. #5221
- Bugfix: Check that registry file exists before removing it #5219
- Bugfix: do not append "-T " if generator doesn't support it #5201
- Bugfix: :command:`conan download` always retrieve the sources, also with
--recipe
argument, which should only skip download binaries, not the sources. #5194 - Bugfix: Using scm declared in a superclass failed exporting the recipe with the error ERROR: The conanfile.py defines more than one class level 'scm' attribute. #5185
- Bugfix: Conan command returns 6 (Invalid configuration) also when the settings are restricted in the recipe #5178
- Bugfix: Make sure that proxy "http_proxy", "https_proxy", "no_proxy" vars are correctly removed if custom ones are defined in the conan.conf. Also, avoid using
urllib.request.getproxies()
, they are broken. #5162 - Bugfix: Use copy() for deploy generator so that permissions of files are preserved. Required if you want to use the deploy generator to deploy executables. #5136
- Fix: Accept v140 and VS 15.0 for CMake generator (#5318) #5331
- Fix: Constraint transitive dependency typed-ast (required by astroid) in python3.4, as they stopped releasing wheels, and it fails to build in some Windows platforms with older SDKs. #5331
- Please, do not use this version, there was a critical error in the release process and changes from the 1.16 branch were merged.
- Bugfix: Fix bug with python-requires not being updated with
--update
if using version-ranges. #5266 - Bugfix: Fix computation of ancestors performance regression #5260
- Fix: Fix regression of
conan remote update --insert
using the same URL it had before #5110 - Fix: Fix migration of registry.json|txt file including reference to non existing remotes. #5103
- Bugfix: Avoid crash of commands copy, imports, editable-add for packages using python_requires #5150
- Feature: Updated the generated conanfile.py in :command:`conan new` to the new conan-io/hello repository #5069 . Docs here
- Feature: The MSBuild build helper allows the parameter toolset with False value to skip the toolset adjustment. #5052 . Docs here
- Feature: Add GCC 9 to default settings.yml #5046 . Docs here
- Feature: You can disable broken symlinks checks when packaging using CONAN_SKIP_BROKEN_SYMLINKS_CHECK env var or config.skip_broken_symlinks_check=1 #4991 . Docs here
- Feature: New
deploy
generator to export files from a dependency graph to an installation folder #4972 . Docs here - Feature: Create tools.Version with _limited_ capabilities #4963 . Docs here
- Feature: Default filename for workspaces: conanws.yml (used in install command) #4941 . Docs here
- Feature: Add install folder to command 'conan workspace install' #4940 . Docs here
- Feature: Add compiler.cppstd setting (mark cppstd as deprecated) #4917 . Docs here
- Feature: Add a --raw argument to :command:`conan inspect` command to get an output only with the value of the requested attributes #4903 . Docs here
- Feature:
tools.get()
andtools.unzip()
now handle also.gz
compressed files #4883 . Docs here - Feature: Add argument --force to command profile new to overwrite existing one #4880 . Docs here
- Feature: Get commit message #4877 . Docs here
- Fix: Remove sudo from Travis CI template #5073 . Docs here
- Fix: Handle quoted path and libraries in the premake generator #5051
- Fix: A simple addition to ensure right compiler version is found on windows. #5041
- Fix: Include CMAKE_MODULE_PATH for CMake find_dependency (#4956) #5021
- Fix: Add default_package_id_mode in the default conan.conf (#4947) #5005 . Docs here
- Fix: Use back slashes for
visual_studio
generator instead of forward slashes #5003 - Fix: Adding subparsers.required = True makes both Py2 and Py3 print an error when no arguments are entered in commands that have subarguments #4902
- Fix: Example bare package recipe excludes conanfile.py from copy #4892
- Fix: More meaningful error message when a remote communication fails to try to download a binary package. #4888
- Bugfix:
conan upload --force
force also the upload of package binaries, not only recipes #5088 - BugFix: MSYS 3.x detection #5078
- Bugfix: Don't crash when an editable declare a
build_folder
in the layout, but not used in a workspace #5070 - Bugfix: Made compatible the cmake_find_package_multi generator with CMake < 3.9 #5042
- Bugfix: Fix broken local development flow (:command:`conan source`, :command:`conan build`, :command:`conan package`, :command:`conan export-pkg`) with recipes with
python-requires
#4979 - Bugfix: 'tar_extract' function was failing if there was a linked folder in the working dir that matches one inside the tar file. Now we use the destination_dir as base directory to check this condition. #4965
- Bugfix: Remove package folder in :command:`conan create` even when using
--keep-build
#4918
- Bugfix: Uncompressing a tgz package with a broken symlink failed while touching the destination file. #5065
- Bugfix: The symlinks compressed in a tgz had invalid nonzero size. #5064
- Bugfix: Fixing exception of transitive build-requires mixed with normal requires #5056
- Bugfix: Fixed error while using Visual Studio 2019 with Ninja generator. #5028
- Bugfix: Fixed error while using Visual Studio 2019 with Ninja generator. #5025
- Bugfix: Solved errors in concurrent uploads of same recipe #5014
- Bugfix: Fixed a bug that intermittently raised ERROR: 'NoneType' object has no attribute 'file_sums' when uploading a recipe. #5012
- Bugfix: Bug in cmake_find_package_multi caused CMake to find incorrect modules in CMake modules paths when only Config files should be taken into account. #4995
- Bugfix: Fix skipping binaries because of transitive
private
requirements #4987 - Bugfix: Fix broken local development flow (conan source, conan build, conan package, conan export-pkg) with recipes with python-requires #4983
- Bugfix:
build-requires
andprivate
requirements that resolve to a dependency that is already in the graph won't span a new node, nor will bebuild-requires
orprivate
. They can conflict too. #4937
- Bugfix: Run a full metadata migration in the cache to avoid old
null
revisions in package metadata #4934
- Fix: Print a message for unhandled Conan errors building the API and collaborators #4869
- Bugfix: Client does not require credentials for anonymous downloads from remotes. #4872
- Bugfix: Fix a migration problem of
conan config install
for Conan versions 1.9 and older #4870 - Feature: Now Conan will crush your enemies, see them driven before you, and to hear the lamentation of their women! (April's fools)
- Feature: support new architectures s390 and s390x #4810 . Docs here
- Feature: --build parameter now applies fnmatching onto the whole reference, allowing to control rebuilding in a much broader way. #4787 . Docs here
- Feature: Add config variable general.error_on_override and environment variable CONAN_ERROR_ON_OVERRIDE (defaulting to False) to configure if an overridden requirement should raise an error when overridden from downstream consumers. #4771 . Docs here
- Feature: Allow to specify revision_mode for each recipe, values accepted are scm or hash (default) #4767 . Docs here
- Feature: Sort library list name when calling tools.collect_libs #4761 . Docs here
- Feature: Add cmake_find_package_multi generator. #4714 . Docs here
- Feature: Implement
--source-folder
and--target-folder
toconan config install
command to select subfolder to install from the source origin, and also the destination folder within the cache. #4709 . Docs here - Feature: Implement
--update
argument forpython-requires
too. #4660 - Fix: Apply environment variables from profile and from requirements to :command:`conan export-pkg` #4852
- Fix: Do not run export_sources automatically for python_requires #4838
- Fix: Show the correct profile name when detect a new one (#4818) #4824
- Fix: Allow using
reference
object in workspaces in templates for out of source builds #4812 . Docs here - Fix: Look for
vswhere
inPATH
when usingtools.vswhere()
#4805 - Fix: SystemPackageTools doesn't run sudo when it's not found (#4470) #4774 . Docs here
- Fix: Show warning if repo is not pristine and using SCM mode to set the revisions #4764
- Fix: avoid double call to
package()
method #4748 . Docs here - Fix: The cmake_paths generator now declares the CONAN_XXX_ROOT variables in case some exported cmake module file like XXXConfig.cmake has been patched with the cmake.patch_config_paths() to replace absolute paths to the local cache. #4719 . Docs here
- Fix: Do not distribute the tests in the python package nor in the installers. #4713
- Fix: add support for CMake generator platform #4708 . Docs here
- Fix: Fix corrupted packages with missing conanmanifest.txt files #4662
- Fix: Include information about all the configurations in the JSON generator #4657 . Docs here
- Bugfix: Fixed authentication management when a server returns 401 uploading a file. #4857
- Bugfix: Fixed recipe revision detection when some error output or unexpected output was printed to the stdout running the git command. #4854
- Bugfix: The error output was piped to stdout causing issues while running git commands, especially during the detection of the scm revision #4853
- Bugfix: :command:`conan export-pkg` should never resolve build-requires #4851
- bugfix: The --build pattern was case sensitive depending on the os file system, now it is always case sensitive, following the :command:`conan search` behavior. #4842
- Bugfix: Fix metadata not being updated for :command:`conan export-pkg` when using
--package-folder
#4834 - Bugfix: --build parameter now is always case-sensitive, previously it depended to the file system type. #4787 . Docs here
- Bugfix: Raise an error if source files cannot be correctly copied to build folder because of long paths in Windows. #4766
- Bugfix: Use the same interface in
conan_basic_setup()
for thecmake_multi
generator #4721 . Docs here
- Bugfix: Revision computation failed when a git repo was present but without commits #4830
- Bugfix: Installing a reference with "update" and "build outdated" options raised an exception. #4790
- Bugfix: Solved bug with build-requires transitive build-requires #4783
- Bugfix: Fixed workspace crash when no layout was specified #4783
- Bugfix: Do not generate multiple
add_subdirectories()
for workspaces build-requires #4783
- Bugfix: Fix computation of graph when transitive diamonds are processed. #4737
- Feature: Added with_login parameter to tools.run_in_windows_bash() #4673 . Docs here
- Feature: The deb and windows Conan installers now use Python 3. #4663
- Feature: Allow configuring in conan.conf a different default
package_id
mode. #4644 . Docs here - Feature: Apply Jinja2 to layout files before parsing them #4596 . Docs here
- Feature: Accept a PackageReference for the command :command:`conan get` (argument -p is accepted, but hidden) #4494 . Docs here
- Feature: Re-implement Workspaces based on Editable packages. #4481 . Docs here
- Feature: Removed old "compatibility" mode of revisions. #4462 . Docs here
- Fix: When revisions enabled, add the revision to the json output of the info/install commands. #4667
- Fix: JSON output for multi_config now works in install and create commands #4656
- Fix: Deprecate 'cppflags' in favor of 'cxxflags' in class CppInfo #4611 . Docs here
- Fix: Return empty list if env variable is an empty string #4594
- Fix: conan profile list will now recursively list profiles. #4591
- Fix: Instance of 'TestConan' has no 'install_folder' member when exporting recipe #4585
- Fix: SCM replacement with comments below it #4580
- Fix: Remove package references associated to a remote in registry.json when that remote is deleted #4568
- Fix: Fixed issue with Artifactory when the anonymous user is enabled, causing the uploads to fail without requesting the user and password. #4526
- Fix: Do not allow an alias to override an existing package #4495
- Fix: Do not display the warning when there are files in the package folder (#4438). #4464
- Fix: Renamed the :command:`conan link` command to :command:`conan editable` to put packages into editable mode. #4481 . Docs here
- Bugfix: Solve problem with loading recipe python files in Python 3.7 because of
module.__file__ = None
#4669 - Bugfix: Do not attempt to upload non-existing packages, due to empty short_paths folders, or to explicit
upload -p=id
command. #4615 - Bugfix: Fix LIB overwrite in
virtualbuildenv
generator #4583 - Bugfix: Avoid
str(self.settings.xxx)
crash when the value is None. #4571 . Docs here - Bugfix: Build-requires expand over the closure of the package they apply to, so they can create conflicts too. Previously, those conflicts were silently skipped, and builds would use an undetermined version and configuration of dependencies. #4514
- Bugfix: meson build type actually reflects recipe shared option #4489
- Bugfix: Fixed several bugs related to revisions. #4462 . Docs here
- Bugfix: Fixed several bugs related to the package metadata.json #4462 . Docs here
- Fix: Fix potential downgrade from future 1.13 to 1.12 #4547
- Fix: Remove output warnings in MSBuild helper. #4518
- Fix: Revert default cmake generator on Windows (#4265) #4509 . Docs here
- Bugfix: Fixed problem with conanfile.txt [imports] sections using the '@' character. #4539 . Docs here
- Bugfix: Fix search packages function when remote is called all #4502
- Bugfix: Regression in
MSBuild
helper, incorrectly ignoring theconan_build.props
file because of using a relative path instead of absolute one. #4488
- Bugfix: GraphInfo parsing of existing
graph_info.json
files raises KeyError over "root". #4458 - Bugfix: Transitive Editable packages fail to install #4448
- Feature: Add JSON output to 'info' command #4359 . Docs here
- Feature: Remove system requirements conan folders (not installed binaries) from cache #4354 . Docs here
- Feature: Updated CONTRIBUTING.md with code style #4348
- Feature: Updated OS versions for apple products #4345
- Feature: add environment variable CONAN_CACHE_NO_LOCKS to simplify debugging #4309 . Docs here
- Feature: The commands :command:`conan install`, :command:`conan info`, :command:`conan create` and :command:`conan export-pkg` now can receive multiple profile arguments. The applied profile will be the composition of them, prioritizing the latest applied. #4308 . Docs here
- Feature: Added
get_tag()
methods totools.Git()
andtools.SVN()
helpers. #4306 . Docs here - Feature: Package reference is now accepted as an argument in
conan install --build
#4305 . Docs here - Feature: define environment variables for CTest #4299 . Docs here
- Feature: Added a configuration entry at the conan.conf file to be able to specify a custom CMake executable. #4298 . Docs here
- Feature: Skip "README.md" and "LICENSE.txt" during the installation of a custom config via conan config install. #4259 . Docs here
- Feature: allow to specify MSBuild verbosity level #4251 . Docs here
- Feature: add definitions to MSBuild build helper (and
tools.build_sln_command()
) #4239 . Docs here - Feature: Generate deterministic short paths on Windows #4238
- Feature: The tools.environment_append() now accepts unsetting variables by means of appending such variable with a value equal to None. #4224 . Docs here
- Feature: Enable a new
reference
argument inconan install <path> <reference>
, wherereference
can be a partial reference too (identical to what is passed to :command:`conan create` or :command:`conan export`. This allows defining all pkg,version,user,channel fields of the recipe for the local flow. #4197 . Docs here - Feature: Added support for new architecture
ppc32
#4195 . Docs here - Feature: Added support for new architecture
armv8.3
#4195 . Docs here - Feature: Added support for new architecture
armv8_32
#4195 . Docs here - Feature: Add experimental support for packages in editable mode #4181 . Docs here
- Fix: Conditionally expand list-like environment variables in
virtualenv
generator #4396 - Fix: get_cross_building_settings for MSYS #4390
- Fix: Implemented retrial of output to stdout stream when the OS (Windows) is holding it and producing IOError for output #4375
- Fix: Validate CONAN_CPU_COUNT and output user-friendly message for invalid values #4372
- Fix: Map
cpp_info.cppflags
toCONAN_CXXFLAGS
inmake
generator. #4349 . Docs here - Fix: Use
*_DIRS
instead of*_PATHS
ending for varaibles generated by themake
generator:INCLUDE_DIRS
,LIB_DIRS
,BIN_DIRS
,BUILD_DIRS
andRES_DIRS
#4349 . Docs here - Fix: Bumped requirement of pyOpenSSL on OSX to >=16.0.0, <19.0.0 #4333
- Fix: Fixed a bug in the migration of the server storage to the revisions layout. #4325
- Fix: ensure tools.environment_append doesn't raise trying to unset variables #4324 . Docs here
- Fix: Improve error message when a server (like a proxy), returns 200-OK for a conan api call, but with an unexpected message. #4317
- Fix: ensure is_windows, detect_windows_subsystem, uname work under MSYS/Cygwin #4313
- Fix: uname shouldn't use -o flag, which is GNU extention #4311
- Fix:
get_branch()
method oftools.SVN()
helper now returns only the branch name, not the tag when present. #4306 . Docs here - Fix: Conan client now always include the X-Checksum-Sha1 header in the file uploads, not only when checking if the file is already there with a remote supporting checksum deploy (Artifactory) #4303
- Fix: SCM optimization related to scm_folder.txt is taken into account only for packages under development. #4301
- Fix: Update premake generator, rename conanbuildinfo.premake -> conanbuildinfo.premake.lua, conan_cppdefines -> conan_defines #4296 . Docs here
- Fix: Using
yaml.safe_load
instead ofload
#4285 - Fix: Fixes default CMake generator on Windows to use MinGW Makefiles. #4281 . Docs here
- Fix: Visual Studio toolset is passed from settings to the MSBuild helper #4250 . Docs here
- Fix: Handle corner cases related to SCM with local sources optimization #4249
- Fix: Allow referring to projects created by b2 generator for dependencies with absolute paths. #4211
- Fix: Credentials are removed from SCM url attribute if Conan is automatically resolving it. #4207 . Docs here
- Fix: Remove client/server versions check on every request. Return server capabilities only in ping endpoint. #4205
- Fix: Updated contributing guidelines to the new workflow #4173
- Bugfix: Fixes config install when copying hooks #4412
- BugFix: Meson generator was failing in case of package_folder == None (test_package using Meson) #4391
- BugFix: Prepend environment variables are applied twice in conanfile #4380
- Bugfix: Caching of several internal loaders broke the conan_api usage #4362
- Bugfix: Removing usage of FileNotFoundError which is Py3 only #4361
- Bugfix: Custom generator allow to use imports #4358 . Docs here
- Bugfix: conanbuildinfo.cmake won't fail if
project()
LANGUAGE is None, but the user definesCONAN_DISABLE_CHECK_COMPILER
. #4276 - Bugfix: Fix version ranges containing spaces and not separated by commas. #4273
- Bugfix: When running consecutively Conan python API calls to create the default profile object became modified and cached between calls. #4256
- Bugfix: Fixes a bug in the CMake build helper about how flags are appended #4227
- Bugfix: Apply the environment to the local conan package command #4204
- Bugfix: b2 generator was failing when package recipe didn't use compiler setting #4202
- Bugfix: The migrated data in the server from a version previous to Conan 1.10.0 was not migrated creating the needed indexes. This fixes the migration and creates the index on the fly for fixing broken migrations. Also the server doesn't try to migrate while running but warns the user to run conan server --migrate after doing a backup of the data, avoiding issues when running the production servers like gunicorn where the process doesn't accept input from the user. #4229
- BugFix: Fix conan config install requester for zip file download #4172
- Feature: Store
verify_ssl
argument in :command:`conan config install` #4158 . Docs here - Feature: Tox launcher to run the test suite. #4151
- Feature: Allow
--graph=file.html
html output using local vis.min.js and vis.min.css resources if they are found in the local cache (can be deployed via :command:`conan config install`) #4133 . Docs here - Feature: Improve client DEBUG traces with better and more complete messages. #4128
- Feature: Server prints the configuration used at startup to help debugging issues. #4128
- Feature: Allow hooks to be stored in folders #4106 . Docs here
- Feature: Remove files containing Macos meta-data (files beginning by ._) #4103 . Docs here
- Feature: Allow arguments in :command:`git clone` for :command:`conan config install` #4083 . Docs here
- Feature: Display the version-ranges resolutions in a cleaner way. #4065
- Feature: allow
conan export . version@user/channel
andconan create . version@user/channel
#4062 . Docs here - Fix: cmake_find_package generator not forwarding all dependency properties #4125
- Fix: Recent updates in python break
ConfigParser
with%
in values, like in path names containing % (jenkins) #4122 - Fix: The property file that the
MSBuild()
is now generated in the build_folder instead of a temporary folder to allow more reproducible builds. #4113 . Docs here - Fix: Fixed the check of the return code from Artifactory when using the checksum deploy feature. #4100
- Fix: Evaluate always SCM attribute before exporting the recipe #4088 . Docs here
- Fix: Reordered Python imports #4064
- Bugfix: In ftp_download function there is extra call to
ftp.login()
with empty args. This causes ftp lib to login again with empty credentials and throwing exception because authentication is required by server. #4092 - Bugfix: Take into account
os_build
andarch_build
for search queries. #4061
- Bugfix: Fixed bad URL schema in ApiV2 that could cause URLs collisions #4138
- Fix: Handle some corner cases of python_requires #4099
- Bugfix: Add v1_only argument in Conan server class #4096
- Bugfix: Handle invalid use of python_requires when imported like conans.python_requires #4090
- Feature: Add include_prerelease and loose option to version range expression #3898
- Feature: Merged "revisions" feature code in develop branch, still disabled by default until it gets stabilized. #3055
- Feature: CMake global variable to disable Conan output
CONAN_CMAKE_SILENT_OUTPUT
#4042 - Feature: Added new
make
generator. #4003 - Feature: Deploy a conan snapshot package to test.pypi.org for every develop commit. #4000
- Fix: Using the scm feature when Conan is not able to read the gitignored files (local optimization mechanism) print a warning to improve the debug information but not crash. #4045
- Fix: The tools.get tool (download + unzip) now supports all the arguments of the download tool. e.g: verify, retry, retry_wait etc. #4041
- Fix: Improve
make
generator test #4018 - Fix: Add space and dot in
conan new --help
#3999 - Fix: Resolve aliased packages in python_requires #3957
- Bugfix: Better checks of package reference
pkg/version@user/channel
, avoids bugs for conanfile in 4 nested folders andconan install path/to/the/file
#4044 - Bugfix: Running Windows subsystem scripts crashed when the PATH environment variable passed as a list. #4039
- Bugfix: Fix removal of conanfile.py with :command:`conan source` command and the removal of source folder in the local cache when something fails #4033
- Bugfix: A :command:`conan install` with a reference failed when running in the operating system root folder because python tried to create the directory even when nothing is going to be written. #4012
- Bugfix: Fix qbs generator mixing sharedlinkflags and exelinkflags #3980
- Bugfix:
compiler_args
generated "mytool.lib.lib" for Visual Studio libraries that were defined with the.lib
extension in theself.cpp_info.libs
field ofpackage_info()
. #3976
- Bugfix: SVN API changes are relevant since version 1.9 #3954
- Bugfix: Fixed bug in vcvars_dict tool when using filter_known_paths argument. #3941
- Fix: Fix regression introduced in 1.7, setting
amd64_x86
when noarch_build
is defined. #3918 - Fix: Do not look for binaries in other remotes than the recipe, if it is defined. #3890
- Bugfix:
sudo --askpass
breaks CentOS 6 package installation. The sudo version on CentOS 6 is 1.8.6. The option ofaskpass
for sudo version 1.8.7 or older is sudo -A. #3885
- Feature: Support for
srcdirs
inpackage_info()
. Packages can package sources, and specify their location, which will be propagated to consumers. Includes support for CMake generator. #3857 - Feature: Added remote_name and remote_url to upload json output. #3850
- Feature: Add environment variable CONAN_USE_ALWAYS_SHORT_PATHS to let the consumer override short_paths behavior from recipes #3846
- Feature: Added
--json
output toconan export_pkg
command #3809 - Feature: Add conan remote clean subcommand #3767
- Feature: New premake generator incorporated to the Conan code base from the external generator at https://github.com/memsharded/conan-premake. #3751
- Feature: New conan remote list_pref/add_pref/remove_pref/update_pref commands added to manage the new Registry entries for binary packages. #3726
- Feature: Add cpp_info data to json output of
install
andcreate
commands at package level. #3717 - Feature: Now the default templates of the :command:`conan new` command use the docker images from the conanio organization: https://hub.docker.com/u/conanio #3710
- Feature: Added
topics
attribute to the ConanFile to specify topics (a.k.a tags, a.k.a keywords) to the recipe. #3702 - Feature: Internal refactor to the remote registry to manage a json file. Also improved internal interface. #3676
- Feature: Implement reuse of sources (
exports_sources
) in recipes used aspython_requires()
. #3661 - Feature: Added support for Clang >=8 and the new versioning schema, where only the major and the patch is used. #3643
- Fix: Renamed Plugins as Hooks #3867
- Fix: Adds GCC 8.2 to default settings.yml #3865
- Fix: Hidden confusing messages download conaninfo.txt when requesting the server to check package manifests. #3861
- Fix: The
MSBuild()
build helper doesn't adjust the compiler flags for the build_type anymore because they are adjusted by the project itself. #3860 - Fix: Add
neon
as linux distro for SystemPackageTools #3845 - Fix: remove error that was raised for custom compiler & compiler version, while checking
cppstd
setting. #3844 - Fix: do not allow wildcards in command
conan download <ref-without-wildcards>
#3843 - Fix: do not populate
arch
norarch_build
in autodetected profile ifplatform.machine
returns an empty string. #3841 - Fix: The registry won't remove a reference to a remote removed recipe or package. #3838
- Fix: Internal improvements of the ConanFile loader #3837
- Fix: environment variables are passed verbatim to generators. #3836
- Fix: Implement dirty checks in the cache build folder, so failed builds are not packaged when there is a
build_id()
method. #3834 - Fix:
vcvars
is also called in theCMake()
build helper when clang compiler is used, not only with Visual Studio`compiler. `#3832 - Fix: Ignore empty line when parsing output inside
SVN::excluded_files
function. #3830 - Fix: Bump version of
tqdm
requirement to>=4.28.0
#3823 - Fix: Handling corrupted lock files in cache #3816
- Fix: Implement download concurrency checks, to allow simultaneous download of the same package (as header-only) while installing different configurations that depend on that package. #3806
- Fix:
vcvars
is also called in the CMake() build helper when using Ninja or NMake generators. #3803 - Fix: Fixed
link_flags
management inMSBuild
build helper #3791 - Fix: Allow providing
--profile
argument (and settings, options, env, too) to :command:`conan export-pkg`, so it is able to correctly compute the binary package_id in case the information captured in the installed conaninfo.txt in previous :command:`conan install` does not contain all information to reconstruct the graph. #3768 - Fix: Upgrade dependency of
tqdm
to >=4.27: solves issue with weakref assertion. #3763 - Fix: Use XML output to retrieve information from SVN command line if its client version is less than 1.8 (command
--show-item
is not available). #3757 - Fix: SVN v1.7 does not have
-r
argument insvn status
, so functionalitySVN::is_pristine
won't be available. #3757 - Fix: Add
--askpass
argument tosudo
if it is not an interactive terminal #3727 - Fix: The remote used to download a binary package is now stored, so any update for the specific binary will come from the right remote. #3726
- Fix: Use XML output from SVN command line interface to compute if the repository is pristine. #3653
- Fix: Updated templates of the :command:`conan new` command with the latest conan package tools changes. #3651
- Fix: Improve error messages if conanfile was not found #3554
- BugFix: Fix conflicting multiple local imports for python_requires #3876
- Bugfix: do not ask for the username if it is already given when login into a remote. #3839
- Bugfix:
yum update
needs user's confirmation, which breaks system update in CentOS non-interactive terminal. #3747
- Feature: Increase debugging information when an error uploading a recipe with different timestamp occurs. #3801
- Fix: Changed
tqdm
dependency to a temporarily forked removing the "man" directory write permissions issue installing the pip package. #3802 - Fix: Removed ndg-httpsclient and pyasn dependencies from OSX requirements file because they shouldn't be necessary. #3802
- Feature: New attributes
default_user
anddefault_channel
that can be declared in a conanfile to specify the user and channel for conan local methods when neither CONAN_USERNAME and CONAN_CHANNEL environment variables exist. #3758 - Bugfix: AST parsing of
conanfile.py
with shebang and encoding header lines was failing in python 2. This fix also allows non-ascii chars inconanfile.py
if proper encoding is declared. #3750
- Fix: Fix misleading warning message in
tools.collect_libs()
#3718 - BugFix: Fixed wrong naming of
--sbindir
and--libexecdir
in AutoTools build helper. #3715
- Fix: Remove warnings related to
python_requires()
, both in linter and due to Python2. #3706 - Fix: Use share folder for
DATAROOTDIR
in CMake and AutoTools build helpers. #3705 - Fix: Disabled apiv2 until the new protocol becomes stable. #3703
- Feature: Allow conan config install to install configuration from a folder and not only from compressed files. #3680
- Feature: The environment variable CONAN_DEFAULT_PROFILE_PATH allows the user to define the path (existing) to the default profile that will be used by Conan. #3675
- Feature: New :command:`conan inspect` command that provides individual attributes of a recipe, like name, version, or options. Work with
-r=remote
repos too, and is able to produce--json
output. #3634 - Feature: Validate parameter for ConanFileReference objects to avoid unnecessary checks #3623
- Feature: The environment variable CONAN_DEFAULT_PROFILE_PATH allows the user to define the path (absolute and existing) to the default profile that will be used by Conan. #3615
- Feature: Warning message printed if Conan cannot deduce an architecture of a GNU triplet. #3603
- Feature: The
AutotoolsBuildEnvironment
andCMake
build helpers now adjust default for the GNU standard installation directories:bindir
,sbin
,libexec
,includedir
,oldincludedir
,datarootdir
#3599 - Feature: Added
use_default_install_dirs
inAutotoolsBuildEnvironment.configure()
to opt-out from the defaulted installation dirs. #3599 - Feature: Clean repeated entries in the
PATH
whenvcvars
is run, mitigating the max size of the env var issues. #3598 - Feature: Allow
vcvars
to run ifclang-cl
compiler is detected. #3574 - Feature: Added python 2 deprecation message in the output of the conan commands. #3567
- Feature: The :command:`conan install` command now prints information about the applied configuration. #3561
- Feature: New naming convention for conanfile reserved/public/private attributes. #3560
- Feature: Experimental support for Conan plugins. #3555
- Feature: Progress bars for files unzipping. #3545
- Feature: Improved graph propagation performance from
O(n2)
toO(n)
. #3528 - Feature: Added
ConanInvalidConfiguration
as the standard way to indicate that a specific configuration is not valid for the current package. e.g library not compatible with Windows. #3517 - Feature: Added
libtool()
function to the tools.XCRun() tool to locate the systemlibtool
. #3515 - Feature: The tool
tools.collect_libs()
now search into each folder declared inself.cpp_info.libdirs
. #3503 - Feature: Added definition
CMAKE_OSX_DEPLOYMENT_TARGET
to theCMake
build helper following theos.version
setting forMacos
. #3486 - Feature: The upload of files now uses the conanmanifest.txt file to know if a file has to be uploaded or not. It avoids issues associated with the metadata of the files permissions contained in the tgz files. #3480
- Feature: The default_options in a conanfile.py can be specified now as a dictionary. #3477
- Feature: The command conan config install now support relative paths. #3468
- Feature: Added a definition CONAN_IN_LOCAL_CACHE to the CMake() build helper. #3450
- Feature: Improved AptTool at SystemPackageTool adding a function add_repository to add new apt repositories. #3445
- Feature: Experimental and initial support for the REST apiv2 that will allow transfers in one step and revisions in the future. #3442
- Feature: Improve the output of a :command:`conan install` command printing dependencies when a binary is not found. #3438
- Feature: New b2 generator. It replaces the old incomplete boost_build generator that is now deprecated. #3416
- Feature: New
tool.replace_path_in_file
to replace Windows paths in a file doing case-insensitive comparison and indistinct path separators comparison: "/" == "\" #3399 - Feature: [Experimental] Add SCM support for SVN. #3192
- Fix:
None
option value was not being propagated upstream in the dependency graph #3684 - Fix: Apply
system_requirements()
always on install, in case the folder was removed. #3647 - Fix: Included
bottle
package in the development requirements #3646 - Fix: More complete architecture list in the detection of the gnu triplet and the detection of the build machine architecture. #3581
- Fix: Avoid downloading the manifest of the recipe twice for uploads. Making this download quiet, without output. #3552
- Fix: Fixed
Git
scm class avoiding to replace any character in theget_branch()
function. #3496 - Fix: Removed login username syntax checks that were no longer necessary. #3464
- Fix: Removed bad duplicated messages about dependency overriding when using conan alias. #3456
- Fix: Improve :command:`conan info` help message. #3415
- Fix: The generator files are only written in disk if the content of the generated file changes. #3412
- Fix: Improved error message when parsing a bad conanfile reference. #3410
- Fix: Paths are replaced correctly on Windows when using
CMake().patch_config_files()
. #3399 - Fix: Fixed AptTool at SystemPackageTool to improve the detection of an installed package. #3033
- BugFix: Fixes
python_requires
overwritten when using more than one of them in a recipe #3628 - BugFix: Fix output overlap of decompress progress and plugins #3622
- Bugfix: Check if the
system_requirements()
have to be executed even when the package is retrieved from the local cache. #3616 - Bugfix: All API calls are now logged into the
CONAN_TRACE_FILE
log file. #3613 - Bugfix: Renamed
os
(reserved symbol) parameter toos_
in theget_gnu_triplet
tool. #3603 - Bugfix: :command:`conan get` command now works correctly with enabled
short paths
. #3600 - Bugfix: Fixed
scm
replacement of the variable when exporting a conanfile. #3576 - Bugfix: apiv2 was retrying the downloads even when a 404 error was raised. #3562
- Bugfix: Fixed
export_sources
excluded patterns containing symlinks. #3537 - Bugfix: Fixed bug with transitive private dependencies. #3525
- Bugfix:
get_cased_path
crashed when the path didn't exist. #3516 - BugFix: Fixed failures when Conan walk directories with files containing not ASCCI characters in the file name. #3505
- Bugfix: The scm feature now looks for the repo root even when the conanfile.py is in a subfolder. #3479
- Bugfix: Fixed OSInfo.bash_path() when there is no windows_subsystem. #3455
- Bugfix: AutotoolsBuildEnvironment was not defaulting the output library directory causing broken consumption of packages when rebuilding from sources in different Linux distros using lib64 default. Read more :ref:`here<autotools_lib64_warning>`. #3388
- Bugfix: Fixed a bug in apiv2.
- Fix: Disabled apiv2 by default until it gets more stability.
- Bugfix: Uncontrolled exception was raised while printing the output of an error downloading a file.
- Bugfix: Fixed :command:`*:option` pattern for conanfile consumers.
- Bugfix: Reverted default options initialization to empty string with varname=.
- Bugfix: Fixed conan build command with --test and --install arguments.
- Fix: Trailing sentences in Conan help command.
- Fix: Removed hardcoded :command:`-c init.templateDir=` argument in :command:`git clone` for :command:`conan config install`, in favor of a new :command:`--args` parameter that allows custom arguments.
- Fix: SCM can now handle nested subfolders.
- BugFix: Fix :command:`conan export-pkg` unnecessarily checking remotes.
- Feature: Support for C++20 in CMake > 3.12.
- Feature: Included support for Python 3.7 in all platforms.
- Feature: [Experimental] New
python_requires
function that allows you to reuse Python code by "requiring" it in Conan packages, even to extend theConanFile
class. See: :ref:`Python requires: reusing python code in recipes<python_requires>` - Feature:
CMake
methodpatch_config_paths
replaces absolute paths to a Conan package's dependencies as well as to the Conan package itself. - Feature:
MSBuild
andVisualStudioBuildEnvironment
build helpers adjust the/MP
flag to build code in parallel using multiple cores. - Feature: Added a
print_errors
parameter totools.PkgConfig()
helper. - Feature: Added :command:`--query` argument to :command:`conan upload`.
- Feature:
virtualenv
/virtualbuildenv
/virtualrunenv
generators now create bash scripts in Windows for use in subsystems. - Feature: Improved resolution speed for version ranges through caching of remote requests.
- Feature: Improved the result of
tools.vcvars_dict(only_diff=True)
including a "list" return type that can be used withtools.environment_append()
. - Fix:
AutoToolsBuildEnvironment
build helper now keeps thePKG_CONFIG_PATHS
variable previously set in the environment. - Fix: The SCM feature keeps the
.git
folder during the copy of a local directory to the local cache. - Fix: The SCM feature now correctly excludes the folders ignored by Git during the copy of a local directory to the local cache.
- Fix: Conan messages now spell "overridden" correctly.
- Fix:
MSBuild
build helper arguments using quotes. - Fix:
vcvars_command
andMSBuild
build helper use theamd64_x86
parameter when Visual Studio > 12 and when cross building for x86. - Fix: Disabled
-c init.TemplateDir
in :command:`conan config install` from a Git repository. - Fix: Clang compiler check in
cmake
generator. - Fix: Detection of Zypper package tool on latest versions of openSUSE.
- Fix: Improved help output of some commands.
- BugFix:
qmake
generator hyphen. - Bugfix: Git submodules are now initialized from repo HEAD after checking out the referenced revision when using the
scm
attribute. - BugFix: Declaration
default_options
without value, e.g.default_options = "config="
. Now it will throw an exception. - BugFix: Deactivate script in
virtualenv
generator causes PS1 to go unset. - BugFix: Apply general scope options to a consumer ConanFile first.
- BugFix: Fixed detection of a valid repository for Git in the SCM feature.
- Bugfix: :command:`conan info --build-order` was showing duplicated nodes for build-requires and private dependencies.
- Fix: Fixed failure with the
alias
packages when the name of the package (excluded the version) was different from the aliased package. Now it is limited in the :command:`conan alias` command.
- Feature: Added a new
self.run(..., run_environment=True)
argument, that automatically appliesPATH
,LD_LIBRARY_PATH
andDYLD_LIBRARY_PATH
environment variables from the dependencies, to the execution of the current command. - Feature: Added a new
tools.run_environment()
method as a shortcut to usingtools.environment_append
andRunEnvironment()
together. - Feature: Added a new
self.run(..., ignore_errors=True)
argument that represses launching an exception if the commands fails, so user can capture the return code. - Feature: Improved
tools.Git
to allow capturing the current branch and enabling the export of a package whose version is based on the branch and commit. - Feature: The
json
generator now outputs settings and options - Feature: :command:`conan remote list --raw` prints remote information in a format valid for remotes.txt, so it can be used for
conan config install
- Feature: Visual Studio generator creates the conanbuildinfo.props file using the
$(USERPROFILE)
macro. - Feature: Added a
filename
parameter totools.get()
in case it cannot be deduced from the URL. - Feature: Propagated
keep_permissions
andpattern
parameters fromtools.get()
totools.unzip()
. - Feature: Added XZ extensions to
unzip()
. This will only work in Python 3 with lzma support enabled, otherwise, and error is produced. - Feature: Added
FRAMEWORK_SEARCH_PATHS
var to the Xcode generator to support packaging Apple Frameworks. Read more :ref:`here<package_apple_framework>`. - Feature: Added :command:`conan build --test` and a
should_configure
attribute to control the test stage. Read more :ref:`here<attribute_build_stages>`. - Feature: New tools to convert between files with LF and CRLF line endings: :ref:`tools_unix2dos` and :ref:`tools_dos2unix`.
- Feature: Added :command:`conan config install [url] --type=git` to force cloning of a Git repo for
http://...
git urls. - Feature: Improved output information when a package is missing in a remote to show which package requires the missing one.
- Feature: Improved the management of an upload interruption to avoid uploads of incomplete tarballs.
- Feature: Added new
LLVM
toolsets to the basesettings.yml
(Visual Studio). - Feature: Created a plugin for pylint with the previous Conan checks (run in the export) enabling usage of the plugin in IDEs and command line to check if recipes are correct.
- Feature: Improved the
deb
installer to guarantee that it runs correctly in Debian 9 and other distros. - Fix: Fixed :command:`conan search -q` and :command:`conan remove -q` to not return packages that don't have the setting specified in the query.
- Fix: Fixed
SystemPackageTool
when calling to update withsudo
is not enabled andmode=verify
. - Fix: Removed
pyinstaller
shared libraries from the linker environment for any Conan subprocess. - BugFix: The
YumTool
now callsyum update
instead ofyum check-update
. - Bugfix: Solved a bug in which using
--manifest
parameter with :command:`conan create` caused the deletion of information in the dependency graph. - Bugfix: Solved bug in which the
build
method of theVersion
model was not showing the version build field correctly . - Bugfix: Fixed a Conan crash caused by a dependency tree containing transitive private nodes.
- Bugfix: Fixed bug with pre-1.0 packages with sources.
- Bugfix: Fixed regression in private requirements.
- Bugfix: Sources in the local cache weren't removed when using scm pointing to the local source directory, causing changes in local sources not applied to the conan create process.
- Bugfix: Fixed bug causing duplication of build requires in the dependency graph.
- Feature: :command:`conan search <pkg-ref> -r=all` now is able to search for binaries too in all remotes
- Feature: Dependency graph improvements:
build_requires
are represented in the graph (visible in :command:`conan info``, also in the HTML graph). :command:`conan install` and :command:`conan info` commands shows extended information of the binaries status (represented in colors in HTML graph). The dependencies declaration order in recipes is respected (as long as it doesn't break the dependency graph order). - Feature: improved remote management, it is possible to get binaries from different remotes.
- Feature: :command:`conan user` command is now able to show authenticated users.
- Feature: Added :command:`conan user --json` json output to the command.
- Feature: New
pattern
argument totools.unzip()
andtools.untargz
functions, that allow efficient extraction of certain files only. - Feature : Added Manjaro support for
SystemPackageTools
. - Feature: Added
Macos
version
subsetting in the default settings.yml file, to account for the "min OSX version" configuration. - Feature: SCM helper argument to recursively clone submodules
- Feature: SCM helper management of subfolder, allows using
exports
andexports_sources
, manage symlinks, and do not copy files that are .gitignored. Also, works better in the local development flow. - Feature: Modifies user agent header to output the Conan client version and the Python version. Example:
Conan/1.5.0 (Python 2.7.1)
- Fix: The
CMake()
helper now doesn't require a compiler input to deduce the default generator. - Fix: :command:`conan search <pattern>` now works consistently in local cache and remotes.
- Fix: Proxy related environment variables are removed if conan.conf declares proxy configuration.
- Fix: Fixed the parsing of invalid JSON when Microsoft
vswhere
tool outputs invalid non utf-8 text. - Fix: Applying
winsdk
andvcvars_ver
to MSBuild andvcvars_command
for VS 14 too. - Fix: Workspaces now support
build_requires
. - Fix:
CMake()
helper now defines by defaultCMAKE_EXPORT_NO_PACKAGE_REGISTRY
. - Fix: Settings constraints declared in recipes now don't error for single strings (instead of a list with a string element).
- Fix:
cmake_minimum_required()
is now beforeproject()
in templates and examples. - Fix:
CONAN_SYSREQUIRES_MODE=Disabled
now doesn't try to update the system packages registry. - Bugfix: Fixed SCM origin path of windows folder (with backslashes).
- Bugfix: Fixed SCM dictionary order when doing replacement.
- Bugfix: Fixed auto-detection of apple-clang 10.0.
- Bugfix: Fixed bug when doing a :command:`conan search` without registry file (just before installation).
- Bugfix: The package_id recipe method was being called twice causing issues with info objects being populated with wrong information.
- Bugfix: Fix link order with private requirements.
- Bugfix: Removed duplicate
-std
flag in CMake < 3 or when the standard is not yet supported byCMAKE_CXX_STANDARD
. - Bugfix: Check
scm
attribute to avoid breaking recipes with already defined one. - Feature: Conan workspaces.
- Bugfix: Added system libraries to the cmake_find_package generator.
- Fix: Added SIGTERM signal handler to quit safely.
- Bugfix: Fixed miss-detection of gcc 1 when no gcc was on a Linux machine.
- Bugfix: Fixed multi-config packages.
- Bugfix: Fixed cppstd management with CMake and 20 standard version.
- Bugfix: Solved issue with symlinks making recipes to fail with
self.copy
. - Bugfix: Fixed c++20 standard usage with modern compilers and the creation of the settings.yml containing the settings values.
- Bugfix: Fixed error with cased directory names in Windows.
- BugFix: Modified confusing warning message in the SCM tool when the remote couldn't be detected.
- Feature: Added
scm
conanfile attribute, to easily clone/checkout from remote repositories and to capture the remote and commit in the exported recipe when the recipe and the sources lives in the same repository. Read more in ":ref:`Recipe and sources in a different repo <external_repo>`" and ":ref:`Recipe and sources in the same repo <package_repo>`". - Feature: Added
cmake_paths
generator to create a file settingCMAKE_MODULE_PATH
andCMAKE_PREFIX_PATH
to the packages folders. It can be used as a CMake toolchain to perform a transparent CMake usage, without include any line of cmake code related to Conan. Read more :ref:`here <cmake_paths_generator>`. - Feature: Added
cmake_find_package
generator that generates oneFindXXX.cmake
file per each dependency both with classic CMake approach and modern using transitive CMake targets. Read more :ref:`here <cmake_find_package_generator>`. - Feature: Added :command:`conan search --json` json output to the command.
- Feature: CMake build helper now sets
PKG_CONFIG_PATH
automatically and receives new parameterpkg_config_paths
to override it. - Feature: CMake build helper doesn't require to specify "arch" nor "compiler" anymore when the generator is "Unix Makefiles".
- Feature: Introduced default settings for GCC 8, Clang 7.
- Feature: Introduced support for c++ language standard c++20.
- Feature: Auto-managed
fPIC
option in AutoTools build helper. - Feature:
tools.vcvars_command()
andtools.vcvars_dict()
now takevcvars_ver
andwinsdk_version
as parameters. - Feature:
tools.vcvars_dict()
gets only the env vars set by vcvars with new parameteronly_diff=True
. - Feature: Generator
virtualbuildenv
now sets Visual Studio env vars viatool.vcvars_dict()
. - Feature: New tools for Apple development including XCRun wrapper.
- Fix: Message "Package '1' created" in package commands with
short_paths=True
now shows package ID. - Fix:
tools.vcvars_dict()
failing to create dictionary due to newlines in vcvars command output. - Bugfix:
tools.which()
returning directories instead of only files. - Bugfix: Inconsistent local cache when developing a recipe with
short_paths=True
. - Bugfix: Fixed reusing MSBuild() helper object for multi-configuration packages.
- Bugfix: Fixed authentication using env vars such as
CONAN_PASSWORD
whenCONAN_NON_INTERACTIVE=True
. - Bugfix: Fixed Android api_level was not used to adjust CMAKE_SYSTEM_VERSION.
- Bugfix: Fixed MSBuild() build helper creating empty XML node for runtime when the setting was not declared.
- Bugfix: Fixed
default_options
not supporting=
in value when specified as tuple. - Bugfix: AutoToolsBuildEnvironment build helper's
pkg_config_paths
parameter now sets paths relative to the install folder or absolute ones if provided.
- Bugfix: Fixed encoding issues writing to files and calculating md5 sums.
- Bugfix: Fixed broken
run_in_windows_bash
due to wrong argument. - Bugfix: Fixed
VisualStudioBuildEnvironment
when toolset was not defined. - Bugfix: Fixed md5 computation of conan .tgz files for recipe, exported sources and packages due to file ordering and flags.
- Bugfix: Fixed
conan download -p=wrong_id
command - Fix: Added apple-clang 9.1
- Bugfix: Fixed regression with
AutoToolsBuildEnvironment
build helper that raised exception with not supported architectures during the calculation of the GNU triplet. - Bugfix: Fixed
pkg_config
generator, previously crashing when there was no library directories in the requirements. - Bugfix: Fixed
conanfile.run()
withwin_bash=True
quoting the paths correctly. - Bugfix: Recovered parameter "append" to the
tools.save
function. - Bugfix: Added support (documented but missing) to delete options in
package_id()
method usingdel self.info.options.<option>
- Feature: Added new build types to default
settings.yml
: RelWithDebInfo and MinSizeRel. Compiler flags will be automatically defined in build helpers that do not understand them (MSBuild
,AutotoolsBuildEnvironment
) - Feature: Improved package integrity. Interrupted downloads or builds shouldn't leave corrupted packages.
- Feature: Added :command:`conan upload --json` json output to the command.
- Feature: new :command:`conan remove --locks` to clear cache locks. Useful when killing conan.
- Feature: New CircleCI template scripts can be generated with the :command:`conan new` command.
- Feature: The CMake() build helper manages the fPIC flag automatically based on the options
fPIC
andshared
when present. - Feature: Allowing requiring color output with
CONAN_COLOR_DISPLAY=1
environment variable. IfCONAN_COLOR_DISPLAY
is not set rely on tty detection for colored output. - Feature: New :command:`conan remote rename` and :command:`conan add --force` commands to handle remotes.
- Feature: Added parameter
use_env
to theMSBuild().build()
build helper method to control the/p:UseEnv
msbuild argument. - Feature: Timeout for downloading files from remotes is now configurable (defaulted to 60 seconds)
- Feature: Improved Autotools build helper with new parameters and automatic set of
--prefix
toself.package_folder
. - Feature: Added new tool to compose GNU like triplets for cross-building:
tools.get_gnu_triplet()
- Fix: Use International Units for download/upload transfer sizes (Mb, Kb, etc).
- Fix: Removed duplicated paths in
cmake_multi
generated files. - Fix: Removed false positive linter warning for local imports.
- Fix: Improved command line help for positional arguments
- Fix :command:`-ks` alias for :command:`--keep-source` argument in :command:`conan create` and :command:`conan export`.
- Fix: removed confusing warnings when
self.copy()
doesn't copy files in thepackage()
method. - Fix:
None
is now a possible value for settings with nested subsettings insettings.yml
. - Fix: if
vcvars_command
is called and Visual is not found, raise an error instead of warning. - Bugfix:
self.env_info.paths
andself.env_info.PATHS
both map now to PATHS env-var. - Bugfix: Local flow was not correctly recovering state for option values.
- Bugfix: Windows NTFS permissions failed in case USERDOMAIN env-var was not defined.
- Bugfix: Fixed generator
pkg_config
when there are absolute paths (not use prefix) - Bugfix: Fixed parsing of settings values with
"="
character in conaninfo.txt files. - Bugfix: Fixed misdetection of MSYS environments (generation of default profile)
- Bugfix: Fixed string escaping in CMake files for preprocessor definitions.
- Bugfix:
upload --no-overwrite
failed when the remote package didn't exist. - Bugfix: Don't raise an error if
detect_windows_subsystem
doesn't detect a subsystem.
- Bugfix: Removed invalid version field from scons generator.
- Feature: Support for apple-clang 9.1
- Bugfix: compiler_args generator manage correctly the flag for the cppstd setting.
- Bugfix: Replaced exception with a warning message (recommending the six module) when using StringIO class from the io module.
- Feature: The command :command:`conan build` has new
--configure, --build, --install
arguments to control the different stages of thebuild()
method. - Feature: The command :command:`conan export-pkg` now has a :command:`--package-folder` that can be used to export an exact copy of the
provided folder, irrespective of the
package()
method. It assumes the package has been locally created with a previous :command:`conan package` or with a :command:`conan build` using acmake.install()
or equivalent feature. - Feature: New
json
generator, generates a json file with machine readable information from dependencies. - Feature: Improved proxies configuration with
no_proxy_match
configuration variable. - Feature: New :command:`conan upload` parameter :command:`--no-overwrite` to forbid the overwriting of recipe/packages if they have changed.
- Feature: Exports are now copied to
source_folder
when doing :command:`conan source`. - Feature:
tools.vcvars()
context manager has no effect if platform is different from Windows. - Feature: :command:`conan download` has new optional argument :command:`--recipe` to download only the recipe of a package.
- Feature: Added
CONAN_NON_INTERACTIVE
environment variable to disable interactive prompts. - Feature: Improved
MSbuild()
build helper usingvcvars()
and generating property file to adjust the runtime automatically. New methodget_command()
with the call tomsbuild
tool. Deprecatestools.build_sln_command()
andtools.msvc_build_command()
. - Feature: Support for clang 6.0 correctly managing cppstd flags.
- Feature: Added configuration to specify a client certificate to connect to SSL server.
- Feature: Improved
ycm
generator to show json dependencies. - Feature: Experimental
--json
parameter for :command:`conan install` and :command:`conan create` to generate a JSON file with install information. - Fix: :command:`conan install --build` does not absorb more than one parameter.
- Fix: Made conanfile templates generated with :command:`conan new` PEP8 compliant.
- Fix: :command:`conan search` output improved when there are no packages for the given reference.
- Fix: Made :command:`conan download` also retrieve sources.
- Fix: Pylint now runs as an external process.
- Fix: Made
self.user
andself.channel
available in test_package. - Fix: Made files writable after a
deploy()
orimports()
whenCONAN_READ_ONLY_CACHE`
/general.read_only_cache
environment/config variable isTrue
. - Fix: Linter showing warnings with
cpp_info
object indeploy()
method. - Fix: Disabled linter for Conan pyinstaller as it was not able to find the python modules.
- Fix: :command:`conan user -r=remote_name` showed all users for all remotes, not the one given.
- BugFix: Python reuse code failing to import module in
package_info()
. - BugFix: Added escapes for backslashes in
cmake
generator. - BugFix: :command:`conan config install` now raises error if :command:`git clone` fails.
- BugFix: Alias resolution not working in diamond shaped dependency trees.
- BugFix: Fixed builds with Cygwin/MSYS2 failing in Windows with self.short_paths=True and NTFS file systems due to ACL permissions.
- BugFix: Failed to adjust architecture when running Conan platform detection in ARM devices.
- BugFix: Output to StringIO failing in Python 2.
- BugFix: :command:`conan profile update` not working to update
[env]
section. - BugFix: :command:`conan search` not creating default remotes when running it as the very first command after Conan installation.
- BugFix: Package folder was not cleaned after the installation and download of a package had failed.
- Feature:
build_sln_command()
andmsvc_build_command()
receive a new optional parameterplatforms
to match the definition of the .sln Visual Studio project architecture. (Typically Win32 vs x86 problem). - Bugfix: Flags for Visual Studio command (cl.exe) using "-" instead of "/" to avoid problems in builds using AutoTools scripts with Visual Studio compiler.
- Bugfix: Visual Studio runtime flags adjusted correctly in
AutoToolsBuildEnvironment()
build helper - Bugfix:
AutoToolsBuildEnvironment()
build helper now adjust the correct build flag, not using eabi suffix, for architecture x86.
- Feature: New :command:`conan create --keep-build` option that allows re-packaging from conan local cache, without re-building.
- Feature: :command:`conan search <pattern> -r=all` now searches in all defined remotes.
- Feature: Added setting
cppstd
to manage the C++ standard. Also improved build helpers to adjust the standard automatically when the user activates the setting.AutoToolsBuildEnvironment()
,CMake()
,MSBuild()
andVisualStudioBuildEnvironment()
. - Feature: New
compiler_args
generator, for directly calling the compiler from command line, for multiple compilers: VS, gcc, clang. - Feature: Defined
sysrequires_mode
variable (CONAN_SYSREQUIRES_MODE
env-var) with valuesenabled, verify, disabled
to control the installation of system dependencies viaSystemPackageTool
typically used in :ref:`method_system_requirements`. - Feature: automatically apply
pythonpath
environment variable for dependencies containing python code to be reused to recipesource()
,build()
,package()
methods. - Feature:
CMake
newpatch_config_paths()
methods that will replace absolute paths to conan package path variables, so cmake find scripts are relocatable. - Feature: new :command:`--test-build-folder` command line argument to define the location of the test_package build folder, and new conan.conf
temp_test_folder
and environment variableCONAN_TEMP_TEST_FOLDER
, that if set to True will automatically clean the test_package build folder after running. - Feature: Conan manages relative urls for upload/download to allow access the server from different configured networks or in domain subdirectories.
- Feature: Added
CONAN_SKIP_VS_PROJECTS_UPGRADE
environment variable to skip the upgrade of Visual Studio project when using :ref:`tools_build_sln_command`, the :ref:`msvc_build_command<tools_msvc_build_command>` and the :ref:`MSBuild()<msbuild>` build helper. - Feature: Improved detection of Visual Studio installations, possible to prioritize between multiple installed Visual tools with the
CONAN_VS_INSTALLATION_PREFERENCE
env-var andvs_installation_preference
conan.conf variable. - Feature: Added
keep_path
parameter toself.copy()
within theimports()
method. - Feature: Added
[build_requires]
section to conanfile.txt. - Feature: Added new :command:`conan help <command>` command, as an alternative to :command:`--help`.
- Feature: Added
target
parameter toAutoToolsBuildEnvironment.make
method, allowing to select build target on running make - Feature: The
CONAN_MAKE_PROGRAM
environment variable now it is used by theCMake()
build helper to set a custom make program. - Feature: Added :command:`--verify-ssl` optional parameter to :command:`conan config install` to allow self-signed SSL certificates in download.
- Feature:
tools.get_env()
helper method to automatically convert environment variables to python types. - Fix: Added a visible warning about
libcxx
compatibility and the detected one for the default profile. - Fix: Wrong detection of compiler in OSX for gcc frontend to clang.
- Fix: Disabled conanbuildinfo.cmake compiler checks for unknown compilers.
- Fix:
visual_studio
generator added missing ResourceCompile information. - Fix: Don't output password from URL for :command:`conan config install` command.
- Fix: Signals exit with error code instead of 0.
- Fix: Added package versions to generated SCons file.
- Fix: Error message when package was not found in remotes has been improved.
- Fix: :command:`conan profile` help message.
- Fix: Use gcc architecture flags -m32, -m64 for MinGW as well.
- Fix:
CMake()
helper do not require settings ifCONAN_CMAKE_GENERATOR
is defined. - Fix: improved output of package remote origins.
- Fix: Profiles files use same structure as :command:`conan profile show` command.
- Fix: conanpath.bat file is removed after conan Windows installer uninstall.
- Fix: Do not add GCC-style flags -m32, -m64, -g, -s to MSVC when using
AutoToolsBuildEnvironment
- Fix: "Can't find a binary package" message now includes the Package ID.
- Fix: added clang 5.0 and gcc 7.3 to default settings.yml.
- Bugfix:
build_id()
logic does not apply unless thebuild_id
is effectively changed. - Bugfix:
self.install_folder
was not correctly set in all necessary cases. - Bugfix: :command:`--update` option does not ignore local packages for version-ranges.
- Bugfix: Set
self.develop=True
forexport-pkg
command. - Bugfix: Server HTTP responses were incorrectly captured, not showing errors for some server errors.
- Bugfix: Fixed
config
section update for sequential calls over the python API. - Bugfix: Fixed wrong
self.develop
set toFalse
for :command:`conan create` with test_package. - Deprecation: Removed conan-transit from default remotes registry.
- Bugfix: Fixed default profile defined in conan.conf that includes another profile
- Bugfix: added missing management of
sysroot
in conanbuildinfo.txt affecting :command:`conan build` and test_package. - Bugfix: Fixed warning in :command:`conan source` because of incorrect management of settings.
- Bugfix: Fixed priority order of environment variables defined in included profiles
- Bugfix: NMake error for parallel builds from the
CMake
build helper have been fixed - Bugfix: Fixed options pattern not applied to root node (
-o *:shared=True
not working for consuming package) - Bugfix: Fixed shadowed options by package name (
-o *:shared=True -o Pkg:other=False
was not applyingshared
value to Pkg) - Fix: Using
filter_known_paths=False
as default tovcvars_dict()
helper. - Fix: Fixed wrong package name for output messages regarding build-requires
- Fix: Added correct metadata to conan.exe when generated via pyinstaller
- Bugfix: Correct load of stored settings in conaninfo.txt (for :command:`conan build`) when
configure()
remove some setting. - Bugfix: Correct use of unix paths in Windows subsystems (msys, cygwin) when needed.
- Fix: fixed wrong message for :command:`conan alias --help`.
- Fix: Normalized all arguments to :command:`--xxx-folder` in command line help.
- Fix: Adding a warning message for simultaneous use of
os
andos_build
settings. - Fix: Do not raise error from conanbuildinfo.cmake for Intel MSVC toolsets.
- Fix: Added more architectures to default settings.yml
arch_build
setting. - Fix: using :command:`--xxx-folder` in command line help messages.
- Bugfix: using quotes for Windows bash path with spaces.
- Bugfix: vcvars/vcvars_dict not including windows and windows/system32 directories in the path.
- Fix: :command:`conan new` does not generate cross-building (like
os_build
) settings by default. They make only sense for dev-tools used asbuild_requires
- Fix: conaninfo.txt file does not dump settings with None values
- Bugfix: Fixed bug from
remove_from_path
due to Windows path backslash - Bugfix: Compiler detection in conanbuildinfo.cmake for Visual Studio using toolchains like LLVM (Clang)
- Bugfix: Added quotes to bash path.
- Fix: Errors from remotes different to a 404 will raise an error. Disconnected remotes have to be removed from remotes or use explicit remote with
-r myremote
- Fix: cross-building message when building different architecture in same OS
- Fix: :command:`conan profile show` now shows profile with same syntax as profile files
- Fix: generated test code in :command:`conan new` templates will not run example app if cross building.
- Fix: :command:`conan export-pkg` uses the conanfile.py folder as the default :command:`--source-folder`.
- Bugfix: :command:`conan download` didn't download recipe if there are no binaries. Force recipe download.
- Bugfix: Fixed blocked
self.run()
when stderr outputs large tests, due to full pipe.
- Feature:
run_in_windows_bash
accepts a dict of environment variables to be prioritized inside the bash shell, mainly intended to control the priority of the tools in the path. Use withvcvars
context manager andvcvars_dict
, that returns the PATH environment variable only with the Visual Studio related directories - Fix: Adding all values to
arch_target
- Fix: :command:`conan new` templates now use new
os_build
andarch_build
settings - Fix: Updated
CMake
helper to account foros_build
andarch_build
new settings - Fix: Automatic creation of default profile when it is needed by another one (like
include(default)
) - BugFix: Failed installation (non existing package) was leaving lock files in the cache, reporting a package for :command:`conan search`.
- BugFix: Environment variables are now applied to
build_requirements()
for :command:`conan install .`. - BugFix: Dependency graph was raising conflicts for diamonds with alias packages.
- BugFix: Fixed :command:`conan export-pkg` after a :command:`conan install` when recipe has options.
- Fix: Upgraded pylint and astroid to latest
- Fix: Fixed
build_requires
with transitive dependencies to other build_requires - Fix: Improved pyinstaller creation of executable, to allow for py3-64 bits (windows)
- Deprecation: removed all :command:`--some_argument`, use instead :command:`--some-argument` in command line.
- Feature: New command line UI. Most commands use now the path to the package recipe, like :command:`conan export . user/testing` or :command:`conan create folder/myconanfile.py user/channel`.
- Feature: Better cross-compiling. New settings model for
os_build
,arch_build
,os_target
,arch_target
. - Feature: Better Windows OSS ecosystem, with utilities and settings model for MSYS, Cygwin, Mingw, WSL
- Feature:
package()
will not warn of not copied files for known use cases. - Feature: reduce the scope of definition of
cpp_info
,env_info
,user_info
attributes topackage_info()
method, to avoid unexpected errors. - Feature: extended the use of addressing folder and conanfiles with different names for
source
,package
andexport-pkg
commands - Feature: added support for Zypper system package tool
- Fix: Fixed application of build requires from profiles that didn't apply to requires in recipes
- Fix: Improved "test package" message in output log
- Fix: updated CI templates generated with :command:`conan new`
- Deprecation: Removed
self.copy_headers
and family for thepackage()
method - Deprecation: Removed
self.conanfile_directory
attribute.
Note
This is a beta release, shouldn't be installed unless you do it explicitly
$ pip install conan==1.0.0b2 --upgrade
Breaking changes
- The new command line UI breaks command line tools and integration. Most cases, just add a :command:`.` to the command.
- Removed
self.copy_headers
,self.copy_libs
, methods forpackage()
. Useself.copy()
instead. - Removed
self.conanfile_directory
attribute. Useself.source_folder
,self.build_folder
, etc. instead
- Reverted
CMake()
andMeson()
build helpers to keep old behavior. - Forced Astroid dependency to < 1.6 because of py3 issues.
- Fix:
CMake()
andMeson()
build helpers and relative directories regression. - Fix:
ycm
generator, removed the access ofcpp_info
to generators, keeping the access todeps_cpp_info
.
- Feature: Introduced major versions for gcc (5, 6, 7) as defaults settings for OSS packages, as minors are compatible by default
- Feature:
VisualStudioBuildEnvironment
has added more compilation and link flags. - Feature: new
MSBuild()
build helper that wraps the call tomsvc_build_command()
with the correct application of environment variables with the improvedVisualStudioBuildEnvironment
- Feature:
CMake
andMeson
build helpers got a newcache_build_dir
argument forconfigure(cache_build_dir=None)
that will be used to define a build directory while the package is being built in local cache, but not when built locally - Feature:
conanfiles
got a newapply_env
attribute, defaulted toTrue
. If false, the environment variables from dependencies will not be automatically applied. Useful if you don't want some dependency adding itself to the PATH by default, for example - Feature: allow recipes to use and run python code installed with :command:`conan config install`.
- Feature:
conanbuildinfo.cmake
now hasKEEP_RPATHS
as argument to keep the RPATHS, as opposed to old SKIP_RPATH which was confusing. Also, it uses set(CMAKE_INSTALL_NAME_DIR "") to keep the old behavior even for CMake >= 3.9 - Feature: :command:`conan info` is able to get profile information from the previous install, instead of requiring it as input again
- Feature:
tools.unix_path
support MSYS, Cygwin, WSL path flavors - Feature: added
destination
folder argument totools.get()
function - Feature:
SystemPackageTool
for apt-get now uses :command:`--no-install-recommends` automatically. - Feature:
visual_studio_multi
generator now uses toolsets instead of IDE version to identify files. - Fix: generators failures print traces to help debugging
- Fix: typos in generator names, or non-existing generator now raise an Error instead of a warning
- Fix:
short_paths
feature is active by default in Windows. If you want to opt-out, you can useCONAN_USER_HOME_SHORT=None
- Fix:
SystemPackageTool
doesn't use sudo in Windows - BugFix: Not using parallel builds for Visual<10 in CMake build helper.
- Deprecation:
conanfile_directory` shouldn't be used anymore in recipes. Use ``source_folder
,build_folder
, etc.
Note
Breaking changes
scopes
have been completely removed. You can use environment variables, or theconanfile.develop
orconanfile.in_local_cache
attributes instead.- Command test_package has been removed. Use :command:`conan create`` instead, and :command:`conan test`` for just running package tests.
werror
behavior is now by default. Dependencies conflicts will now error, and have to be fixed.short_paths
feature is again active by default in Windows, even with Py3.6 and system LongPathsEnabled.ConfigureEnvironment
andGCC
build helpers have been completely removed
- Updated python cryptography requirement for OSX due the pyOpenSSL upgrade. See more: https://pypi.org/project/pyOpenSSL/
- Support for OSX High Sierra
- Reverted concurrency locks to counters, removed
psutil
dependency - Implemented migration for settings.yml (for new VS toolsets)
- Fixed encoding issues in conan_server
- Feature: Support for WindowsStore (WinRT, UWP)
- Feature: Support for Visual Studio Toolsets.
- Feature: New
boost-build
generator for generic bjam (not only Boost) - Feature: new
tools.PkgConfig
helper to parse pkg-config (.pc) files. - Feature: Added
self.develop
conanfile variable. It is true for :command:`conan create` packages and for local development. - Feature: Added
self.keep_imports
to avoid removal of imported files in thebuild()
method. Convenient for re-packaging. - Feature: Autodetected MSYS2 for
SystemPackageTool
- Feature:
AutoToolsBuildEnvironment
now auto-loadspkg_config_path
(to use withpkg_config
generator) - Feature: Changed search for profiles. Profiles not found in the default
profiles
folder, will be searched for locally. Use./myprofile
to force local search only. - Feature: Parallel builds for Visual Studio (previously it was only parallel compilation within builds)
- Feature: implemented syntax to check options with
if "something" in self.options.myoption
- Fix: Fixed CMake dependency graph when using TARGETS, that produced wrong link order for transitive dependencies.
- Fix: Trying to download the
exports_sources
is not longer done if such attribute is not defined - Fix: Added output directories in
cmake
generator for RelWithDebInfo and MinSizeRel configs - Fix: Locks for concurrent access to local cache now use process IDs (PIDs) to handle interruptions and inconsistent states. Also, adding messages when locking.
- Fix: Not remove the .zip file after a :command:`conan config install` if such file is local
- Fix: Fixed
CMake.test()
for the Ninja generator - Fix: Do not create local conaninfo.txt file for :command:`conan install <pkg-ref>` commands.
- Fix: Solved issue with multiple repetitions of the same command line argument
- BugFix: Don't rebuild conan created (with conan-create) packages when
build_policy="always"
- BugFix: :command:`conan copy` was always copying binaries, now can copy only recipes
- BugFix: A bug in download was causing appends instead of overwriting for repeated downloads.
- Development: Large restructuring of files (new cmd and build folders)
- Deprecation: Removed old CMake helper methods (only valid constructor is
CMake(self)
) - Deprecation: Removed old
conan_info()
method, that was superseded bypackage_id()
Note
Breaking changes
- CMAKE_LIBRARY_OUTPUT_DIRECTORY definition has been introduced in
conan_basic_setup()
, it will send shared libraries .so to thelib
folder in Linux systems. Right now it was undefined. - Profile search logic has slightly changed. For
-pr=myprofile
, such profile will be searched both in the default folder and in the local one if not existing. Use-pr=./myprofile
to force local search only. - The :command:`conan copy` command has been fixed. To copy all binaries, it is necessary to explicit :command:`--all`, as other commands do.
- The only valid use of CMake helper is
CMake(self)
syntax. - If using
conan_info()
, replace it withpackage_id()
. - Removed environment variable
CONAN_CMAKE_TOOLSET
, now the toolset can be specified as a subsetting of Visual Studio compiler or specified in the build helpers.
- BugFix: Downloading (
tools.download
) of files withcontent-encoding=gzip
were raising an exception because the downloaded content length didn't match the http headercontent-length
This is a big release, with many important and core changes. Also with a huge number of community contributions, thanks very much!
- Feature: Major revamp of most conan commands, making command line arguments homogeneous. Much
better development flow adapting to user layouts, with
install-folder
,source-folder
,build-folder
,package-folder
. - Feature: new
deploy()
method, useful for installing binaries from conan packages - Feature: Implemented some concurrency support for the conan local cache. Parallel :command:`conan install` and :command:`conan create` for different configurations should be possible.
- Feature: options now allow patterns in command line:
-o *:myoption=myvalue
applies to all packages - Feature: new
pc
generator that generates files from dependencies forpkg-config
- Feature: new
Meson
helper, similar toCMake
for Meson build system. Works well withpc
generator. - Feature: Support for read-only cache with
CONAN_READ_ONLY_CACHE
environment variable - Feature: new
visual_studio_multi
generator to load Debug/Release, 32/64 configs at once - Feature: new
tools.which
helper to locate executables - Feature: new :command:`conan --help` layout
- Feature: allow to override compiler version in
vcvars_command
- Feature: :command:`conan user` interactive (and not exposed) password input for empty
-p
argument - Feature: Support for
PacManTool
forsystem_requirements()
for ArchLinux - Feature: Define VS toolset in
CMake
constructor and from environment variable CONAN_CMAKE_TOOLSET - Feature: :command:`conan create` now accepts
werror
argument - Feature:
AutoToolsBuildEnvironment
can useCONAN_MAKE_PROGRAM
env-var to define make program - Feature: added xcode9 for apple-clang 9.0, clang 5 to default settings.yml
- Feature: deactivation of
short_paths
in Windows 10 with Py3.6 and long path support is automatic - Feature: show unzip progress by percentage, not by file (do not clutters output)
- Feature: do not use
sudo
for system requirements if already running as root - Feature:
tools.download
able to use headers/auth - Feature: conan does not longer generate bytecode from recipes (no more .pyc, and more efficient)
- Feature: add parallel argument to
build_sln_command
for VS - Feature: Show warning if vs150comntools is an invalid path
- Feature:
tools.get()
now has arguments for hash checking - Fix: upload pattern now accepts
Pkg/*
- Fix: improved downloader, make more robust, better streaming
- Fix:
tools.patch
now support adding/removal of files - Fix: The
default
profile is no longer taken as a base and merged with user profile. Use explicitinclude(default)
instead. - Fix: properly manage x86 as cross building with autotools
- Fix:
tools.unzip
removed unnecessary long-paths check in Windows - Fix:
package_info()
is no longer executed at install for the consumer conanfile.py - BugFix: source folder was not being correctly removed when recipe was updated
- BugFix: fixed
CMAKE_C_FLAGS_DEBUG
definition incmake
generator - BugFix:
CMAKE_SYSTEM_NAME
is now Darwin for iOS, watchOS and tvOS - BugFix:
xcode
generator fixed handling of compiler flags - BugFix: pyinstaller hidden import that broke .deb installer
- BugFix: :command:`conan profile list` when local files matched profile names
Note
Breaking changes
This is an important release towards stabilizing conan and moving out of beta. Some breaking changes have been done, but mostly to command line arguments, so they should be easy to fix. Package recipes or existing packages shouldn't break. Please update, it is very important to ease the transition of future stable releases. Do not hesitate to ask questions, or for help if you need it. This is a possibly not complete list of things to take into account:
- The command :command:`conan install` doesn't accept
cwd
anymore, to change the directory where the generator files are written, use the :command:`--install-folder` parameter. - The command :command:`conan install` doesn't accept :command:`--all` anymore. Use :command:`conan download <ref>` instead.
- The command :command:`conan build` now requires the path to the
conanfile.py
(optional before) - The command :command:`conan package` not longer re-package a package in the local cache, now it only operates in a user local folder. The recommended way to re-package a package is using :command:`conan build` and then :command:`conan export-pkg`.
- Removed :command:`conan package_files` in favor of a new command :command:`conan export-pkg`. It requires a local recipe
with a
package()
method. - The command :command:`conan source` no longer operates in the local cache. now it only operates in a user local folder. If you used :command:`conan source` with a reference to workaround the concurrency, now it natively supported, you can remove the command call and trust concurrent install processes.
- The command :command:`conan imports` doesn't accept
-d, --dest
anymore, use :command:`--imports-folder` parameter instead. - If you specify a profile in a conan command, like conan create or conan install the base profile ~/.conan/profiles/default won't be
applied. Use explicit
include
to keep the old behavior.
- Feature: :command:`conan config install <url>` new command. Will install remotes, profiles, settings, conan.conf and other files into the local conan installation. Perfect to synchronize configuration among teams
- Feature: improved traceback printing when errors are raised for more context. Configurable via env
- Feature: filtering out non existing directories in
cpp_info
(include, lib, etc), so some build systems don't complain about them. - Feature: Added include directories to ResourceCompiler and to MIDL compiler in
visual_studio
generator - Feature: new
visual_studio_legacy
generator for Visual Studio 2008 - Feature: show path where manifests are locally stored
- Feature:
replace_in_file
now raises error if replacement is not done (opt-out parameter) - Feature: enabled in conan.conf
[proxies]
sectionno_proxy=url1,url2
configuration (to skip proxying for those URLs), as well ashttp=None
andhttps=None
to explicitly disable them. - Feature: new conanfile
self.in_local_cache
attribute for conditional logic to apply in user folders local commands - Feature:
CONAN_USER_HOME_SHORT=None
can disable the usage ofshort_paths
in Windows, for modern Windows that enable long paths at the system level - Feature:
if "arm" in self.settings.arch
is now a valid check (without casting to str(self.settings.arch)) - Feature: added cwd`` argument to :command:`conan source` local method.
- Fix: unzip crashed for 0 Bytes zip files
- Fix:
collect_libs
moved to thetools
module - Bugfix: fixed wrong regex in
deps_cpp_info
causing issues with dots and dashes in package names - Development: Several internal refactorings (tools module, installer), testing (using VS2015 as default, removing VS 12 in testing). Conditional CI in travis for faster builds in developers, downgrading to CMake 3.7 in appveyor
- Deprecation:
dev_requires
have been removed (it was not documented, but accessible via therequires(dev=True)
parameter. Superseded bybuild_requires
. - Deprecation: sources tgz files for exported sources no longer contain ".c_src" subfolder. Packages created with 0.27 will be incompatible with conan < 0.25
- Feature: added apple-clang 9.0 to default settings.
- Fix: :command:`conan copy` command now supports symlinks.
- Fix: fixed removal of "export_source" folder when files have no permissions
- Bugfix: fixed parsing of conanbuildinfo.txt with package names containing dots.
- Feature: :command:`conan profile` command has implemented
update
,new
,remove
subcommands, with detect``, to allow creation, edition and management of profiles. - Feature: :command:`conan package_files` command now can call recipe
package()
method if build_folder`` or source_folder`` arguments are defined - Feature: graph loading algorithm improved to avoid repeating nodes. Results in much faster times for dense graphs, and avoids duplications of private requirements.
- Feature: authentication based on environment variables. Allows very long processes without tokens being expired.
- Feature: Definition of Visual Studio runtime setting
MD
orMDd
is now automatic based on build type, not necessary to default in profile. - Feature: Capturing
SystemExit
to return user error codes to the system withsys.exit(code)
- Feature: Added SKIP_RPATH argument to cmake
conan_basic_setup()
function - Feature: Optimized uploads, now uploads will be skipped if there are no changes, irrespective of timestamp
- Feature: Automatic detection of VS 15-2017, via both a
vs150comntools
variable, and usingvswhere.exe
- Feature: Added NO_OUTPUT_DIRS argument to cmake
conan_basic_setup()
function - Feature: Add support for Chocolatey system package manager for Windows.
- Feature: Improved in conan user home and path storage configuration, better error checks.
- Feature:
export
command is now able to export recipes without name or version, specifying the full reference. - Feature: Added new default settings, Arduino, gcc-7.2
- Feature: Add conan settings to cmake generated file
- Feature: new
tools.replace_prefix_in_pc_file()
function to help with .pc files. - Feature: Adding support for system package tool
pkgutil
on Solaris - Feature: :command:`conan remote update` now allows :command:`--insert` argument to change remote order
- Feature: Add
verbose
definition toCMake
helper. - Fix: :command:`conan package` working locally failed if not specified build_folder
- Fix: Search when using wildcards for version like
Pkg/*@user/channel
- Fix: Change current working directory to the conanfile.py one before loading it, so relative python imports or code work.
- Fix:
package_files
command now works withshort_paths
too. - Fix: adding missing require of tested package in test_package/conanfile build() method
- Fix: path joining in
vcvars_command
for custom VS paths defined via env-vars - Fix: better managing string escaping in CMake variables
- Fix:
ExecutablePath
assignment has been removed from thevisual_studio
generator. - Fix: removing
export_source
folder containing exported code, fix issues with read-only files and keeps cache consistency better. - Fix: Accept 100 return code from yum check-update
- Fix: importing *.so files from the :command:`conan new` generated test templates
- Fix: progress bars display when download/uploads are not multipart (reported size 0)
- Bugfix: fixed wrong OSX
DYLD_LIBRARY_PATH
variable for virtual environments - Bugfix:
FileCopier
had a bug that affectedself.copy()
commands, changing base reference directory.
- Bugfix: Build requires are now applied correctly to test_package projects.
- Fix: Fixed search command to print an error when --table parameter is used without a reference.
- Fix: install() method of the CMake() helper, allows parallel building, change build folder and custom parameters.
- Fix: Controlled errors in migration, print warning if conan is not able to remove a package directory.
Note
This release introduces a new layout for the local cache, with dedicated export_source
folder to store the source code exported with exports_sources
feature, which is much cleaner than the old .c_src
subfolder. A migration is included to remove from the local cache packages with the old layout.
- Feature: new :command:`conan create` command that supersedes test_package for creating and testing package. It works even without the test_package folder, and have improved management for user, channel. The test_package recipe no longer defines
requires
- Feature: new :command:`conan get` command that display (with syntax highlight) package recipes, and any other file from conan: recipes, conaninfo.txt, manifests, etc.
- Feature: new :command:`conan alias` command that creates a special package recipe, that works like an alias or a proxy to other package, allowing easy definition and transparent management of "using the latest minor" and similar policies. Those special alias packages do not appear in the dependency graph.
- Feature: new :command:`conan search --table=file.html` command that will output an html file with a graphical representation of available binaries
- Feature: created default profile, that replace the
[settings_default]
in conan.conf and augments it, allowing to define more things like env-vars, options, build_requires, etc. - Feature: new
self.user_info
member that can be used inpackage_info()
to define custom user variables, that will be translated to general purpose variables by generators. - Feature: :command:`conan remove` learned the :command:`--outdated` argument, to remove those binary packages that are outdated from the recipe, both from local cache and remotes
- Feature: :command:`conan search` learned the :command:`--outdated` argument, to show only those binary packages that are outdated from the recipe, both from local cache and remotes
- Feature: Automatic management
CMAKE_TOOLCHAIN_FILE
inCMake
helper for cross-building. - Feature: created
conan_api
, a python API interface to conan functionality. - Feature: new
cmake.install()
method ofCMake
helper. - Feature:
short_paths
feature now applies also toexports_sources
- Feature:
SystemPackageTool
now supports FreeBSD system packages - Feature:
build_requires
now manage options too, also default options in package recipes - Feature: :command:`conan build` learned new :command:`--package_folder` argument, useful if the build system perform the packaging
- Feature:
CMake
helper now defines by defaultCMAKE_INSTALL_PREFIX
pointing to the current package_folder, socmake.install()
can transparently execute the packaging. - Feature: improved command UX with cwd`` arguments to allow define the current directory for the command
- Feature: improved
VisualStudioBuildEnvironment
- Feature: transfers now show size (MB, KB) of download/uploaded files, and current status of transfer.
- Feature: :command:`conan new` now has arguments to generate CI scripts for Gitlab CI.
- Feature: Added
MinRelSize
andRelWithDebInfo
management inCMake
helper. - Fix: make
mkdir
,rmdir
,relative_dirs
available for import from :command:`conans` module. - Fix: improved detection of Visual Studio default under cygwin environment.
- Fix:
package_files
now allows symlinks - Fix: Windows installer now includes conan_build_info tool.
- Fix: appending environment variables instead of overwriting them when they come from different origins: upstream dependencies and profiles.
- Fix: made opt-in the check of package integrity before uploads, it was taking too much time, and provide little value for most users.
- Fix: Package recipe linter removed some false positives
- Fix: default settings from conan.conf do not fail for constrained settings in recipes.
- Fix: Allowing to define package remote with :command:`conan remote add_ref` before download/upload.
- Fix: removed duplicated BUILD_SHARED_LIBS in test_package
- Fix: add "rhel" to list of distros using yum.
- Bugfix: allowing relative paths in
exports
andexports_sources
fields - Bugfix: allow custom user generators with underscore
- Feature: :command:`conan new` new arguments to generate Travis-CI and Appveyor files for Continuous Integration
- Feature: Profile files with
include()
and variable declaration - Feature: Added
RelWithDebInfo/MinRelSize
to cmake generators - Feature: Improved linter, removing false positives due to dynamic conanfile attributes
- Feature: Added
tools.ftp_download()
function for FTP retrieval - Feature: Managing symlinks between folders.
- Feature: :command:`conan remote add` command learned new insert`` option to add remotes in specific order.
- Feature: support multi-config in the
SCons
generator - Feature: support for gcc 7.1+ detection
- Feature:
tools
now are using globalrequests
andoutput
instances. Proxies will work fortools.download()
- Feature: json`` parameter added to :command:`conan info`` command to create a JSON with the
build_order
. - Fix: update default repos, now pointing to Bintray.
- Fix: printing
outdated from recipe
also for remotes - Fix: Fix required slash in
configure_dir
ofAutoToolsBuildEnvironment
- Fix: command
new
with very short names, now errors earlier. - Fix: better error detection for incorrect
Conanfile.py
letter case. - Fix: Improved some cmake robustness using quotes to avoid cmake errors
- BugFix: Fixed incorrect firing of building due to build`` patterns error
- BugFix: Fixed bug with options incorrectly applied to
build_requires
and crashing - Refactor: internal refactorings toward having a python api to conan functionality
- BugFix: Fixed bug while packaging symlinked folders in build folder, and target not being packaged.
- Relaxed OSX requirement of pyopenssl to <18
- Feature: new
build_requires
field andbuild_requirements()
in package recipes - Feature: improved commands (source, build, package, package_files) and workflows for local development of packages in user folders.
- Feature: implemented
no_copy_source
attribute in recipes to avoid the copy of source code from "source" to "build folder". Created newself.source_folder
,self.build_folder
,self.package_folder
for recipes to use. - Feature: improved
qmake
generator with multi-config support, resource directories - Feature: improved exception capture and formatting for all recipe user methods exceptions
- Feature: new
tools.sha256()
method - Feature: folder symlinks working now for packages and upload/download
- Feature: added
set_find_paths()
tocmake-multi
, to set CMake FindXXX.cmake paths. This will work only for single-config build-systems. - Feature: using environment variables for
configure()
,requirements()
andtest()
methods - Feature: added a
pylintrc
environment variable inconan.conf
to define a PYLINTRC file with custom style definitions (like indents). - Feature: fixed
vcvars
architecture setting - Fix: Make
cacert.pem
folder use CONAN_USER_HOME if existing - Fix: fixed
options=a=b
option definition - Fix:
package_files
command allows force`` argument to overwrite existing instead of failing - BugFix: Package names with underscore when parsing
conanbuildinfo.txt
- Fix: Fixed CMake generator (in targets mode) with linker/exe flags like --framework XXX containing spaces.
- Fix: Fixed regression with usernames starting with non-alphabetical characters, introduced by 0.22.0
- Fix: "-" symbol available again in usernames.
- Fix: Added
future
requirement to solve an error with pyinstaller generating the Windows installer.
- Feature:
[build_requires]
can now be declared inprofiles
and apply them to build packages. Those requirements are only installed if the package is required to build from sources, and do not affect its package ID hash, and it is not necessary to define them in the package recipe. Ideal for testing libraries, cross compiling toolchains (like Android), development tools, etc. - Feature: Much improved support for cross-building. Support for cross-building to Android provided, with toolchains installable via
build_requires
. - Feature: New
package_files
command, that is able to create binary packages directly from user files, without needing to definebuild()
orpackage()
methods in the the recipes. - Feature: command :command:`conan new` with a new bare`` option that will create a minimal package recipe, usable with the
package_files
command. - Feature: Improved
CMake
helper, withtest()
method, automatic setting of BUILD_SHARED_LIBS, better management of variables, support for parallel compilation in MSVC (via /MP) - Feature: new
tools.msvc_build_command()
helper that both sets the Visual vcvars and calls Visual to build the solution. Alsovcvars_command
is improved to return non-empty string even if vcvars is set, for easier concatenation. - Feature: Added package recipe linter, warning for potential errors and also about Python 3 incompatibilities when running from Python 2. Enabled by default can be opt-out.
- Feature: Improvements in HTML output of :command:`conan info --graph`.
- Feature: allow custom path to bash, as configuration and environment variable.
- Fix: Not issuing an unused variable warning in CMake for the CONAN_EXPORTED variable
- Fix: added new
mips
architectures and latest compiler versions to default settings.yml - Fix: Unified username allowed patterns to those used in package references.
- Fix: hardcoded vs15 version in tools.vcvars
- BugFix: Clean crash and improved error messages when manifests mismatch exists in conan upload.
- Bugfix: virtualenv generator quoting environment variables in Windows.
- BugFix: Fixed missing dependencies in
AutoToolsBuildEnvironment
- BugFix: Escaping single quotes in html graph of :command:`conan info --graph=file.html`.
- BugFix: Fixed loading of auth plugins in conan_server
- BugFix: Fixed
visual_studio
generator creating XML with dots.
- Feature: :command:`conan info --graph` or graph=file.html`` will generate a dependency graph representation in dot or html formats.
- Feature: Added better support and tests for Solaris Sparc.
- Feature: custom authenticators are now possible in :command:`conan_server`` with plugins.
- Feature: extended :command:`conan info` command with path information and filter by packages.
- Feature: enabled conditional binary packages removal with :command:`conan remove` with query syntax
- Feature: enabled generation and validation of manifests from test_package.
- Feature: allowing
options
definitions in profiles - Feature: new
RunEnvironment
helper, that makes easier to run binaries from dependent packages - Feature: new
virtualrunenv
generator that activates environment variable for execution of binaries from installed packages, without requiringimports
of shared libraries. - Feature: adding new version modes for ABI compatibility definition in
package_id()
. - Feature: Extended :command:`conan new` command with new option for
exports_sources
example recipe. - Feature:
CMake
helper defining parallel builds for gcc-like compilers via jN``, allowing user definition with environment variable and in conan.conf. - Feature: :command:`conan profile`` command now show profiles in alphabetical order.
- Feature: extended
visual_studio
generator with more information and binary paths for execution with DLLs paths. - Feature: Allowing relative paths with $PROFILE_DIR place holder in
profiles
- Fix: using only file checksums to decide for modified recipe in remote, for possible concurrent builds & uploads.
- Fix: Improved build`` modes management, with better checks and allowing multiple definitions and mixtures of conditions
- Fix: Replaced warning for non-matching OS to one message stating the cross-build
- Fix: local :command:`conan source`` command (working in user folder) now properly executes the equivalent of
exports
functionality - Fix: Setting command line arguments to cmake command as CMake flags, while using the TARGETS approach. Otherwise, arch flags like -m32 -m64 for gcc were not applied.
- BugFix: fixed :command:`conan imports` destination folder issue.
- BugFix: Allowing environment variables with spaces
- BugFix: fix for CMake with targets usage of multiple flags.
- BugFix: Fixed crash of
cmake_multi
generator for "multi-config" packages.
- Fix: Added opt-out for
CMAKE_SYSTEM_NAME
automatically added when cross-building, causing users providing their own cross-build to fail - BugFix: Corrected usage of
CONAN_CFLAGS
instead ofCONAN_C_FLAGS
in cmake targets
- Fix: Regression of
visual_studio``generator using ``%(ExecutablePath)
instead of$(ExecutablePath)
- Fix: Regression for build=outdated --build=Pkg`` install pattern
- Fix: Disabled the use of cached settings and options from installed
conaninfo.txt
- Fix: Revert the use of quotes in
cmake
generator for flags. - Fix: Allow comments in artifacts.properties
- Fix: Added missing commit for CMake new helpers
NOTE: It is important that if you upgrade to this version, all the clients connected to the same remote, should upgrade too. Packages created with conan>=0.20.0 might not be usable with conan older conan clients.
- Feature: Largely improved management of environment variables, declaration in
package_info()
, definition in profiles, in command line, per package, propagation to consumers. - Feature: New build helpers
AutotoolsBuildEnvironment
,VisualStudioBuildEnvironment
, which deprecateConfigureEnvironment
, with much better usage of environment variables - Feature: New
virtualbuildenv
generator that will generate a composable environment with build information from installed dependencies. - Feature: New
build_id()
recipe method that allows to define logic to build once, and package multiple times without building. E.g.: build once both debug and release artifacts, then package separately. - Feature: Multi-config packages. Now packages can provide multi-configuration packages, like
both debug/release artifacts in the same package, with
self.cpp_info.debug.libs = [...]
syntax. Not restricted to debug/release, can be used for other purposes. - Feature: new :command:`conan config` command to manage, edit, display
conan.conf
entries - Feature: :ref:`Improvements<cmake_reference>` to
CMake
build helper, now it hasconfigure()
andbuild()
methods for common operations. - Feature: Improvements to
SystemPackageTool
with detection of installed packages, improved implementation, installation of multi-name packages. - Feature: Unzip with
tools.unzip
maintaining permissions (Linux, OSX) - Feature: :command:`conan info` command now allows profiles too
- Feature: new tools
unix_path()
,escape_windows_cmd()
,run_in_windows_bash()
, useful for autotools projects in Win/MinGW/Msys - Feature: new context manager
tools.chdir
, to temporarily change directory. - Feature: CMake using
CMAKE_SYSTEM_NAME
for cross-compiling. - Feature: Artifactory build-info extraction from traces
- Feature: Attach custom headers to artifacts uploads with an artifacts.properties file.
- Feature: allow and copy symlinks while :command:`conan export`
- Fix: removing quotes in some cmake variables that were generating incorrect builds
- Fix: providing better error messages for non existing binaries, with links to the docs
- Fix: improved error messages if
tools.patch
failed - Fix: adding
resdirs
tocpp_info
propagated information, and cmake variables, for directories containing resources and other data. - Fix: printing error messages if a build`` policy doesn't match any package
- Fix: managing VS2017 by
tools
. Still the manual definition ofvs150comntools
required. - Bug fix: crashes when not supported characters were dumped to terminal by logger
- Bug fix: wrong executable path in Visual Studio generator
- Fix: backward compatibility for new environment variables. New features to be introduced in 0.20
will produce that
conaninfo.txt
will not be correctly parsed, and then package would be "missing". This will happen for packages created with 0.20, and consumed with older than 0.19.3
NOTE: It is important that you upgrade at least to this version if you are using remotes with packages that might be created with latest conan releases (like conan.io).
- Bug fix: Fixed bug with remotes behind proxies
- Bug fix: Fixed bug with
exports_sources
feature and nested folders
- Bug fix: Fixed issue with :command:`conan copy`` followed by :command:`conan upload`` due to the new
exports_sources
feature.
- Feature:
exports_sources
allows to snapshot sources (likeexports
) but retrieve them strictly when necessary, to build from sources. This can largely improve install times for package recipes containing sources - Feature: new configurable tracer able to create structured logs of conan actions: commands, API calls, etc
- Feature: new logger for
self.run
actions, able to log information from builds and other commands to files, that can afterwards be packaged together with the binaries. - Feature: support for Solaris SunOS
- Feature:
Version
helper improved withpatch, pre, build
capabilities to handle1.3.4-alpha2+build1
versions - Feature: compress level of tgz is now configurable via
CONAN_COMPRESSION_LEVEL
environment variable, default 9. Reducing it can lead to faster compression times, at the expense of slightly bigger archives - Feature: Add powershell support for virtualenv generator in Windows
- Feature: Improved
system_requirements()
raising errors when failing, retrying if not successful, being able to execute in user space for local recipes - Feature: new cmake helper macro
conan_target_link_libraries()
. - Feature: new cmake
CONAN_EXPORTED
variable, can be used in CMakeLists.txt to differentiate building in the local conan cache as package and building in user space - Fix: improving the caching of options from :command:`conan install` in conaninfo.txt and precedence.
- Fix: conan definition of cmake output dirs has been disabled for
cmake_multi
generator - Fix:
imports()
now uses environment variables at "conan install" (but not at "conan imports" yet) - Fix:
conan_info()
method has been renamed topackage_id()
. Backward compatibility is maintained, but it is strongly encouraged to use the new name. - Fix:
conan_find_libraries
now use the NO_CMAKE_FIND_ROOT_PATH parameter for avoiding issue while cross-compiling - Fix: disallowing duplicate URLs in remotes, better error management
- Fix: improved error message for wildcard uploads not matching any package
- Fix: remove deprecated
platform.linux_distribution()
, using new "distro" package - Bugfix: fixed management of
VerifySSL
parameter for remotes - Bugfix: fixed misdetection of compiler version in conanbuildinfo.cmake for apple-clang
- Bugfix: fixed trailing slash in remotes URLs producing crashes
- Refactor: A big refactor has been do to
options
. Nested options are no longer supported, andoption.suboption
will be managed as a single string option.
This has been a huge release with contributors of 11 developers. Thanks very much to all of them!
- Bug Fix: Handling of transitive private dependencies in modern cmake targets
- Bug Fix: Missing quotes in CMake macro for modern cmake targets
- Bug Fix: Handling LINK_FLAGS in cmake modern targets
- Bug Fix: Environment variables no propagating to test project with test_package command
- Feature: uploads and downloads with retries on failures. This helps to avoid having to fully rebuild on CI when a network transfer fails
- Feature: added SCons generator
- Feature: support for Python 3.6, with several fixes. Added Python 3.6 to CI.
- Feature: show package dates in :command:`conan info` command
- Feature: new
cmake_multi
generator for multi-configuration IDEs like Visual Studio and Xcode - Feature: support for Visual Studio 2017, VS-15
- Feature: FreeBSD now passes test suite
- Feature: :command:`conan upload` showing error messages or URL of remote
- Feature: wildcard or pattern upload. Useful to upload multiple packages to a remote.
- Feature: allow defining settings as environment variables. Useful for use cases like dockerized builds.
- Feature: improved help`` messages
- Feature: cmake helper tools to launch conan directly from cmake
- Added code coverage for code repository
- Fix: conan.io badges when containing dash
- Fix: manifests errors due to generated .pyc files
- Bug Fix: unicode error messages crashes
- Bug Fix: duplicated build of same binary package for private dependencies
- Bug Fix: duplicated requirement if using version-ranges and
requirements()
method.
- Bug Fix: ConfigureEnvironment helper ignoring libcxx setting. #791
- Bug Fix: conan install --all generating corrupted packages. Thanks to @yogeva
- Improved case sensitive folder management.
- Fix: appveyor links in README.
- Feature: support for modern cmake with cmake
INTERFACE IMPORTED
targets defined per package - Feature: support for more advanced queries in search.
- Feature: new
profile list|show
command, able to list or show details of profiles - Feature: adding preliminary support for FreeBSD
- Feature: added new
description
field, to document package contents. - Feature: generation of imports manifest and :command:`conan imports --undo` functionality to remove imported files
- Feature: optional SSL certificate verification for remotes, to allow self signed certificates
- Feature: allowing custom paths in profiles, so profiles can be easily shared in teams, just inside the source repository or elsewhere.
- Feature: fields
user
andchannel
now available in conan recipes. That allows to declare requirements for the same user/channel as the current package. - Feature: improved conan.io package web, adding description.
- Fix: allow to modify cmake generator in
CMake
helper class. - Fix: added
strip
parameter totools.patch()
utility - Fix: removed unused dependency to Boto
- Fix: wrong line endings in Windows for conan.conf
- Fix: proper automatic use of
txt
andenv
generators in test_package - Bug fix: solved problem when uploading python packages that generated .pyc at execution
- Bug fix: crash when duplicate requires were declared in conanfile
- Bug fix: crash with existing imported files with symlinks
- Bug fix: options missing in "copy install command to clipboard" in web
- Solved bug with test_package with arguments, like scopes.
Upgrade: The build=outdated`` feature had a change in the hash computation, it might report outdated binaries from recipes. You can re-build the binaries or ignore it (if you haven't changed your recipes without re-generating binaries)
- Feature: version ranges. Conan now supports defining requirements with version range expressions
like
Pkg/[>1.2,<1.9||1.0.1]@user/channel
. Check the :ref:`version ranges reference <version_ranges>` for details - Feature: decoupled
imports
from normal install. Now :command:`conan install --no-imports` skips the imports section. - Feature: new :command:`conan imports` command that will execute the imports section without running install
- Feature: overriding settings per package. Now it is possible to specify individual settings
for each package. This can be specified both in the command line and in
profiles
- Feature: environment variables definition in the command line, global and per package. This
allows to define specific environment variables as the compiler (CC, CXX) for a specific package.
These environment variables can also be defined in
profiles
. Check :ref:`profiles reference <profiles>` - Feature: Now conan files copies handle symlinks, so files are not duplicated. This will
save some space and improve download speed in some large packages. To enable it, use
self.copy(..., links=True)
- Fix: Enabling correct use of MSYS in Windows, by using the Windows
C:/...
path instead of the MSYS ones - Fix: Several fixes in :command:`conan search`, both local and in remotes
- Fix: Manifests line endings and order fix, and hash computation fixed (it had wrong ordering)
- Fix: Removed http->https redirection in conan_server that produced some issues for SSL reversed proxies
- Fix: Taking into account "ANY" definition of settings and options
- Fix: Improved some error messages and failures to encode OS errors with unicode characters
- Update: added new arch
ppc64
to default settings - Update: updated python-requests library version
- Fix: Using
generator()
instead of compiler to decide on cmake multi-configuration for Ninja+cl builds - Improved and completed documentation
Upgrade: If you were using the short_paths
feature in Windows for packages with long paths, please
reset your local cache. You could manually remove packages or just run :command:`conan remove "*"`
- Feature: New build=outdated`` functionality, that allows to build the binary packages for those dependencies whose recipe has been changed, or if the binary is not existing. Each binary package stores a hash of the recipe to know if they have to be regenerated (are outdated). This information is also provided in the :command:`conan search <ref>`` command. Useful for package creators and CI.
- Feature: Extended the
short_paths
feature for Windows path limit to thepackage
folder, so package with very long paths, typically in headers in nested folder hierarchies are supported. - Feature: New
tool.build_sln_command()
helper tobuild()
Microsoft Visual Studio solution (.sln) projects - Feature: Extended the
source
andpackage
command, so together withbuild
they can be fully executed in a user folder, as a convenience for package creation and testing. - Feature: Extending the scope of
tools.pythonpath
to work in local commands too - Improved the parsing of
profiles
and better error messages - Not adding
-s
compiler flag for clang, as it doesn't use it. - Automatic generation of conanenv.txt in local cache, warnings if using local commands and no
conanbuildinfo.txt
and no conanenv.txt are present to cache the information form install - Fix: Fixed bug when using empty initial requirements (
requires = ""
) - Fix: Added
glob
hidden import to pyinstaller - Fix: Fixed minor bugs with
short_paths
as local search not listing packages - Fix: Fixed problem with virtual envs in Windows with paths separator (using / instead of )
- Fix: Fixed parsing of conanbuildinfo.txt, so the root folder for each dependency is available in local commands too
- Fix: Fixed bug in test_package with the test project using the
requirements()
method.
- Fixed bug with short_paths feature in windows.
- Improved error messages for non-valid profile test files.
- Remove downloaded tgz package files from remotes after decompress them.
- Fixes bug with install --all and short_paths
- Feature: Added profiles, as user predefined settings and environment variables (as CC and CXX for compiler paths). They are stored in files in the conan cache, so they can be easily edited, added, and shared. Use them with :command:`conan install --profile=name`
- Feature:
short_paths
feature for Windows now also handle long paths for the final package, in case that a user library has a very long final name, with nested subfolders. - Feature: Added
tools.cpu_count()
as a helper to retrieve the number of cores, so it can be used in concurrent builds - Feature: Detects cycles in the dependency graph, and raise error instead of exhausting recursion limits
- Feature: Conan learned the werror`` option that will raise error and stop installation under some cases treated as warnings otherwise: Duplicated dependencies, or dependencies conflicts
- Feature: New
env
generator that generates a text file with the environment variables defined by dependencies, so it can be stored. Such file is parsed by :command:`conan build` to be able to use such environment variables forself.deps_env_info
too, in the same way it uses thetxt
generator to load variables forself.deps_cpp_info
. - Fix: Do not print progress bars when output is a file
- Fix: Improved the local conan search, using options too in the query :command:`conan search -q option=value`
- Fix: Boto dependency updated to 2.43.0 (necessary for ArchLinux)
- Fix: Simplified the :command:`conan package` command, removing unused and confusing options, and more informative messages about errors and utility of this command.
- Fix: More fixes and improvements on
ConfigureEnvironment
, mainly for Windows - Fix: Conan now does not generate a
conanbuildinfo.txt
file when doing :command:`conan install <PkgRef>`. - Bug fix: Files of a package recipe are "touched" to update their timestamps to current time when retrieved, otherwise some build systems as Ninja can have problems with them.
- Bug fix:
qmake
generator now uses quotes to handle paths with spaces - Bug fix: Fixed
OSInfo
to return the short distro name instead of the long one. - Bug fix: fixed transitivity of
private
dependencies
This minor solves some problems with ConfigureEnvironment
, mainly for Windows, but also fixes
other things:
- Fixed concatenation problems in Windows for several environment variables. Fixed problems with path with spaces
- A batch file is created in Windows to be called, as
if defined
structures doesn't seem to work in the command line. - The
vcvars_command
fromtools
now checks the Visual Studio environment variable, if it is already set, it will check it with the current project settings, throwing an error if not matching, returning an empty command if matches. - Added a
compile_flags
property toConfigureEnvironment
, to be passed in the command line to the compiler, but not as environment variables - Added
defines
to environment for nix systems, it was not being handled before - Added new tests, compiling simple projects and diamond dependencies with cmake, cl (msvc), gcc (gcc in linux, mingw in win)
and clang (OSX), for a better coverage of the
ConfigureEnvironment
functionality. - Fixed wrong
CPP_INCLUDE_PATH
, it is nowCPLUS_INCLUDE_PATH
IMPORTANT UPGRADE ISSUE: There was a small error in the computation of binary packages IDs, that has been addressed by conan 0.13. It affects to third level (and higher) binary packages, i.e. A and B in A->B->C->D, which binaries must be regenerated for the new hashes. If you don't plan to provide support for older conan releases (<=0.12), which would be reasonable, you should remove all binaries first (:command:`conan remove -p`, works both locally and remotely), then re-build your binaries.
Features:
- Streaming from/to disk for all uploads/downloads. Previously, this was done for memory, but conan started to have issues for huge packages (>many hundreds MBs), that sometimes could be alleviated using Python 64 bits distros. This issues should be alleviated now
- New security system that allows capturing and checking the package recipes and binaries manifests into user folders (project or any other folder). That ensures that packages cannot be replaced, hacked, forged, changed or wrongly edited, either locally or in any remote server, without notice.
- Possible to handle and reuse python code in recipes. Actually, conan can be used as a package
manager for python, by adding the package path to
env_info.PYTHONPATH
. Useful if you want to reuse common python code between different package recipes. - Avoiding re-compress the tgz for packages after uploads if it didn't change.
- New command :command:`conan source` that executes the
source()
method of a given conanfile. Very useful for CI, if desired to run in parallel the construction of different binaries. - New propagation of
cpp_info
, so it now allows for capturing binary packages libraries with newcollect_libs()
helper, and access to created binaries to compute thepackage_info()
in general. - Command test_package now allows the update`` option, to automatically update dependencies.
- Added new architectures for
ppc64le
and detection forAArch64
- New methods for defining requires effect over binary packages ID (hash) in
conan_info()
- Many bugs fixes: error in
tools.download
with python 3, restore correct prompt in virtualenvs, bug if removing an option inconfig_options()
, setup.py bug...
This release has contributions from @tru, @raulbocanegra, @tivek, @mathieu, and the feedback of many other conan users, thanks very much to all of them!
- Major changes to search api and commands. Decoupled the search of package recipes, from the search of binary packages.
- Fixed bug that didn't allow to
export
orupload
packages with settings restrictions if the restrictions didn't match the host settings - Allowing disabling color output with
CONAN_COLOR_DISPLAY=0
environment variable, or to configure color schema for light console backgrounds withCONAN_COLOR_DARK=1
environment variable - Imports can use absolute paths, and files copied from local conan cache to those paths will not be removed when :command:`conan install`. Can be used as a way to install machine-wise things (outside conan local cache)
- More robust handling of failing transfers (network disconnect), and inconsistent status after such
- Large internal refactor for storage managers. Improved implementations and decoupling between server and client
- Fixed slow :command:`conan remove` for caches with many packages due to slow deletion of empty folders
- Always allowing explicit options scopes,
- o Package:option=value
as well as the implicit-o option=value
for currentPackage
, for consistency - Fixed some bugs in client-server auth process.
- Allow to extract
.tar
files intools.unzip()
- Some helpers for
conan_info()
, asself.info.requires.clear()
and removal of settings and options
- New error reporting for failures in conanfiles, including line number and offending line, much easier for package creators
- Removed message requesting to create an account in conan.io for other remotes
- Removed localhost:9300 remote that was added by default mostly for demo purposes. Clarified in docs.
- Fixed usernames case-sensitivity in conan_server, due to ConfigParser it was forcing lowercase
- Handling unicode characters in remote responses, fixed crash
- Added new compilers gcc 6.2, clang 8.0 to the default
settings.yml
- Bumped cryptography, boto and other conan dependencies, mostly for ArchLinux compatibility and new OSX security changes
- New solution for the path length limit in Windows, more robust and complete. Package conanfile.py
just have to declare an attribute
short_paths=True
and everything will be managed. The old approach is deprecated and totally removed, so no shorts_paths.conf file is necessary. It should fix also the issues with uploads/retrievals. - New
virtualenv
generator that generatesactivate
anddeactivate
scripts that set environment variables in the current shell. It is very useful, for example to install tools (like CMake, MinGW) with conan packages, so multiple versions can be installed in the same machine, and switch between them just by activating such virtual environments. Packages for MinGW and CMake are already available as a demo - ConfigureEnvironment takes into account environment variables, defined in packages in new
env_info
, which is similar tocpp_info
but for environment information (like paths). - New per-package
build_policy
, which can be set toalways
ormissing
, so it is not necessary to create packages or specify the build`` parameter in command line. Useful for example in header only libraries or to create packages that always get the latest code from a branch in a github repository. - Command :command:`conan test_package`` now executes by default a :command:`conan export` with smarter package reference deduction. It is introduced as opt-out behavior.
- Conan :command`export` command avoids copying test_package/build temporary files in case of
export=*
- Now,
package_info()
allows absolute paths inincludedir
,libdirs
andbindirs
, so wrapper packages can be defined that use system or manually installed libraries. - LDFLAGS in
ConfigureEnvironment
management of OSX frameworks. - Options allow the
ANY
value, so such option would accept any value. For example a commit of a git repository, useful to create packages that can build any specific commit of a git repo. - Added gcc 5.4 to the default settings, as well as MinGW options (Exceptions, threads...)
- Command :command:`conan info` learned a new option to output the packages from a project dependency tree that should be rebuilt in case of a modification of a certain package. It outputs a machine readable ordered list of packages to be built in that order. Useful for CI systems.
- Better management of incomplete, dirty or failed
source
directories (e.g. in case of a user interrupting with Ctrl+C a git clone inside thesource()
method. - Added tools for easier detection of different OS versions and distributions, as well as command
wrappers to install system packages (apt, yum). They use
sudo
via a new environment variable CONAN_SYSREQUIRES_SUDO, so using sudo is opt-in/out, for users with different sudo needs. Useful forsystem_requirements()
- Deprecated the
config()
method (still works, for backwards compatibility), but has been replaced by aconfig_options()
to modify options based on settings, and aconfigure()
method for most use cases. This removes a nasty behavior of having theconfig()
method called twice with side effects. - Now, running a :command:`conan install MyLib/0.1@user/channel` to directly install packages without any
consuming project, is also able to generate files with the
-g
option. Useful for installing tool packages (MinGW, CMake) and generatevirtualenvs
. - Many small fixes and improvements: detect compiler bug in Py3, search was crashing for remotes, conan new failed if the package name had a dash, etc.
- Improved some internal duplications of code, refactored many tests.
This has been a big release. Practically 100% of the released features are thanks to active users feedback and contributions. Thanks very much again to all of them!
- conan new command, that creates conan package conanfile.py templates, with a test_package package test (-t option), also for header only packages (-i option)
- Definition of scopes. There is a default dev scope for the user project, but any other scope (test, profile...) can be defined and used in packages. They can be used to fire extra processes (as running tests), but they do not affect the package binaries, and are not included in the package IDs (hash).
- Definition of dev_requires. Those are requirements that are only retrieved when the package is in dev scope, otherwise they are not. They do not affect the binary packages. Typical use cases would be test libraries or build scripts.
- Allow shorter paths for specific packages, which can be necessary to build packages with very long path names (e.g. Qt) in Windows.
- Support for bzip2 and gzip decompression in
tools
- Added
package_folder
attribute to conanfile, so thepackage()
method can for example callcmake install
to create the package. - Added
CONAN_CMAKE_GENERATOR
environment variable that allows to override theCMake
default generator. That can be useful to build with Ninja instead of the default Unix Makefiles - Improved
ConfigureEnvironment
with include paths in CFLAGS and CPPFLAGS, and fixed bug. - New :command:`conan user --clean` option, to completely remove all user data for all remotes.
- Allowed to raise
Exceptions
inconfig()
method, so it is easier for package creators to raise under non-supported configurations - Fixed many small bugs and other small improvements
As always, thanks very much to all contributors and users providing feedback.
- Fixed download bug that made it specially slow to download, even crash. Thanks to github @melmdk for fixing it.
- Fixed cmake check of CLang, it was being skipped
- Improved performance. Check for updates has been removed from install, made it opt-in in :command:`conan info` command, as it was very slow, seriously affecting performance of large projects.
- Improved internal representation of graph, also improves performance for large projects.
- Fixed bug in :command:`conan install --update`.
- Python 3 "experimental" support. Now the main conan codebase is Python 2 and 3 compatible. Python 2 still the reference platform, Python 3 stable support in next releases.
- Create and share your own custom generators for any build system or tool. With "generator packages", you can write a generator just as any other package, upload it, modify and version it, etc. Require them by reference, as any other package, and pull it into your projects dynamically.
- Premake4 initial experimental support via a generator package.
- Very large re-write of the documentation. New "creating packages" sections with in-source and out-source explicit examples. Please read it! :)
- Improved :command:`conan test`. Renamed
test
to test_package both for the command and the folder, but backwards compatibility remains. Custom folder name also possible. Adapted test layout might require minor changes to your package test, automatic warnings added for your convenience. - Upgraded pyinstaller to generate binary OS installers from 2.X to 3.1
- :command:`conan search` now has command line options:, less verbose, verbose, extra verbose
- Added variable with full list of dependencies in conanbuildinfo.cmake
- Several minor bugfixes (check github issues)
- Improved :command:`conan user` to manage user login to multiple remotes
- Fixed linker problems with the new apple-clang 7.3 due to libraries with no timestamp set.
- Added apple-clang 7.3 to default settings
- Fixed default libcxx for apple-clang in auto detection of base conan.conf
- New conan remote command to manage remotes. Redesigned remotes architecture, now allows to work with several remotes in a more consistent, powerful and "git-like" way. New remotes registry keeps track of the remote of every installed package, and this information is shown in :command:`conan info` command too. Also, it keeps different user logins for different remotes, to improve support in corporate environments running in-house servers.
- New update functionality. Now it is possible to :command:`conan install --update` to update packages that became obsolete because new ones were uploaded to the corresponding remote. Conan commands as install and info show information about the status of the local packages compared with the remote ones. In this way, using latest versions during development is much more natural.
- Added new compiler.libcxx setting in order to support the different c++ standard libraries.
It can take libstdc++, libstdc++11 or libc++ values to take into account different standard
libraries for modern gcc and clang compilers. It is also possible to remove not needed settings,
like this one in pure C projects, with the new syntax:
del self.settings.compiler.libcxx
- Conan virtual environment: Define a custom conan directory with CONAN_USER_HOME env variable,
and have a per project or per workspace storage for your dependencies. So you can isolate your
dependencies and even bundle them within your project, by just setting the CONAN_USER_HOME
variable to your
<project>/deps
folder, for example. This also improves support for continuous integration CI systems, in which many builds from different users could be run in parallel. - Better conanfile download method. More stable and now checks (opt-out) the ssl certificates.
- Lots of improvements: Increased library name length limit, Improved and cleaner output messages.
- Fixed several minor bugs: removing empty folders, case sensitive exports, arm settings detection.
- Introduced the concept of "package recipe" that refers to conanfile.py and exported files.
- Improved settings display in web, with new "copy install command to clipboard" to assist in installing packages discovered in web.
- The macOS installer, problematic with latest macOS releases, has been deprecated in favor of homebrew and pip install procedures.
- Custom conanfile names are allowed for developing. With file`` option you can define
the file you want to use, allowing for
.conaninfo.txt
or having multipleconanfile_dev.py
,conanfile_test.py
besides the standardconanfile.py
which is used for sharing the package. Inheritance is allowed, e.g.conanfile_dev.py
might extend/inherit fromconanfile.py
. - New :command:`conan copy` command that can be used to copy/rename packages, promote them between channels, forking other users packages.
- New all`` and package`` options for :command:`conan install` that allows to download one, several, or all package configurations for a given reference.
- Added
patch()
tool to easily patch sources if necessary. - New qmake and qbs generators
- Upload of conanfile exported files is also tgz'd, allowing fast upload/downloads of full sources if desired, avoiding retrieval of sources from externals sources.
- :command:`conan info` command improved showing info of current project too
- Output of
run()
can be redirected to buffer string for processing, or even removed. - Added proxy configuration to conan.conf for users behinds proxies.
- Large improvements in commands output, prefixed with package reference, and much clear.
- Updated settings for more versions of gcc and new arm architectures
- Treat dependencies includes as SYSTEM in cmake, so no warnings are raised
- Deleting source folder after :command:`conan export` so no manual removal is needed
- Normalizing to CRLF generated user files in Win
- Better detection and checks for compilers as VS, apple-clang
- Fixed CMAKE_SHARED_LINKER_FLAGS typo in cmake files
- Large internal refactor in generators
- New cmake variables in cmake generator to make FindPackage work better thanks to the underlaying FindLibrary. Now many FindXXX.cmake work "as-is" and the package creator does not have to create a custom override, and consumers can use packages transparently with the originals FindXXX.cmakes
- New "conan info" command that shows the full dependency graph and details (license, author, url, dependants, dependencies) for each dependency.
- New environment helper with a ConfigureEnvironment class, that is able to translate conan information to autotools configure environment definition
- Relative importing from conanfiles now is possible. So if you have common functionality between different packages, you can reuse those python files by importing them from the conanfile.py. Note that export="..." might be necessary, as packages as to be self-contained.
- Added YouCompleteMe generator for vim auto-completion of dependencies.
- New "conanfile_directory" property that points to the file in which the conanfile.py is located. This helps if using the conanfile.py "build" method to build your own project as a project, not a package, to be able to use any workflow, out-of-source builds, etc.
- Many edits and improvements in help, docs, output messages for many commands.
- All cmake syntax in modern lowercase
- Fixed several minor bugs: gcc detection failure when gcc not installed, missing import, copying source->build failing when symlinks
- New cmake functionality allows package creators to provide cmake finders, so that package consumers can use their CMakeLists.txt with typical FindXXX.cmake files, without any change to them. CMake CONAN_CMAKE_MODULES_PATH added, so that package creators can provide any additional cmake scripts for consumers.
- Now it is possible to generate out-of-source and multiple configuration installations for the same project, so you can switch between them without having to :command:`conan install` again. Check :ref:`the new workflows<workflows>`
- New qmake generator (thanks @dragly)
- Improved removal/deletion of folders with shutil.rmtree, so :command:`conan remove` commands and other processes requiring deletion of folders do not fail due to permissions and require manual deletion. This is an improvement, especially in Win.
- Created
pip
package, so conan can be installed via:pip install conan
- Released
pyinstaller
code for the creation of binaries from conan python source code. Distros package creators can create packages for the conan apps easily from those binaries. - Added md5, sha1, sha256 helpers in
tools
, so external downloads fromconanfile.py
filessource()
can be checked. - Added latest gcc versions to default
settings.yml
- Added CI support for conan development: travis-ci, appveyor
- Improved human-readability for download progress, help messages.
- Minor bug fixes