NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2412 most downloaded on PyPI
Conan C/C++ package manager
Last release 3 days ago
29 Sep 2026
Ships on a steady schedule
a new release about every 3 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
368 releases · first in 2016
New method get_command() with the call to msbuild tool. Deprecates tools.build_sln_command() and tools.msvc_build_command().
conan build has new --configure, --build, --install arguments to control the different stages of the
build() method.conan export-pkg now has a --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
conan package or with a conan build using a cmake.install() or equivalent feature.json generator, generates a json file with machine readable information from dependencies.no_proxy_match configuration variable.conan upload parameter --no-overwrite to forbid the overwriting of recipe/packages if they have
changed.source_folder when doing conan source.tools.vcvars() context manager has no effect if platform is different from Windows.conan download has new optional argument --recipe to download only the recipe of a package.CONAN_NON_INTERACTIVE environment variable to disable interactive prompts.MSbuild() build helper using vcvars() and generating property file to adjust the runtime automatically. New method get_command() with the call to msbuild tool. Deprecates tools.build_sln_command() and tools.msvc_build_command().ycm generator to show json dependencies.--json parameter for conan install and conan create to generate a JSON file with install information.conan install --build does not absorb more than one parameter.conan new PEP8 compliant.conan search output improved when there are no packages for the given reference.conan download also retrieve sources.self.user and self.channel available in test_package.deploy() or imports() when CONAN_READ_ONLY_CACHE```/general.read_only_cacheenvironment/config variable isTrue``.cpp_info object in deploy() method.conan user -r=remote_name showed all users for all remotes, not the one given.package_info().cmake generator.conan config install now raises error if git clone fails.self.short_paths=True and NTFS file systems due to ACL permissions.conan profile update not working to update [env] section.conan search not creating default remotes when running it as the very first command after Conan installation.One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Feature: build_sln_command and msvc_build_command receive a new optional parameter platforms to match the definition of the sln Visual Studio project
build_sln_command and msvc_build_command receive a new optional parameter platforms to match the definition of the sln Visual Studio project architecture. (Typically Win32 vs x86 problem).AutoToolsBuildEnvironment build helperAutoToolsBuildEnvironment build helper now adjust the correct build flag, not using eabi suffix, for architecture x86.Deprecation: Removed conan-transit from default remotes registry.
$ conan create --keep-build option that allows re-packaging from conan local cache, without re-building.$ conan search <pattern> -r=all now searches in all defined remotes.cppstd to manage the C++ standard. Also improved build helpers to adjust the standard automatically when the user activates the setting.AutoToolsBuildEnvironment, CMake, MSBuild and VisualStudioBuildEnvironmentcompiler_args generator, for directly calling the compiler from command line, for multiple compilers: VS, gcc, clang.sysrequires_mode variable (CONAN_SYSREQUIRES_MODE env-var) with values enabled, verify, disabled to control the installation of system dependencies via SystemPackageTool typically used in system_requirements() method.pythonpath environment variable for dependencies containing python code to be reused to recipe source(), build(), package() methods.CMake new patch_config_paths() methods that will replace absolute paths to conan package path variables, so cmake find scripts are relocatable.--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 variable CONAN_TEMP_TEST_FOLDER, that if set to True will automatically clean the test_package build folder after running.CONAN_SKIP_VS_PROJECTS_UPGRADE environment variable to skip the upgrade of Visual Studio project when using build_sln_commmand, the msvc_build_command and the MSBuild build helper.CONAN_VS_INSTALLATION_PREFERENCE env-var and vs_installation_preference conan.conf variable.keep_path parameter to self.copy() within the imports() method.[build_requires] section to conanfile.txt.$ conan help <command> command, as an alternative to --help.target parameter to AutoToolsBuildEnvironment.make method, allowing to select build target on running makeCONAN_MAKE_PROGRAM environment variable now it is used by the CMake() build helper to set a custom make program.--verify-ssl optional parameter to $ conan config install to allow self-signed SSL certificates in download.tools.get_env() helper method to automatically convert environment variables to python types.libcxx compatibility and the detected one for the default profile.visual_studio generator added missing ResourceCompile information.conan config install command.conan profile help message.CMake helper do not require settins if CONAN_CMAKE_GENERATOR is defined.conan profile show command.AutoToolsBuildEnvironmentbuild_id() logic does not apply unless the build_id is effectively changed.self.install_folder was not correctly set in all necessary cases.-update option does not ignore local packages for version-ranges.self.develop=True for export-pkg command.config section update for sequential calls over the python API.self.develop set to False for conan create with test_package.Nothing published for this version
Bugfix: Fixed default profile defined in *conan.conf* that includes another profile
sysroot in conanbuildinfo.txt affecting conan build and test_packageconan source because of incorrect management of settings.CMake build helper have been fixed-o *:shared=True not working for consuming package)-o *:shared=True -o Pkg:other=False was not applying shared value to Pkg)filter_known_paths=False as default to vcvars_dict() helper.Bugfix: Correct load of stored settings in conaninfo.txt (for conan build) when configure() remove some setting
conan build) when configure() remove some settingconan alias --help--xxx-folder in command line helpNothing published for this version
Fix: Adding a warning message for simultaneous use of os and os_build settings.
os and os_build settings.arch_build setting.--xxx-folder in command line help messages.Nothing published for this version
Nothing published for this version
Fix: conan new does not generate cross-building (like os_build) settings by default. They make only sense for dev-tools used as build_requires
conan new does not generate cross-building (like os_build) settings by default. They make only sense for dev-tools used as build_requiresconaninfo.txt file does not dump settings with None valuesPlease don’t use cross-build settings os_build, arch_build for standard packages and libraries. There were some errors in the docs, using them for all packages. They are only useful for packages that are used via build_requires, like cmake_installer or mingw_installer.
Nothing published for this version
Bugfix: Fixed bug from remove_from_path due to Windows path backslash
remove_from_path due to Windows path backslashFix: 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 m
-r myremoteconan profile show now shows profile with same syntax as profile filesconan new templates will not run example app if cross building.conan export-pkg uses the conanfile.py folder as the default --source-folderconan download didn't download recipe if there are no binaries. Force recipe download.self.run() when stderr outputs large tests, due to full pipe.Feature: run_in_windows_bash accepts a dict of environment variables to be prioritised inside the bash shell, mainly intended to control the priority
run_in_windows_bash accepts a dict of environment variables to be prioritised inside the bash shell, mainly intended to control the priority of the tools in the path. Use with vcvars context manager and vcvars_dict, that returns the PATH environment variable only with the Visual Studio related directoriesarch_targetconan new templates now use new os_build and arch_build settingsCMake helper to account for os_build and arch_build new settingsinclude(default))conan searchbuild_requirements() for $ conan install .alias packagesconan export-pkg after a conan install when recipe has optionsDeprecation: removed all --some_argument, use instead --some-argument in command line.
Install with: pip install conan==1.0.0b3
build_requires with transitive dependencies to other build_requires--some_argument, use instead --some-argument in command line.1.0.0-beta.2 (23-December-2017)
Install with: pip install conan==1.0.0b2
conan install and conan info.Deprecation: Removed self.copy_headers and family for the package() method
Install with: pip install conan==1.0.0b1
conan export . user/testing
or conan create folder/myconanfile.py user/channel.os_build, arch_build, os_target, arch_target.package() will not warn of not copied files for known use cases.cpp_info, env_info, user_info attributes to package_info()
method, to avoid unexpected errors.source, package and export-pkg
commandsconan newself.copy_headers and family for the package() methodself.conanfile_directory attribute.. to the command.self.copy_headers, self.copy_libs, methods for package(). Use self.copy() instead.self.conanfile_directory attribute. Use self.source_folder, self.build_folder, etc.
insteadReverted CMake() and Meson() build helpers to keep old behavior.
Fix: CMake() and Meson() build helpers and relative directories. #2152
ycm generator, removed the access of cpp_info to generators, keeping the access to deps_cpp_info. #2149Added missing migration corresponding to the new gcc major versions (5, 6, 7).
Updated python cryptography requirement for OSX due the pyOpenSSL upgrade. See more: https://pypi.python.org/pypi/pyOpenSSL
Reverted concurrency locks to counters, removed psutil dependency
psutil dependencyDeprecation: Removed old CMake helper methods (only valid constructor is CMake(self))
boost-build generator for generic bjam (not only Boost)tools.PkgConfig helper to parse pkg-config (.pc) files.self.develop conanfile variable. It is true for conan create packages and for local development.self.keep_imports to avoid removal of imported files in the build() method. Convenient for re-packaging.SystemPackageToolAutoToolsBuildEnvironment now auto-loads pkg_config_path (to use with pkg_config generator)profiles folder, will be searched for locally. Use ./myprofile to force local search only.if "something" in self.options.myoptionexports_sources is not longer done if such attribute is not definedcmake generator for RelWithDebInfo and MinSizeRel configsconan config install if such file is localCMake.test() for the Ninja generatorconan install <pkg-ref> commands.build_policy="always"conan copy was always copying binaries, now can copy only recipesCMake(self))conan_info() method, that was superseded by package_id()conan_basic_setup(), it will send shared libraries .so
to the lib folder in Linux systems. Right now it was undefined.-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.conan copy command has been fixed. To copy all binaries, it is necessary to explicit --all, as other commands doCMake(self) syntaxconan_info(), replace it with package_id()BugFix: Downloading (tools.download) of files with content-encoding=gzip were raising an exception because the downloaded content length didn't match
tools.download) of files with content-encoding=gzip were raising an exception because the downloaded content length didn't match the content-length😈 Happy Halloween!
Important!, see the "Breaking changes" at the end of the document.
This is a big release, with many important and core changes. Also with a huge number of community contributions, thanks very much!
Important!, see the "Breaking changes" at the end of the document.
install-folder, source-folder, build-folder, package-folder.deploy() method, useful for installing binaries from conan packages.conan install and conan create for different configurations should be possible.-o *:myoption=myvalue applies to all packages.pc generator that generates files from dependencies for pkg-configMeson helper, similar to CMake for Meson build system. Works well with pc generator.CONAN_READ_ONLY_CACHE environment variablevisual_studio_multi generator to load Debug/Release, 32/64 configs at oncetools.which helper to locate executablesconan --help layoutvcvars_commandconan user interactive (and not exposed) password input for empty -p argumentPacManTool for system_requirements() for ArchLinuxCMake constructor and from environment variable CONAN_CMAKE_TOOLSETconan create now accepts werror argumentAutoToolsBuildEnvironment can use CONAN_MAKE_PROGRAM env-var to define make programshort_paths in Windows 10 with Py3.6 and long path support is automaticsudo for system requirements if already running as roottools.download able to use headers/authbuild_sln_command for VStools.get() now has arguments for hash checkingPkg/*tools.patch now support adding/removal of filesdefault profile is no longer taken as a base and merged with user profile. Use explicit include(default) instead.tools.unzip removed the unnecessary long-paths check in Windowspackage_info() is no longer executed at install for the consumer conanfile.pyCMAKE_C_FLAGS_DEBUG definition in cmake generatorCMAKE_SYSTEM_NAME is now Darwin for iOS, watchOS and tvOSxcode generator fixed handling of compiler flagsconan profile list when local files matched profile namesThis 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:
conan install doesn't accept cwd anymore, to change the directory where the generator
files are written, use the --install-folder parameter.conan build now requires the path to the conanfile.py (optional before)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 conan build and then conan export-pkg.conan package_files in favor of a new command conan export-pkg. It requires a local recipe with a package() method.conan source no longer operates in the local cache. now it only operates in a user local folder. If you used conan source with a reference to workaround the concurrency, now it natively supported, you can remove the command call and trust concurrent install processes.conan imports doesn't accept -d, --dest anymore, use --imports-folder parameter instead.~/.conan/profiles/default won’t be applied.
Use explicit include to keep the old behavior.Nothing published for this version
Deprecation: dev_requires have been removed. Superseded by build_requires while not documented at all.
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 teamscpp_info (include, lib, etc), so some build systems doesn't complain of them.visual_studio generatorvisual_studio_legacy generator for Visual Studio 2008replace_in_file now raises error if replacement is not done (opt-out parameter)[proxies] section no_proxy=url1,url2 configuration (to skip proxying for those URLs), as well as http=None and https=None to explicitely disable them.self.in_local_cache attribute for conditional logic to apply in user folders local commandsCONAN_USER_HOME_SHORT=None can disable the usage of short_paths in Windows, for modern Windows that enable long paths at the system levelif "arm" in self.settings.arch is now a valid check (without casting to str(self.settings.arch))--cwd argument to conan source local method.collect_libs moved to the tools moduledeps_cpp_info causing issues with dots and dashes in package namesdev_requires have been removed. Superseded by build_requires while not documented at all.Nothing published for this version
Bugfix: fixed parsing of conanbuildinfo with package names containing a dot.
Feature: conan profile command has implemented update, new, remove subcommands, with --detect, to allow creation, edition and management of profiles.
conan profile command has implemented update, new, remove subcommands, with --detect, to allow creation, edition and management of profiles.conan package_files command now can call recipe package() method if --build_folder or --source_folder arguments are definedMD or MDd is now automatic based on build type, not necessary to default in profile.SystemExit to return user error codes to the system with sys.exit(code)conan_basic_setup() functionvs150comntools variable, and using vswhere.execonan_basic_setup() functionexport command is now able to export recipes without name or version, specifying the full reference.tools.replace_prefix_in_pc_file() function to help with .pc files.pkgutil on Solarisconan remote update now allows --insert argument to change remote orderverbose definition to CMake helper.conan package working locally failed if not specified build_folderPkg/*@user/channelpackage_files command now works with short_paths too.vcvars_command for custom VS paths defined via env-varsExecutablePath assignment has been removed from the visual_studio generator.export_source folder containing exported code, fix issues with read-only files and keeps cache consistency better.conan new generated test templatesDYLD_LIBRARY_PATH variable for virtual environmentsFileCopier had a bug that affected self.copy() commands, changing base reference directory.Nothing published for this version
Nothing published for this version
Bugfix: Build requires are now applied correctly to test_package projects.
This release introduces a new layout for the local cache, with dedicated export_source folder to store the source code exported with exports_sources f
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.
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 requiresconan get command that display (with syntax highlight) package recipes, and any other file from conan: recipes, conaninfo.txt, manifests, etc.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.conan search --table=file.html command that will output an html file with a graphical representation of available binaries[settings_default] in conan.conf and augments it, allowing to define more things like env-vars, options, build_requires, etc.self.user_info member that can be used in package_info() to define custom user variables, that will be translated to general purpose variables by generators.conan remove learned the --outdated argument, to remove those package binaries that are outdated from the recipe, both from local cache and remotesconan search learned the --outdated argument, to show only those package binaries that are outdated from the recipe, both from local cache and remotesCMAKE_TOOLCHAIN_FILE in CMake helper for cross-building.conan_api, a python API interface to conan functionality.cmake.install() method of CMake helper.short_paths feature now applies also to exports_sourcesSystemPackageTool now supports FreeBSD system packagesbuild_requires now manage options too, also default options in package recipesconan build learned new --package_folder argument, useful if the build system perform the packagingCMake helper now defines by default CMAKE_INSTALL_PREFIX pointing to the current package_folder, so cmake.install() can transparently execute the packaging.--cwd arguments to allow define the current directory for the commandVisualStudioBuildEnvironmentconan new now has arguments to generate CI scripts for Gitlab CI.MinRelSize and RelWithDebInfo management in CMake helper.mkdir, rmdir, relative_dirs available for import from conans module.package_files now allows symlinksconan remote add_ref before download/upload.exports and exports_sources fieldsNothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →