Versioning¶

This section of the tutorial introduces several concepts about versioning of packages.

First, explicit version updates and how to define versions of packages is explained.

Then, it will be introduced how requires with version ranges can help to automate updating to the latest versions.

There are some situations when recipes or source code are changed, but the version of the package is not increased. For those situations, Conan uses automatic revisions to be able to provide traceability and reproducibility of those changes.

Lockfiles are a common mechanism in package managers to be able to reproduce the same dependency graph later in time, even when new versions or revisions of dependencies are uploaded. Conan also provides lockfiles to be able to guarantee this reproducibility.

Finally, when different branches of a dependency graph requires different versions of the same package, that is called a “version conflict”. The tutorial will also introduce these errors and how to address them.

Note

The Conan 2 Essentials training course is available for free at the JFrog Academy, which covers the same topics as this documentation but in a more interactive way. You can access it here.