Conan is a package manager for C and C++ developers:
It is fully decentralized. Users can host their packages on their servers, privately. Integrates with Artifactory and Bintray.
Portable. Works across all platforms, including Linux, OSX, Windows (with native and first-class support, WSL, MinGW),
Solaris, FreeBSD, embedded and cross-compiling, docker, WSL
Manage binaries. It can create, upload and download binaries for any configuration and platform,
even cross-compiling, saving lots of time in development and continuous integration. The binary compatibility can be configured
and customized. Manage all your artifacts in the same way on all platforms.
Integrates with any build system, including any proprietary and custom one. Provides tested support for major build systems
(CMake, MSBuild, Makefiles, Meson, etc).
Extensible: Its Python-based recipes, together with extension points allow for great power and flexibility.
Note: repository directory name matters, some directories are known to be problematic to run tests (e.g. conan). conan-io directory name was tested and guaranteed to be working.
Install in editable mode
$ cd conan-io && sudo pip install -e .
If you are in Windows, using sudo is not required. Some Linux distros won't allow you to put Python packages in editable mode in the root Python installation, and creating a virtual environment venv first, is mandatory.
You are ready, try to run Conan:
$ conan --help
Consumer commands
install Installs the requirements specified in a recipe (conanfile.py or conanfile.txt).
...
Conan commands. Type "conan <command> -h"forhelp
Contributing to the project
Feedback and contribution are always welcome in this project.
Please read our contributing guide.
Also, if you plan to contribute, please add some testing for your changes. You can read the Conan
tests guidelines section for
some advice on how to write tests for Conan.
If you are not on Windows and you are not using a Python virtual environment, you will need to run these
commands using sudo.
Before you can run the tests, you need to set a few environment variables first.
$ export PYTHONPATH=$PYTHONPATH:$(pwd)
On Windows it would be (while being in the Conan root directory):
$ set PYTHONPATH=.
Conan test suite defines and configures some required tools (CMake, Ninja, etc) in the
conftest.py and allows to define a custom conftest_user.py.
Some specific versions, like cmake>=3.15 are necessary.
You can run the tests like this:
$ python -m pytest .
A few minutes later it should print OK:
............................................................................................
----------------------------------------------------------------------
Ran 146 tests in 50.993s
OK
To run specific tests, you can specify the test name too, something like:
The -s argument can be useful to see some output that otherwise is captured by pytest.
Also, you can run tests against an instance of Artifactory. Those tests should add the attribute
artifactory_ready.
$ python -m pytest . -m artifactory_ready
Some environment variables have to be defined to run them. For example, for an
Artifactory instance that is running on the localhost with default user and password configured, the
variables could take the values:
ARTIFACTORY_DEFAULT_URL is the base URL for the Artifactory repo, not one for a specific
repository. Running the tests with a real Artifactory instance will create repos on the fly so please
use a separate server for testing purposes.
We found that conan-server demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.