Important

This feature is still under development, while it is recommended and usable and we will try not to break them in future releases, some breaking changes might still happen if necessary to prepare for the Conan 2.0 release.

conan_version

Available since: 1.52.0

Variable of type Version (see below) that defines the version of the Conan client. You can use it in your recipes like:

from conan import ConanFile
from conan import conan_version

class pkg(ConanFile):
    ...
    def generate(self):
        if conan_version.major == "1":
            print("Running Conan 1.X")

Version

Available since: 1.46.0

constructor

def __init__(self, value: str):

Construct a Version object from a string. It supports basic version comparison between objects, like for example:

compiler_lower_than_12 = Version(str(self.settings.compiler.version)) < "12.0"

Please note this is not an implementation of semver, as users may use any pattern in their versions. It is just a helper to parse “.” or “-” and compare taking into account integers when possible.

Attributes

Available public properties since: 1.50.2

main

Get all the main digits.

@property
def main(self):

For instance:

v = Version("1.2.3.4-alpha.3+b1")
assert [str(i) for i in v.main] == ['1', '2', '3', '4', '5']

major

Get the major digit.

@property
def major(self):

For instance:

v = Version("1.2.3.4-alpha.3+b1")
assert str(v.major) == "1"

minor

Get the minor digit.

@property
def minor(self):

For instance:

v = Version("1.2.3.4-alpha.3+b1")
assert str(v.minor) == "2"

patch

Get the patch digit.

@property
def patch(self):

For instance:

v = Version("1.2.3.4-alpha.3+b1")
assert str(v.patch) == "3"

micro

Get the micro digit.

@property
def micro(self):

For instance:

v = Version("1.2.3.4-alpha.3+b1")
assert str(v.micro) == "4"

pre

Get the pre-release digit.

@property
def pre(self):

For instance:

v = Version("1.2.3.4-alpha.3+b1")
assert str(v.pre) == "alpha.3"

build

Get the build digit.

@property
def build(self):

For instance:

v = Version("1.2.3.4-alpha.3+b1")
assert str(v.build) == "b1"