CONAN_V2_MODE

This environment variable activates some behaviors and defaults that are intended to be in the next major release, Conan 2.0. It also turns into errors things that are already deprecated in Conan 1.x.

The objective is to try to minimize the impact on existing recipes when Conan 2.0 will be available and to start gathering feedback about the new configuration and behavior. This does not resemble the full behavior that Conan 2.0 will bring. The v2 mode is a work-in-progress, it is highly experimental and there is no commitment for stability here, but we expect that users with this mode activated will help us to shape the future version of Conan while we keep evolving the Conan 1.x series.

So, if you are ready to experiment add the variable CONAN_V2_MODE to your environment and, please, report your feedback about it.

Warning

Do not activate this mode in a production environment! Even if everything seems to work fine, package ID might change, revisions will be different and the ABI could be incompatible.

Changes in recipes

These changes could break existing recipes:

  • Forbid access to self.cpp_info in conanfile::package_id() method.
  • Deprecate conanfile::config() method.
  • Deprecate old python_requires syntax.
  • Forbid access to self.info in conanfile.package().
  • default_options are required to be a dictionary.
  • Raise if setting cppstd appears in the recipe.
  • Forbid self.settings and self.options in conanfile::source() method.
  • Deprecate tools.msvc_build_command.
  • Deprecate tools.build_sln_command.
  • Deprecate cpp_info.cppflags (use cxxflags instead).
  • Deprecate environment variables CONAN_UERNAME and CONAN_CHANNEL.

Changes in profiles

Could break existing profiles:

  • Deprecate scopes section in profiles.

Note

More changes will be added, some of them could be reverted and the behavior may change without further noticing. If you are using CONAN_V2_MODE, thanks! We really appreciate your feedback about the future of Conan.

More info

These changes are implemented in these pull-requests: