conan alias
$ conan alias [-h] reference target
Creates and exports an ‘alias package recipe’.
An “alias” package is a symbolic name (reference) for another package (target). When some package depends on an alias, the target one will be retrieved and used instead, so the alias reference, the symbolic name, does not appear in the final dependency graph.
positional arguments:
reference Alias reference. e.g.: mylib/1.X@user/channel
target Target reference. e.g.: mylib/1.12@user/channel
optional arguments:
-h, --help show this help message and exit
The command:
$ conan alias hello/0.X@user/testing hello/0.1@user/testing
Creates and exports a package recipe for hello/0.X@user/testing
with the following content:
from conans import ConanFile
class AliasConanfile(ConanFile):
alias = "hello/0.1@user/testing"
Such package recipe acts as a “proxy” for the aliased reference. Users depending on
hello/0.X@user/testing
will actually use version hello/0.1@user/testing
. The alias package
reference will not appear in the dependency graph at all. It is useful to define symbolic names, or
behaviors like “always depend on the latest minor”, but defined upstream instead of being defined
downstream with version-ranges
.
The “alias” package should be uploaded to servers in the same way as regular package recipes, in order to enable usage from servers.
From Conan 1.39, a new experimental explicit syntax for requiring alias packages has been
introduced, designed to supersede the current one in Conan 2.0, in the form ``requires = "pkg/(latest)@user/testing"
.
Read more about it in this section.