Conan - The open-source C/C++ package manager

Overview

Logo

Conan

Decentralized, open-source (MIT), C/C++ package manager.

Conan is a package manager for C and C++ developers:

  • It is fully decentralized. Users can host their packages in 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 extensions points allows for great power and flexibility.
  • Large and active community, especially in Github (https://github.com/conan-io/conan) and Slack (https://cpplang-inviter.cppalliance.org/ #conan channel). This community also creates and maintains packages in ConanCenter and Bincrafters repositories in Bintray.
  • Stable. Used in production by many companies, since 1.0 there is a commitment not to break package recipes and documented behavior.
develop Code Climate
Build Status Develop Develop climate

Setup

Please read https://docs.conan.io/en/latest/installation.html to know how to install and start using Conan. TL;DR:

$ pip install conan

Install a development version

You can run Conan client and server in Windows, MacOS, and Linux.

  • Install pip following pip docs.

  • Clone Conan repository:

    $ git clone https://github.com/conan-io/conan.git conan-io
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 && sudo pip install -e .

    If you are in Windows, using sudo is not required.

  • You are ready, try to run Conan:

    $ conan --help
    
    Consumer commands
      install    Installs the requirements specified in a conanfile (.py or .txt).
      config     Manages configuration. Edits the conan.conf or installs config files.
      get        Gets a file or list a directory of a given reference or package.
      info       Gets information about the dependency graph of a recipe.
      search     Searches package recipes and binaries in the local cache or in a remote.
    Creator commands
      new        Creates a new package recipe template with a 'conanfile.py'.
      create     Builds a binary package for a recipe (conanfile.py) located in the current dir.
      upload     Uploads a recipe and binary packages to a remote.
      export     Copies the recipe (conanfile.py & associated files) to your local cache.
      export-pkg Exports a recipe & creates a package with given files calling 'package'.
      test       Test a package, consuming it with a conanfile recipe with a test() method.
    Package development commands
      source     Calls your local conanfile.py 'source()' method.
      build      Calls your local conanfile.py 'build()' method.
      package    Calls your local conanfile.py 'package()' method.
    Misc commands
      profile    Lists profiles in the '.conan/profiles' folder, or shows profile details.
      remote     Manages the remote list and the package recipes associated with a remote.
      user       Authenticates against a remote with user/pass, caching the auth token.
      imports    Calls your local conanfile.py or conanfile.txt 'imports' method.
      copy       Copies conan recipes and packages to another user/channel.
      remove     Removes packages or binaries matching pattern from local cache or remote.
      alias      Creates and exports an 'alias recipe'.
      download   Downloads recipe and binaries to the local cache, without using settings.
    
    Conan commands. Type "conan <command> -h" for help
    

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 advise on how to write tests for Conan.

Running the tests

Using tox

$ python -m tox

It will install the needed requirements and launch pytest skipping some heavy and slow tests. If you want to run the full test suite:

$ python -m tox -e full

Without tox

Install python requirements

$ python -m pip install -r conans/requirements.txt
$ python -m pip install -r conans/requirements_server.txt
$ python -m pip install -r conans/requirements_dev.txt

If you are not 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=.

Ensure that your cmake has version 2.8 or later. You can see the version with the following command:

$ cmake --version

The appropriate values of CONAN_COMPILER and CONAN_COMPILER_VERSION depend on your operating system and your requirements.

These should work for the GCC from build-essential on Ubuntu 14.04:

$ export CONAN_COMPILER=gcc
$ export CONAN_COMPILER_VERSION=4.8

These should work for OS X:

$ export CONAN_COMPILER=clang
$ export CONAN_COMPILER_VERSION=3.5

You can run the actual tests like this:

$ python -m pytest .

There are a couple of test attributes defined, as slow that you can use to filter the tests, and do not execute them:

$ python -m pytest . -m "not slow"

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:

$ python -m pytest conans/test/unittests/client/cmd/export_test.py::ExportTest::test_export_warning -s

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:

$ export CONAN_TEST_WITH_ARTIFACTORY=1
$ export ARTIFACTORY_DEFAULT_URL=http://localhost:8081/artifactory
$ export ARTIFACTORY_DEFAULT_USER=admin
$ export ARTIFACTORY_DEFAULT_PASSWORD=password

ARTIFACTORY_DEFAULT_URL is the base url for the Artifactory repo, not one for an 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.

License

MIT LICENSE

Comments
  • Package revisions

    Package revisions

    Most package managers have a concept of package revision, i.e. additional version number that reflects changes in packaging scripts or applied patches when "main" version number of packaged software remains the same.

    It would be great if Conan added support for revisions too. This will make package updates more trasparent ("updated from vX.Y.Z-r1 to vX.Y.Z-r2"). Also there could be a policy that "stable" channel can never change conanfile and binaries without bumping revision, to prevent accidental changes in packages used in CI with manifest verification.

    It would be great if it was possible to keep binary packages for previous revisions so that CI system with manifests checking does not get broken in case new revision is uploaded without committing new reference manifests.

    It was previously briefly discussed at https://github.com/conan-io/conan/issues/480#issuecomment-247545547

    type: feature priority: high complex: low 
    opened by annulen 89
  • Warning in CMake file created by conan

    Warning in CMake file created by conan

    Hi guys,

    This is not causing me any problems as such, but I thought I'd let you guys know. Noticed this on my build[1]:

    CMake Warning (dev) in build/output/conanbuildinfo.cmake:
      Syntax Warning in cmake code at
        /home/travis/build/DomainDrivenConsulting/dogen/build/output/conanbuildinfo.cmake:142:88
      Argument not separated from preceding token by whitespace.
    Call Stack (most recent call first):
      CMakeLists.txt:30 (include)
    This warning is for project developers.  Use -Wno-dev to suppress it.
    

    Presumably conanbuildinfo.cmake is generated by Conan. Worth clearing up that warning...

    Cheers

    [1] https://travis-ci.org/DomainDrivenConsulting/dogen/jobs/107194308

    opened by mcraveiro 69
  • "Please log in to "conan-center" to perform this action." for several packages

    To help us debug your issue please explain:

    • [x ] I've read the CONTRIBUTING guide.
    • [x ] I've specified the Conan version, operating system version and any tool that can be relevant.
    • [x ] I've explained the steps to reproduce the error or the motivation/use case of the question/suggestion.

    Windows 10 amd64, Python 3.7.4, Conan 1.18.4 from pip within virtualenv

    I am working within conan-libpq-stable-11.4 directory, which is extracted libpq/11.4 from https://github.com/bincrafters/conan-libpq.

    My env:

    >echo %CONAN%
    C:\Users\Vincas\code\cpp\branches\upgrade\\3rdparty\Conan\_python_3.7.4_venv_conan_1.18.4\Scripts\conan.exe
    
    >%CONAN% --version
    Conan version 1.18.4
    

    I have conan_profile_windows.txt like this (for building libpq on Windows using CMake):

    include(default)
    [build_requires]
    cmake_installer/[email protected]/stable
    

    I run development flow commands:

    >%CONAN% source . -sf src
    
    >%CONAN% install . -if install -s "compiler=Visual Studio" -s compiler.version=14 -s arch=x86 -s arch_build=x86 --build=missing -p conan_profile_windows.txt
    

    But since I've added conan_installer as build depends, I get this output:

    >%CONAN% install . -if install -s "compiler=Visual Studio" -s compiler.version=14 -s arch=x86 -s arch_build=x86 --build=missing -p conan_profile_windows.txt
    Configuration:
    [settings]
    arch=x86
    arch_build=x86
    build_type=Release
    compiler=Visual Studio
    compiler.runtime=MD
    compiler.version=14
    os=Windows
    os_build=Windows
    [options]
    [build_requires]
    *: cmake_installer/[email protected]/stable
    [env]
    
    cmake_installer/[email protected]/stable: WARN: Package is corrupted, removing folder: C:\Users\Vincas\.conan\data\cmake_installer\3.15.3\conan\stable\package\60b04a80ac4dd5c23f1acffacc679e9902e636e5
    conanfile.py (libpq/11.4): Installing package
    Requirements
        zlib/[email protected]/stable from 'conan-center' - Cache
    Packages
        zlib/[email protected]/stable:1299b26cefc5e04411a3481abe1c8b63227e2896 - Cache
    Build requirements
        cmake_installer/[email protected]/stable from 'conan-center' - Cache
    Build requirements packages
        cmake_installer/[email protected]/stable:60b04a80ac4dd5c23f1acffacc679e9902e636e5 - Download
    
    cmake_installer/[email protected]/stable: Retrieving package 60b04a80ac4dd5c23f1acffacc679e9902e636e5 from remote 'conan-center'
    Please log in to "conan-center" to perform this action. Execute "conan user" command.
    If you don't have an account sign up here: https://bintray.com/signup/oss
    Remote 'conan-center' username:
    

    I assume it should work without accounts for fetching recipes..?

    type: bug component: bintray priority: high 
    opened by Talkless 63
  • [bug] conan.bintray.com has invalid/no certificate and fails in redirection loop

    [bug] conan.bintray.com has invalid/no certificate and fails in redirection loop

    Steps to reproduce (Include if Applicable)

    Since this morning (12.04.2021) I can't connect to https://conan.bintray.com/ successfully. One problem is that it seems there is no valid server certificate on the server side. After disabling verify_ssl in the remotes there will be an exception because of too many redirects:

    ERROR: Exceeded 30 redirects.. [Remote: conan-center]
    

    Same error can be reproduced by open the URL via the webbrowser of your choice.

    Is this because of the shutdown for bintray? Isn't this dated to 1st May?

    opened by snailcatcher 57
  • Feature/environment propagate

    Feature/environment propagate

    Changelog: Feature: New environment management, with correct value capturing and restoring on deactivate Docs: https://github.com/conan-io/docs/pull/2060

    New approach to environment (env-vars) management:

    VirtualEnv

    • New generator that will generate buildenv.xxx and runenv.xxx
    • Collects info from dependencies visiting the graph, not by the accumulated deps_env_info
    • It also collects information from profiles
    • It automatically collects runtime information based on cpp_info definition: exes, bin-paths, lib_paths to define PATH, LD_LIBRARY_PATH, DYLD_LIBRARY_PATH envvars

    ConanfileDependencies

    • Entry point in each recipe to visit its dependencies
    • Access to dependencies conanfiles is restricted by a "read-only" conanfilewrapper

    CMakeGen

    • Proof of concept of an aggregated meta-generator that includes CMakeToolchain, CMakeDeps and VirtualEnv
    • CMake build helper will integrate calls to VirtualEnv generated files
    opened by memsharded 57
  • "Case insensitive filesystem can't manage this"

    I tried to install OpenCV3 as a dependency and found OpenCV/[email protected]/stable, which I added to my requires section.

    There was no package available for my platform (Windows 10, Visual C++ 2015 32-bit), so I went with --build missing. The build seems to have run to completion, but right at the end, I got:

    ERROR: Requested 'OpenCV/[email protected]/stable' but found case incompatible 'opencv'
    Case insensitive filesystem can't manage this
    

    (I tried other OpenCV packages, but they all had problems of one sort or another. I think this one is the most promising, if I can find a solution to the above problem.)

    opened by JPGygax68 55
  • Incorrect handling of MSVC versions

    Incorrect handling of MSVC versions

    I am using Conan v1.7.4.

    I've created a static library Conan package using VS 2017 15.7 and updated my Visual Studio to 15.8. After the update, Conan failed to detect a change in the compiler version and did not perform recompilation of the static library. Instead, it just downloaded the same package that was built with VS 2017 15.7. However, when linking to that package from VS 2017 15.8, I am getting following linker error:

    LINK : fatal error C1047: The object or library file 'C:\Users\dodo\.conan\data\LogAndTimer\1.0.1\microblink\stable\package\8b2772668ccbf879d34a70a9d54c78ce70f38a1b\lib\LogAndTimer.lib' was created with an older compiler than other objects; rebuild old objects and libraries
    2>LINK : fatal error LNK1257: code generation failed
    

    However, the debug build does work (details how to reproduce are below).

    I think the problem is in how Conan handles MSVC versions - instead of using the actual compiler version (CMake detects MSVC 19.14.26431.0 in VS 2017 15.7 and MSVC 19.15.26729.0 in VS 2017 15.8), it uses the version of Visual Studio (VS 2017 is compiler version 15, according to Conan).

    I suggest that Conan should use the MSVC compiler version under compiler.version setting and additionally have compiler.vs_version for Visual Studio version. The reason for that is that sometimes libraries built with one version of MSVC are not compatible with later versions of MSVC, especially if you use link time code generation flag (/LTCG link flag and /GL compile flag).

    How to reproduce

    • Install Visual Studio 2017, but not the latest update (at the time of writing, this is 15.8.4). For example, use VS 2017 15.7.x or 15.6.x.
    • Create a conan package that contains a single static library. Make sure that Release build type of that package is compiled with /GL compile flag.
    • Create an application that consumes that static library and make sure it works in Release build type (the app should be linked with /LTCG linker flag).
    • Update Visual Studio 2017 to the latest version (15.8.4 at the time of writing).
    • Build your application

    Expected behaviour

    • conan install after updating the VS should calculate different hash for the library and should rebuild it, thus making sure application linking will succeed

    Actual behaviour

    • Conan does not detect version change in the MSVC compiler and uses the incompatible binary, thus causing linker error described above.

    Now, the main question is - could this be fixed without breaking existing conan VS packages, or we need to wait for Conan 2.0 (and disable LTCG until this issue gets fixed).

    Also, as a side question, is there a possibility to configure Conan to trigger rebuild of libraries even when a minor/bugfix version of the compiler changes, regardless of the compiler being used (e.g. if we update GCC from 8.1.0 to 8.1.1, we would like to rebuild all our binaries, even though they are link-compatible). This would get us the benefits of always having binaries built with the latest compiler to get the latest bugfixes and performance improvements - this benefit is also mentioned in conan documentation:

    What happens if we have a library that we can be built with GCC 4.8 and will preserve the ABI compatibility with GCC 4.9? (This kind of compatibility is easier to achieve for example for pure C libraries).

    Although it could be argued that it is worth rebuilding with 4.9 too -to get fixes and performance improvements-. Let’s suppose that we don’t want to create 2 different binaries, but just a single built with GCC 4.8 which also needs to be compatible for GCC 4.9 installations.

    type: feature stage: queue priority: high complex: high whiteboard 
    opened by DoDoENT 52
  • Better Python code reuse

    Better Python code reuse

    Currently, it is possible to reuse Python code by requiring it and tools.pythonpath. This is a bit limited because it's not possible to import the module before the ConanFile is loaded, which makes it impossible to do some things (such as subclassing ConanFile). I tried with a profile as well:

    [build_requires]
    mypymodule/[email protected]/stable
    

    .. but this doesn't work either. Maybe it would make sense for build_requires in profiles to be parsed before the conanfile is loaded. Or a separate, special section just for python deps of the conanfile. Is there a better way? What are your thoughts?

    opened by sztomi 50
  • pkg-config for dependency detection

    pkg-config for dependency detection

    While working on some packages I have run into a problem with some configure scripts that relies only on pkg-config to find it's dependencies (i.e. just setting CFLAGS doesn't help it find the dependency). I started by hacking in support for setting PKG_CONFIG_PATH in ConfigureEnvironment like:

    diff --git a/conans/client/configure_environment.py b/conans/client/configure_environment.py
    index cc67480..84953e3 100644
    --- a/conans/client/configure_environment.py
    +++ b/conans/client/configure_environment.py
    @@ -27,6 +27,7 @@ class ConfigureEnvironment(object):
             """
             command = ""
             if self.os == "Linux" or self.os == "Macos":
    +            pkgconfigpath = 'PKG_CONFIG_PATH="%s"' % ":".join(self._deps_cpp_info.lib_paths)
                 libs = 'LIBS="%s"' % " ".join(["-l%s" % lib for lib in self._deps_cpp_info.libs])
                 archflag = "-m32" if self.arch == "x86" else ""
                 ldflags = 'LDFLAGS="%s %s"' % (" ".join(["-L%s" % lib
    @@ -55,7 +56,7 @@ class ConfigureEnvironment(object):
                                                         debug, include_flags)
                 include_paths = ":".join(['"%s"' % lib for lib in self._deps_cpp_info.include_paths])
                 headers_flags = 'C_INCLUDE_PATH=%s CPP_INCLUDE_PATH=%s' % (include_paths, include_paths)
    -            command = "env %s %s %s %s %s" % (libs, ldflags, cflags, cpp_flags, headers_flags)
    +            command = "env %s %s %s %s %s %s" % (libs, ldflags, cflags, cpp_flags, headers_flags, pkgconfigpath)
             elif self.os == "Windows" and self.compiler == "Visual Studio":
                 cl_args = " ".join(['/I"%s"' % lib for lib in self._deps_cpp_info.include_paths])
                 lib_paths = ";".join(['"%s"' % lib for lib in self._deps_cpp_info.lib_paths])
    

    and then making sure that I copied the .pc files into to the lib directory. This worked fine and the packages was now found. The problem is that the .pc file "lies" and doesn't point to the $HOME/.conan/data/[dependency]... path but rather to /usr/local or whatever the default prefix is. This lead to another problem where it picked up the wrong library (on in /usr/local instead of ~/.conan).

    So now I wonder if this can be done even better. Since we have information in package_info about what to link and the include directories etc we could write our own .pc file and point it to the right directory and we could add it to ~/.conan/data/pkg-config or something and it could have a .pc file for all installed packages.

    Is this something we want to do? And in that case where should this code be added, it has to be done somewhere where the final package path is resolved and that the pc file is regenerated if we get a new path.

    opened by tru 49
  • Issues with proxies

    Issues with proxies

    I've started Conan server in my organization's local network. For external sites (like github) proxy must be used, but not for computers in local network. So, I have there env variables:

    HTTP_PROXY=http://proxy.domain:3128
    HTTP_PROXY=https://proxy.domain:3128
    NO_PROXY=localhost,127.0.0.1,*.domain,192.168.*
    

    With these variables I can create packages with recipes in my local cache (and this recipes can download external sources), but cannot download recipes and prebuilt packages from organization's Conan server.

    I've tried to set same settings in conan.conf, but had no luck. Also I've tried to use Conan server domain name and/or IP address in NO_PROXY with same result:

    > conan search -r <remotename> "OpenCV*"
    ERROR: Permission denied for user: '<username>'. [Remote: <remotename>]
    

    But if I disable all proxies (comment in conan.conf and unset env variables), it works just fine:

    Existing package recipes:
    
    OpenCV/[email protected]/testing
    

    Conan v. 1.0.1, OS: Arch Linux, CentOS 6, Windows 10.

    Feedback please! 
    opened by leugenea 47
  • [bug] cmake generator does not write build requirements info when using dual profiles

    [bug] cmake generator does not write build requirements info when using dual profiles

    Environment Details (include every applicable attribute)

    • Operating System+version: macOS Big Sur
    • Conan version: develop (1.33.0-dev)
    • Python version: 3.8.5

    Steps to reproduce (Include if Applicable)

    With this conanfile.py:

    from conans import ConanFile, CMake, tools
    
    
    class BugConan(ConanFile):
        name = "bug"
        version = "0.1"
        license = "<Put the package license here>"
        author = "<Put your name here> <And your email here>"
        url = "<Package recipe repository url here, for issues about the package>"
        description = "<Description of Bug here>"
        topics = ("<Put some tag here>", "<here>", "<and here>")
        settings = "os", "compiler", "build_type", "arch"
        options = {"shared": [True, False], "fPIC": [True, False]}
        default_options = {"shared": False, "fPIC": True}
        generators = "cmake"
    
        def config_options(self):
            if self.settings.os == "Windows":
                del self.options.fPIC
    
        def build_requirements(self):
            self.build_requires("doctest/2.3.8")
    
        def source(self):
            pass
    
        def build(self):
            pass
    
        def package(self):
            pass
    
        def package_info(self):
            pass
    

    Run conan install . --profile:host=default --profile:build=default

    The generated conanbuildinfo.cmake does not contain doctest targets, but it does when conan install . --profile=default is used.

    type: bug stage: in-progress 
    opened by theodelrieu 45
  • Fix full_deploy Failure on Skipped Packages

    Fix full_deploy Failure on Skipped Packages

    Changelog: Bugfix: Resolve full_deploy exception when attempting to copy "Skip'd" requirements. Docs: https://github.com/conan-io/docs/pull/XXXX

    fixes #12218

    • [X] Refer to the issue that supports this Pull Request.
    • [x] If the issue has missing info, explain the purpose/use case/pain/need that covers this Pull Request.
    • [X] I've read the Contributing guide.
    • [x] I've followed the PEP8 style guides for Python code.
    • [ ] I've opened another PR in the Conan docs repo to the develop branch, documenting this one.
    opened by beenjohn 0
  • [bug][2.0] full_deploy of Skip'd requirements

    [bug][2.0] full_deploy of Skip'd requirements

    When deploying an application (gnuradio) to a target folder, transitive dependencies not required at runtime break my installs due to the dep.package_folder=None. It looks like any requied, non-build package marked "Skip" in the dependency graph has package_folder=None in the deployer.

    Ex: zlib/1.2.12#... - Skip

    Is this desired functionality (i.e. My recipes are misconfigured), or a potential bug in full_deploy?

    I'm in the process of tracing the logic for Skipping a requirement, but figured I'd ask here in the event someone is familiar with my problem.

    The DEBUG prints in the command output are print(dep.package_folder, new_folder). I can include the conanfile if desired, but it's a lengthy dependency tree so I held off for now.

    Command:

    conan install --requires=gnuradio/[email protected] --deploy=full_deploy -of=/apps/gnuradio

    Environment:

    arch=x86_64
    build_type=Release
    compiler=gcc
    compiler.cppstd=gnu17
    compiler.libcxx=libstdc++11
    compiler.version=9
    os=Linux
    os.distro=Ubuntu20.04
    

    Command Output:

    ...
    virtual: Conan built-in full deployer to /apps/gnuradio
    DEBUG: /root/.conan2/p/73babd2cee08d654/p /apps/gnuradio/host/gnuradio/3.10.4.0/Release/x86_64
    DEBUG: /root/.conan2/p/06e437af43aba52d/p /apps/gnuradio/host/volk/2.5.0/Release/x86_64
    DEBUG: /root/.conan2/p/e9046e7f1ab78fd7/p /apps/gnuradio/host/boost/1.76.0/Release/x86_64
    DEBUG: None /apps/gnuradio/host/zlib/1.2.12/Release/x86_64
    Traceback (most recent call last):
      File "/usr/local/lib/python3.8/dist-packages/conan/cli/cli.py", line 170, in run
        command.run(self._conan_api, self._commands[command_argument].parser, args[0][1:])
      File "/usr/local/lib/python3.8/dist-packages/conan/cli/command.py", line 176, in run
        info = self._method(conan_api, parser, *args)
      File "/usr/local/lib/python3.8/dist-packages/conan/cli/commands/install.py", line 179, in install
        conan_api.install.install_consumer(deps_graph=deps_graph,
      File "/usr/local/lib/python3.8/dist-packages/conan/api/subapi/install.py", line 52, in install_consumer
        _do_deploys(self.conan_api, deps_graph, deploy, base_folder)
      File "/usr/local/lib/python3.8/dist-packages/conan/api/subapi/install.py", line 97, in _do_deploys
        deployer(conanfile=conanfile, output_folder=deploy_folder)
      File "/usr/local/lib/python3.8/dist-packages/conan/api/subapi/install.py", line 121, in full_deploy
        shutil.copytree(dep.package_folder, new_folder)
      File "/usr/lib/python3.8/shutil.py", line 557, in copytree
        return _copytree(entries=entries, src=src, dst=dst, symlinks=symlinks,
      File "/usr/lib/python3.8/shutil.py", line 465, in _copytree
        srcname = os.path.join(src, srcentry.name)
      File "/usr/lib/python3.8/posixpath.py", line 76, in join
        a = os.fspath(a)
    TypeError: expected str, bytes or os.PathLike object, not NoneType
    

    full_deploy (conan/api/subapi/install.py:100) source:

    def full_deploy(conanfile, output_folder):
        """
        Deploys to output_folder + host/dep/0.1/Release/x86_64 subfolder
        """
        # TODO: This deployer needs to be put somewhere else
        # TODO: Document that this will NOT work with editables
        import os
        import shutil
    
        conanfile.output.info(f"Conan built-in full deployer to {output_folder}")
        for dep in conanfile.dependencies.values():
            folder_name = os.path.join(dep.context, dep.ref.name, str(dep.ref.version))
            build_type = dep.info.settings.get_safe("build_type")
            arch = dep.info.settings.get_safe("arch")
            if build_type:
                folder_name = os.path.join(folder_name, build_type)
            if arch:
                folder_name = os.path.join(folder_name, arch)
            new_folder = os.path.join(output_folder, folder_name)
            rmdir(new_folder)
            print(dep.package_folder, new_folder)
            shutil.copytree(dep.package_folder, new_folder)
            dep.set_deploy_folder(new_folder)
    

    Changing the full_deploy method to include the below allows the deploy and run successfully.

    if dep.package_folder is None:
            continue
    
    opened by beenjohn 3
  • [question] Conan integration with custom architectures

    [question] Conan integration with custom architectures

    We use "custom architectures" which are actually aliases to real archs. For example, when we build for the NVIDIA Jeston Nano we set the arch in the conan profile to nano. To do this we need to tweak the settings.yml file to include all our our custom archs. We do this since our build system differentiates all the platforms we target using CMAKE_SYSTEM_PROCESSOR, which following the previous example, gets set to nano when we target that platform. This may not be the best way of doing it, but it is the way it is done, so we adapted conan to our needs.

    This has worked fine for us for over two years, with only some small changes required to the autotools based recipes to pass a host=actualTriplet to the configure method of AutoToolsBuildEnvironment object.

        @property
        def _host(self):
            """Get host from conan profile. If None conan will try to detect it automatically"""
            return os.environ.get("CHOST")
    
    .....
    
        self._autotools.configure(args=args, host=self._host)
    

    Where CHOST is set on the host profile.

    Recently I tried to build a new Conan 2.x-compatible recipe and realized this is no longer possible since the AutotoolsToolchain errors out because it doesn't know how to generate the triplet. Again following the nano example, we get:

    	tc = AutotoolsToolchain(self)
    	ConanException: Unknown 'nano' machine, Conan doesn't know how to translate it to the GNU triplet, please report at  https://github.com/conan-io/conan/issues
    

    I'm wondering if you have any recommendations on how to move forward with this. Would it be possible to make AutotoolsToolchain honor the CHOST env variable? I'm not really sure if that variable is widely adopted as standard. But any method of specifying the triplet instead of relying on conan to figure it out would work for us. I'd love to see something that can be specified on the profiles so I don't have to keep tweaking the autotools-based recipes to include the snippet above.

    Thanks in advance.

    stage: triaging 
    opened by ericriff 1
  • [bug] Error with CMakePresets on build missing package

    [bug] Error with CMakePresets on build missing package

    When I try to build a missing package on Windows there is an error related with CMake presets.

    I reproduced the issue in a minimum example here:

    example repository

    It seems that fails only on windows, so I suppose that is something related with CMakeDeps/Visual studio environment setup.

    NOTES: There is a first call to vcvars (maybe done before build() method?) from conan side and then another from the tools.vcvars_dict call.

    If I remove the environment append section on build method it works correctly. But I do not understand the error related with the CMake preset version field.

    Environment:

    • Operating System+version: Windows 10 Home
    • Compiler+version: Visual Studio 16
    • Conan version: 1.52.0
    • Python version: 3.10.0

    Steps to reproduce

    conan export lib
    conan install -pr:h profile_win -pr:b profile_win -b "hello" app
    

    Logs

    hello/1.0.0: Calling export_sources()
    hello/1.0.0 export_sources() method: Copied 1 '.h' file: hello.h
    hello/1.0.0 export_sources() method: Copied 1 '.cpp' file: hello.cpp
    hello/1.0.0 export_sources() method: Copied 1 '.txt' file: CMakeLists.txt
    hello/1.0.0: A new conanfile.py version was exported
    hello/1.0.0: Folder: C:\Users\joaquinherrero\.conan\data\hello\1.0.0\_\_\export
    hello/1.0.0: Using the exported files summary hash as the recipe revision: 6e66b54a72edf10b2610f9ebff57a5c0
    hello/1.0.0: Package recipe modified in export, forcing source folder removal
    hello/1.0.0: Use the --keep-source, -k option to skip it
    hello/1.0.0: Exported revision: 6e66b54a72edf10b2610f9ebff57a5c0
    Configuration (profile_host):
    [settings]
    arch=x86_64
    arch_target=x86_64
    build_type=Release
    compiler=Visual Studio
    compiler.cppstd=17
    compiler.runtime=MD
    compiler.toolset=v142
    compiler.version=16
    os=Windows
    os_target=Windows
    [options]
    *:shared=False
    [build_requires]
    [env]
    [conf]
    tools.cmake.cmaketoolchain:generator=Ninja Multi-Config
    
    Configuration (profile_build):
    [settings]
    arch=x86_64
    arch_target=x86_64
    build_type=Release
    compiler=Visual Studio
    compiler.cppstd=17
    compiler.runtime=MD
    compiler.toolset=v142
    compiler.version=16
    os=Windows
    os_target=Windows
    [options]
    *:shared=False
    [build_requires]
    [env]
    [conf]
    tools.cmake.cmaketoolchain:generator=Ninja Multi-Config
    
    hello/1.0.0: Forced build from source
    conanfile.py (app/1.0.0): Installing package
    Requirements
        hello/1.0.0 from local cache - Cache
    Packages
        hello/1.0.0:f26537b056c9ff213dcc2874372b233408a3e04e - Build
    
    Installing (downloading, building) binaries...
    hello/1.0.0: WARN: Build folder is dirty, removing it: C:\Users\joaquinherrero\.conan\data\hello\1.0.0\_\_\build\f26537b056c9ff213dcc2874372b233408a3e04e
    hello/1.0.0: Configuring sources in C:\Users\joaquinherrero\.conan\data\hello\1.0.0\_\_\source\.
    hello/1.0.0: Copying sources to build folder
    hello/1.0.0: Building your package in C:\Users\joaquinherrero\.conan\data\hello\1.0.0\_\_\build\f26537b056c9ff213dcc2874372b233408a3e04e
    hello/1.0.0: Generator 'CMakeDeps' calling 'generate()'
    hello/1.0.0: Calling generate()
    hello/1.0.0: Aggregating env generators
    hello/1.0.0: Calling build()
    **********************************************************************
    ** Visual Studio 2019 Developer Command Prompt v16.11.5
    ** Copyright (c) 2021 Microsoft Corporation
    **********************************************************************
    [vcvarsall.bat] Environment initialized for: 'x64'
    **********************************************************************
    ** Visual Studio 2019 Developer Command Prompt v16.11.5
    ** Copyright (c) 2021 Microsoft Corporation
    **********************************************************************
    [vcvarsall.bat] Environment initialized for: 'x64'
    CMake Error: Could not read presets from C:/Users/joaquinherrero/.conan/data/hello/1.0.0/_/_/build/f26537b056c9ff213dcc2874372b233408a3e04e: Unrecognized "version" field
    hello/1.0.0:
    hello/1.0.0: ERROR: Package 'f26537b056c9ff213dcc2874372b233408a3e04e' build failed
    hello/1.0.0: WARN: Build folder C:\Users\joaquinherrero\.conan\data\hello\1.0.0\_\_\build\f26537b056c9ff213dcc2874372b233408a3e04e\build
    ERROR: hello/1.0.0: Error in build() method, line 68
            self.run(cmd_cmake_config)
            ConanException: Error 1 while executing cmake --preset default```
    opened by joaquinherrero-facephi 0
  • [question] Any recommendation for managing conanfile.py of multiple git repo&versions?

    [question] Any recommendation for managing conanfile.py of multiple git repo&versions?

    Background:

    I have some git projects, and a simple conanfile for each of them, placed at the root of repository which runs git clone, dependency install, cmake build and package. For example, the following conanfile.py is

    # conanfile.py in {PROJECT_DIR}
    class MyConan(ConanFile):
    
        name = "MyPackage"
        version = "0.1"
        requires = [......]
    
        def source(self):
            pass # run git clone with "-b v0.1"
    
        def build(self):
            pass # build with cmake
    
        def package(self):
            ........
    

    There is a painful workflow that when the main branch code changes, I'll modify the version string in conanfile.py from "0.1" -> "0.2" for example. And finally tag "v0.2" on the commit.

    Questions

    I'm asking for the best practice.

    • Can I simpify somehow for avoiding changing conanfile.py all the time?

    • Should conanfiles be managed in a centuralized repository or placed separately in code bases?

    • [ ] I've read the CONTRIBUTING guide.

    type: question 
    opened by wyl1232792 1
  • [question] Should options affect private dependencies?

    [question] Should options affect private dependencies?

    Suppose I have PkgA/1.0 that depends on PkgB/2.0 and PkgC/1.0. PkgC/1.0 in turn privately depends on PkgB/1.0. Now if I set -o PkgB:option=value while creating PkgA, both PkgB/2.0 and private PkgB/1.0 are affected. Is it expected? For me it makes private dependencies almost unusable.

    type: question 
    opened by db4 3
Releases(2.0.0-beta3)
  • 2.0.0-beta3(Sep 12, 2022)

    • Feature: Decouple test_package from create (https://github.com/conan-io/conan/pull/12046)
    • Feature: Warn if special chars in exported refs (https://github.com/conan-io/conan/pull/12053)
    • Feature: Improvements in MSBuildDeps traits (https://github.com/conan-io/conan/pull/12032)
    • Feature: Added support for CLICOLOR_FORCE env var, that will activate the colors in the output if the value is declared and different to 0 (https://github.com/conan-io/conan/pull/12028)
    • Fix: Call source() just once for all configurations (https://github.com/conan-io/conan/pull/12050)
    • Fix: Fix deployers not creating output_folder (https://github.com/conan-io/conan/pull/11977)
    • Fix: Fix build_id() removal of require (https://github.com/conan-io/conan/pull/12019)
    • Fix: If Conan fails to load a custom command now it fails with a useful error message (https://github.com/conan-io/conan/pull/11720)
    • Bugfix: If the 'os' is not specified in the build profile and a recipe, in Windows, wanted to run a command (https://github.com/conan-io/conan/pull/11728)
    Source code(tar.gz)
    Source code(zip)
  • 1.52.0(Aug 31, 2022)

    • Feature: Added mechanism to create .pc files for build requirements. (https://github.com/conan-io/conan/pull/11979). Docs: :page_with_curl:
    • Feature: Add MSBuild().build(.., targets=["target1"]) argument to new MSBuild. (https://github.com/conan-io/conan/pull/11968). Docs: :page_with_curl:
    • Feature: Refactored PkgConfigDeps code. (https://github.com/conan-io/conan/pull/11955)
    • Feature: Removed warning messages from PkgConfigDeps if any duplicated *.pc file. (https://github.com/conan-io/conan/pull/11955)
    • Feature: Add is_msvc(..., build_context=False) argument. (https://github.com/conan-io/conan/pull/11949). Docs: :page_with_curl:
    • Feature: Support remotes.json in Conan 1.X. (https://github.com/conan-io/conan/pull/11936). Docs: :page_with_curl:
    • Feature: Add BUILD_TESTING=OFF to CMakeToolchain presets if tools.build:skip_test. (https://github.com/conan-io/conan/pull/11935). Docs: :page_with_curl:
    • Feature: Allow traits in self.requires() for 2.0 compatibility. (https://github.com/conan-io/conan/pull/11934). Docs: :page_with_curl:
    • Feature: Make the version of the Conan client available under conan and make it a Version object so it can be compared. (https://github.com/conan-io/conan/pull/11928). Docs: :page_with_curl:
    • Feature: Add ability to pass additional arguments to conan.tools.scm.Git.clone(). (https://github.com/conan-io/conan/pull/11921). Docs: :page_with_curl:
    • Feature: Promote to_apple_arch in the new conan.tools.apple module. (https://github.com/conan-io/conan/pull/11915). Docs: :page_with_curl:
    • Feature: Add export_conandata_patches tool. (https://github.com/conan-io/conan/pull/11911). Docs: :page_with_curl:
    • Feature: Fail sooner and with a meaningful error if the specified required version is not satisfied. (https://github.com/conan-io/conan/pull/11908)
    • Feature: Implement cmake_layout(..., build_folder="build) build folder argument. (https://github.com/conan-io/conan/pull/11889). Docs: :page_with_curl:
    • Feature: Add new members to ConanFileInterface for self.dependencies access. (https://github.com/conan-io/conan/pull/11868). Docs: :page_with_curl:
    • Feature: Defines the PACKAGE_ROOT_<package> variable in XcodeDeps generated files. (https://github.com/conan-io/conan/pull/11818). Docs: :page_with_curl:
    • Feature: Added clang 16 to settings. (https://github.com/conan-io/conan/pull/11780)
    • Feature: Allow the authorization process in conan_server to be customized, just like authentication. (https://github.com/conan-io/conan/pull/11776). Docs: :page_with_curl:
    • Fix: Change conan.tools.files.get/download default checksums to None, instead of empty string. (https://github.com/conan-io/conan/pull/11939)
    • Fix: When the layout() is declared in the recipe, the files such as conainfo.txt, conanbuildinfo.txt were written in the test_package folder, now there are written in the generators_folder. (https://github.com/conan-io/conan/pull/11820)
    • Bugfix: Fix conversion if options passed in compatibility() method. (https://github.com/conan-io/conan/pull/11991). Docs: :page_with_curl:
    • Bugfix: Prevent mutation of loaded data from conanfile.yml if accesses multiple times during the same run when calling apply_conandata_patches(). (https://github.com/conan-io/conan/pull/11860)
    • Bugfix: Do not skip pycache folder if CONAN_KEEP_PYTHON_FILES. (https://github.com/conan-io/conan/pull/11828)
    • Bugfix: Added + and - symbols to be replaced by _ in XML element names. (https://github.com/conan-io/conan/pull/11826)
    • Bugfix: The tool.scm.Version model has been ported from 2.X to keep the same behavior in Conan 1.X. (https://github.com/conan-io/conan/pull/11823)
    • Bugfix: Fixed cpp_std flags when using C++20. (https://github.com/conan-io/conan/pull/11819)
    • Bugfix: Use "android-" format for the ANDROID_PLATFORM argument to be compatible with old NDK versions. (https://github.com/conan-io/conan/pull/11799)
    • Bugfix: Fix XcodeDeps component handling in transitive dependencies (https://github.com/conan-io/conan/pull/11772)
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(22.59 MB)
    conan-win-32.exe(14.69 MB)
    conan-win-64.exe(15.26 MB)
  • 1.51.3(Aug 18, 2022)

    • Fix: The tool is_apple_os can be imported from conan.tools.apple and receives an instance of Conanfile. (https://github.com/conan-io/conan/pull/11896). Docs: :page_with_curl:
    • Fix: Prevent None folders to be processed in the cpp_info. (https://github.com/conan-io/conan/pull/11893)
    • Fix: CMakeDeps now generates CMake variables as XXX_INCLUDE_DIR in the XXXX-data.cmake for the global cpp_info even if components are declared in the recipe. It is obtained by merging the components cpp_info into a global one. (https://github.com/conan-io/conan/pull/11874)
    • Bugfix: Fixed the cmake_pathsgenerator to set the root of the packages to the CMAKE_MODULE_PATH and CMAKE_PREFIX_PATH (https://github.com/conan-io/conan/pull/11883)
    • Bugfix: The CMakeDeps generator was not managing correctly the IMPORTED LOCATION of the libraries for different build_type. (https://github.com/conan-io/conan/pull/11859)
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(22.57 MB)
    conan-win-32.exe(14.68 MB)
    conan-win-64.exe(15.25 MB)
  • 1.50.2(Aug 11, 2022)

  • 1.51.2(Aug 11, 2022)

  • 1.51.1(Aug 9, 2022)

    • Feature: The self.info.settings and self.info.options now allow the get_safe("foo") as it is available in self.settings and self.options. (https://github.com/conan-io/conan/pull/11803)
    • Fix: Add conan.errors to hidden pyinstaller imports. (https://github.com/conan-io/conan/pull/11817)
    • Fix: Fix choco install invokation. (https://github.com/conan-io/conan/pull/11810)
    • Fix: Add conan.tools.system.package_manager to hidden pyinstaller imports. (https://github.com/conan-io/conan/pull/11806)
    • Fix: Add conan.tools.system as hidden-import to pyinstaller.py, so it is bundled with the installer. (https://github.com/conan-io/conan/pull/11805)
    • Bugfix: Update cmake_layout build and generators folders to honor os path format. (https://github.com/conan-io/conan/pull/11809)
    • Bugfix: create -kb wasn't setting up conanfile.generators_folder correctly. (https://github.com/conan-io/conan/pull/11804)
    • Bugfix: Legacy cpp_info for consumers was losing information in case of depending on a package with a layout. (https://github.com/conan-io/conan/pull/11790)
    • Bugfix: Refactored CMakeDep using always targets instead of lists. (https://github.com/conan-io/conan/pull/11788)
    • Bugfix: Fix toolchainFile key not found with CMake presets. (https://github.com/conan-io/conan/pull/11759)
    • Bugfix: The CMakeDeps generator failed for consumers with CMake projects doing an add_subdirectory with two different find_package calls to the same package, one in the main CMakeLists.txt and the other in the subdirectory. (https://github.com/conan-io/conan/pull/11756)
    • Bugfix: The CMakeDeps generator stopped to fill the XXX_LIBRARIES CMake variable, especially when using components. (https://github.com/conan-io/conan/pull/11756)
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(22.57 MB)
    conan-win-32.exe(14.67 MB)
    conan-win-64.exe(15.24 MB)
  • 1.51.0(Jul 28, 2022)

    • Feature: Update system package manager db right before install, instead before check (https://github.com/conan-io/conan/pull/11716)
    • Feature: Do the package manager update just in mode install and ignore if mode is check. (https://github.com/conan-io/conan/pull/11712). Docs: :page_with_curl:
    • Feature: The AutotoolsToolchain attributes .cxxflags, .cflags, .ldflags and .defines can be read at any moment, now is not needed to call .environment() to get them calculated. In the other hand, if you want to add additional flags the following attributes have to be used: .extra_cxxflags, .extra_cflags, .extra_ldflags and .extra_defines (https://github.com/conan-io/conan/pull/11678). Docs: :page_with_curl:
    • Feature: Changed CMakeDeps generator so the global target made for a package with components is a target linked with the targets of the components, instead of a target made from merging cpp_info objects from the components. (https://github.com/conan-io/conan/pull/11673). Docs: :page_with_curl:
    • Feature: Support for components in MSBuildDeps. (https://github.com/conan-io/conan/pull/11669). Docs: :page_with_curl:
    • Feature: The CMakePreset.json now contains toolset and architecture items when using Ninja generator and msvc compiler so the IDE (Visual Studio) can set the correct compiler (vcvars) automatically. (https://github.com/conan-io/conan/pull/11666)
    • Feature: Introduced a new conf tools.cmake.cmaketoolchain.presets:max_schema_version to generate CMakePresets.json and CMakeUserPresets.json compatible with the specified json schema version. The minimum value supported is >=2. (https://github.com/conan-io/conan/pull/11655). Docs: :page_with_curl:
    • Feature: Added objc_args/objc_link_args/objcpp_args/objcpp_link_args to MesonToolchain for Objective-C/C++ language. (https://github.com/conan-io/conan/pull/11632). Docs: :page_with_curl:
    • Feature: Adding default directories to MesonToolchain. (https://github.com/conan-io/conan/pull/11618). Docs: :page_with_curl:
    • Feature: Provide Path accessors in Conanfile. (https://github.com/conan-io/conan/pull/11585)
    • Feature: Introduced a validate_build() method in the recipes to validate if the package can be built according to self.settings and self.options instead of self.info.settings and self.info.options that it is used to validate the binary. (https://github.com/conan-io/conan/pull/11580). Docs: :page_with_curl:
    • Feature: Add ability to download files in the local filesystem using file:// URIs. (https://github.com/conan-io/conan/pull/11569). Docs: :page_with_curl:
    • Feature: Added MesonDeps as a new generator to create an extra file with all the GNU flags from all the dependencies. Meson build-helper will add that one (if exists) to complement the created one by MesonToolchain. (https://github.com/conan-io/conan/pull/11557). Docs: :page_with_curl:
    • Feature: Added a new self.folders.subproject for layout() to be able to define layouts that goes up to the parent or siblings folders, together with the self.folders.root = "..". (https://github.com/conan-io/conan/pull/11556). Docs: :page_with_curl:
    • Feature: Adding new msys2_ucrt64, msys2_mingw64, msys2_clang64 subsystems in os.subsystem for Windows. (https://github.com/conan-io/conan/pull/11530)
    • Fix: Add conan.tools.scm as hidden-import to pyinstaller.py, so it is bundled with the installer. (https://github.com/conan-io/conan/pull/11677)
    • Fix: The cmake_build_modules property can only be declared in the self.cpp_info, not in components, where will be ignored. (https://github.com/conan-io/conan/pull/11673). Docs: :page_with_curl:
    • Fix: Fix Dnf and Yum to accept 100 as a return code. (https://github.com/conan-io/conan/pull/11668)
    • Fix: Get the cpu count for cgroup2 from /sys/fs/cgroup/cpu.max. (https://github.com/conan-io/conan/pull/11667). Docs: :page_with_curl:
    • Fix: Improve opensuse detection in tool.system.package_manager. (https://github.com/conan-io/conan/pull/11660)
    • Fix: Add raspbian to default tools.system.package_manager package manager mapping. (https://github.com/conan-io/conan/pull/11654). Docs: :page_with_curl:
    • Fix: Allow templates for conan new to contain Readme.md and LICENSE.txt files. (https://github.com/conan-io/conan/pull/11645)
    • Fix: Remove conan_message() in CMakeDeps. (https://github.com/conan-io/conan/pull/11625)
    • Fix: In conans.tools.collect_libs and conan.tools.files.collect_libs, avoids to list other flavors (version, soversion) of the same dylib on macOS, so that behavior is consistent on Linux & macOS. (https://github.com/conan-io/conan/pull/11527). Docs: :page_with_curl:
    • Bugfix: The AutotoolsToolchain now clears None values from the attributes .cxxflags, .cflags, .ldflags and .defines. (https://github.com/conan-io/conan/pull/11678). Docs: :page_with_curl:
    • Bugfix: The CMakePresets.json file contained invalid paths (mixing / and \) for Windows that caused issues when using Visual Studio. (https://github.com/conan-io/conan/pull/11652)
    • BugFix: Avoid LocalDebuggerEnv overflows in MSBuildDeps due to addition of PATH env-var. (https://github.com/conan-io/conan/pull/11631)
    • Bugfix: Fix frameworkdirs not taken into account in XcodeDeps generator. (https://github.com/conan-io/conan/pull/11617)
    • Bugfix: CMakeToolchain avoid setting CMAKE_INSTALL_XXX variables if the values are not defined. (https://github.com/conan-io/conan/pull/11614)
    • Bugfix: Use correct build target in CMake.test() for the Ninja Multi-Config generator. (https://github.com/conan-io/conan/pull/11594)
    • Bugfix: The CMakeToolchain was crashing when building for Android os a package that is removing the compiler.libcxx (C library). (https://github.com/conan-io/conan/pull/11586)
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(22.76 MB)
    conan-win-32.exe(14.67 MB)
    conan-win-64.exe(15.24 MB)
  • 1.50.1(Jul 28, 2022)

  • 2.0.0-beta2(Jul 27, 2022)

    • Feature: Add traits support in MSBuildDeps (https://github.com/conan-io/conan/pull/11680)
    • Feature: Add traits support in XcodeDeps (https://github.com/conan-io/conan/pull/11615)
    • Feature: Let dependency define package_id modes (https://github.com/conan-io/conan/pull/11441)
    • Feature: Add conan.conanrc file to setup the conan user home (https://github.com/conan-io/conan/pull/11675)
    • Feature: Add core.cache:storage_path to declare the absolute path where you want to store the Conan packages (https://github.com/conan-io/conan/pull/11672)
    • Feature: Add tools for checking max cppstd version (https://github.com/conan-io/conan/pull/11610)
    • Feature: Add a post_build_fail hook that is called when a build fails (https://github.com/conan-io/conan/pull/11593)
    • Feature: Add pre_generate and post_generate hook, covering the generation of files around the generate() method call (https://github.com/conan-io/conan/pull/11593)
    • Feature: Brought conan config list command back and other conf improvements (https://github.com/conan-io/conan/pull/11575)
    • Feature: Added two new arguments for all commands -v for controlling the verbosity of the output and --logger to output the contents in a json log format for log processors (https://github.com/conan-io/conan/pull/11522)
    Source code(tar.gz)
    Source code(zip)
  • 1.50.0(Jun 29, 2022)

    • Feature: VirtualBuildEnv and VirtualRunEnv always generate files, even if empty. (https://github.com/conan-io/conan/pull/11536)
    • Feature: Improve dependency-cycle error to show the cycle. (https://github.com/conan-io/conan/pull/11519)
    • Feature: Aggregate transitive components information in the same package for XcodeDeps. (https://github.com/conan-io/conan/pull/11507). Docs: :page_with_curl:
    • Feature: map armv8 arch to ARM64 MSBuild platform in MSBuildDeps generator. (https://github.com/conan-io/conan/pull/11505)
    • Feature: Added CMakeToolchain(self).cache_variables to declare cache_variables in the configurePresets in the CMakePresets.json file. Conan reads them to call cmake with -D when using the CMake(self) build helper. These cache variables doesn't support multi-configuration generators. (https://github.com/conan-io/conan/pull/11503). Docs: :page_with_curl:
    • Feature: Simplify XcodeDeps generator. (https://github.com/conan-io/conan/pull/11491). Docs: :page_with_curl:
    • Feature: Created self.info.clear() as an alias of self.info.header_only() that will disappear in Conan 2.0. (https://github.com/conan-io/conan/pull/11478). Docs: :page_with_curl:
    • Feature: Allow options having ["ANY"] as a list like Conan 2.X. (https://github.com/conan-io/conan/pull/11449). Docs: :page_with_curl:
    • Feature: Ported cppstd related tools from 2.X branch. (https://github.com/conan-io/conan/pull/11446). Docs: :page_with_curl:
    • Feature: Added tool rm at conan.tools.files to remove files by pattern in a folder. (https://github.com/conan-io/conan/pull/11443). Docs: :page_with_curl:
    • Feature: Add support for test_requires in XcodeDeps. (https://github.com/conan-io/conan/pull/11415)
    • Feature: Add relative path support to Git SCM tool. (https://github.com/conan-io/conan/pull/11407)
    • Feature: Changed cmake_layout with a more natural and intuitive folders.build and folders.generators. Also changed the CMakePresets.json preset names. (https://github.com/conan-io/conan/pull/11391). Docs: :page_with_curl:
    • Fix: When using the layout() (as opt-in of some Conan 2.0 features) the default includedirs of the declared components is now ["include"] the default of the libdirs is ["lib"] and the default for the bindirs is ["bin"]. Previously, the components always had empty fields. Also the default of cpp_info.resdirs is now empty. (https://github.com/conan-io/conan/pull/11471). Docs: :page_with_curl:
    • Fix: The CMakeToolchain will fail if settings.build_type is specified in the 'tools.cmake.cmake_layout:build_folder' conf because the build_type is automatically managed by the CMakeToolchain and CMakeDeps generators by default. (https://github.com/conan-io/conan/pull/11470). Docs: :page_with_curl:
    • Fix: When using the new layout() feature of Conan 2.0, change the default cpp_info.frameworkdirs = ["Frameworks"] to cpp_info.frameworkdirs = [], because it is more common to not have packaged Apple frameworks and declaring a missing folder can cause issues with the new toolchains. (https://github.com/conan-io/conan/pull/11455). Docs: :page_with_curl:
    • Fix: The "include" paths list in a CMakeUserPresets.json, when performing a new conan install, are now checked, and in case some of them is a missing path (deleted directory), it is cleaned from the list. (https://github.com/conan-io/conan/pull/11414)
    • Fix: Avoid issues in VirtualRunEnv for undefined variables when set -e is defined. (https://github.com/conan-io/conan/pull/11361)
    • Bugfix: Fix logic in the generation of CMakeUserPresets.json - Conan will only generate the file if it did not previously exist, and will modify an existing one if the file was previously generated by conan. Existing CMakeUserPresets.json will be left untouched otherwise. (https://github.com/conan-io/conan/pull/11452). Docs: :page_with_curl:
    • Bugfix: Fix crash in pylint plugin with pylint >= 2.14.0. (https://github.com/conan-io/conan/pull/11445)
    • Bugfix: Allow using PkgConfigDeps for editable packages, not raising an error cause package_folder is None. (https://github.com/conan-io/conan/pull/11440)
    • Bugfix: The CMakePresets.json file, when performing several conan install commands, ended-up with several entries of duplicated "buildPresets" if used with a multi-configuration cmake generator. (https://github.com/conan-io/conan/pull/11414)
    • Bugfix: PkgConfigDeps creates *.pc files for test_requires. (https://github.com/conan-io/conan/pull/11390)
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(22.73 MB)
    conan-win-32.exe(14.65 MB)
    conan-win-64.exe(15.22 MB)
  • 2.0.0-beta1(Jun 20, 2022)

    • Feature: New graph model to better support C and C++ binaries relationships, compilation, and linkage.
    • Feature: New documented public Python API, for user automation
    • Feature: New build system integrations, more flexible and powerful, and providing transparent integration when possible, like CMakeDeps and CMakeToolchain
    • Feature: New custom user commands, that can be built using the public PythonAPI and can be shared and installed with conan config install
    • Feature: New CLI interface, with cleaner commands and more structured output
    • Feature: New deployers mechanism to copy artifacts from the cache to user folders, and consume those copies while building.
    • Feature: Improved package_id computation, taking into account the new more detailed graph model.
    • Feature: Added compatibility.py extension mechanism to allow users to define binary compatibility globally.
    • Feature: Simpler and more powerful lockfiles to provide reproducibility over time.
    • Feature: Better configuration with [conf] and better environment management with the new conan.tools.env tools.
    • Feature: Conan cache now can store multiple revisions simultaneously.
    • Feature: New extensions plugins to implement profile checking, package signing, and build commands wrapping.
    • Feature: Used the package immutability for an improved update, install and upload flows.
    Source code(tar.gz)
    Source code(zip)
  • 1.48.2(Jun 2, 2022)

  • 1.49.0(Jun 2, 2022)

    • Feature: Add install_substitutes to system package manager tools to be able to install sets of packages that are equivalent with different names for different distros. (https://github.com/conan-io/conan/pull/11367). Docs: :page_with_curl:
    • Feature: Do not automatically fix the shared libraries to add the rpath in Apple and add an external tool tools.apple.fix_apple_shared_install_name to do it optionally in recipes for packages that do not set the correct LC_ID_DYLIB. (https://github.com/conan-io/conan/pull/11365). Docs: :page_with_curl:
    • Feature: Allow pyyaml 6.0 dependency. (https://github.com/conan-io/conan/pull/11363)
    • Feature: Removed Python 2.7 support, as a result of an unsolvable security vulnerability in pyjwt. (https://github.com/conan-io/conan/pull/11357). Docs: :page_with_curl:
    • Feature: The conanfile.txt file now accepts a [layout] that can be filled with 3 predefined layouts: cmake_layout, vs_layout and bazel_layout. (https://github.com/conan-io/conan/pull/11348). Docs: :page_with_curl:
    • Feature: Remove the parameter copy_symlink_folders of the conan.tool.files.copy function and now, any symlink file pointing to a folder will be treated as a regular file. (https://github.com/conan-io/conan/pull/11330). Docs: :page_with_curl:
    • Feature: Tools can_run validates if it is possible to run a and application build for a non-native architecture. (https://github.com/conan-io/conan/pull/11321). Docs: :page_with_curl:
    • Feature: Add CMAKE_SYSROOT support for CMakeToolchain. (https://github.com/conan-io/conan/pull/11317). Docs: :page_with_curl:
    • Feature: Add --sysroot support for AutotoolsToolchain and remove support for cpp_info.sysroot in AutotoolsDeps. (https://github.com/conan-io/conan/pull/11317). Docs: :page_with_curl:
    • Feature: Add tools.build:sysroot conf. (https://github.com/conan-io/conan/pull/11317). Docs: :page_with_curl:
    • Feature: Improved cmake_layout and CMakePresets.json feature so you can manage different configurations using the same CMakeUserPresets.json not only for multi-config (Debug/Release) but for any set of settings specified in a new conf tools.cmake.cmake_layout:build_folder_vars that accepts a list of settings to use. e.g tools.cmake.cmake_layout:build_folder_vars=["settings.compiler", "options.shared"] (https://github.com/conan-io/conan/pull/11308). Docs: :page_with_curl:
    • Feature: Adds GCC 9.4 in the list of compilers supported in the settings file. (https://github.com/conan-io/conan/pull/11296)
    • Feature: Raise an error when running CMake if CMAKE_BUILD_TYPE is not defined and the generator is not multi-config. (https://github.com/conan-io/conan/pull/11294). Docs: :page_with_curl:
    • Feature: Implement a check_min_vs() checker that will work for both Visual Studio and msvc to allow migration from 1.X to 2.0 (https://github.com/conan-io/conan/pull/11292). Docs: :page_with_curl:
    • Feature: More flexibility in Autotools tools to override arguments and avoid all default arguments for make, autoreconf and configure. (https://github.com/conan-io/conan/pull/11284). Docs: :page_with_curl:
    • Feature: Add components support in XcodeDeps. (https://github.com/conan-io/conan/pull/11233). Docs: :page_with_curl:
    • Feature: Define new tools.cmake.cmaketoolchain:toolset_arch to define VS toolset x64 or x86 architecture (https://github.com/conan-io/conan/pull/11147). Docs: :page_with_curl:
    • Feature: Add new xtensalx7 option for the arch_target and arch settings, allowing targeting Espressif's ESP32-S2 and ESP32-S3 microcontrollers. (https://github.com/conan-io/conan/pull/11143)
    • Fix: Use interface_library with shared_library on Windows in BazelDeps. (https://github.com/conan-io/conan/pull/11355)
    • Fix: BazelDeps generator cannot find a lib when it's named with the basename of the lib file. (https://github.com/conan-io/conan/pull/11343)
    • Fix: Avoid empty paths in run environments PATH, LD_LIBRARY_PATH, DYLD_LIBRARY_PATH env-vars. (https://github.com/conan-io/conan/pull/11298)
    • Fix: Use DESTDIR argument in make install step instead of using the --prefix in configure. (https://github.com/conan-io/conan/pull/11284). Docs: :page_with_curl:
    • Fix: Add -DCMAKE_BUILD_TYPE to markdown generator instructions for CMake single config. (https://github.com/conan-io/conan/pull/11220)
    • Fix: Fixing --require-override over conditional requirements() method. (https://github.com/conan-io/conan/pull/11209)
    • Fix: Placing quote marks around echo statement in save_sh function. (https://github.com/conan-io/conan/pull/11123)
    • Bugfix: Force conan_server to use pyjwt>=2.4.0 to solve a known vulnerability. (https://github.com/conan-io/conan/pull/11350)
    • Bugfix: Fix case where CMakeDeps generator may use the wrong dependency name for transitive dependencies. (https://github.com/conan-io/conan/pull/11307)
    • Bugfix: Link cpp_info.objects first in CMakeDeps generator, as they can have dependencies to system_libs that need to be after them in some platforms to correctly link. (https://github.com/conan-io/conan/pull/11272)
    • Bugfix: Update cmake_layout generators folder to honor os path format. (https://github.com/conan-io/conan/pull/11252)
    • Bugfix: Catching KeyError if USERNAME is not set as env variable on Windows. (https://github.com/conan-io/conan/pull/11223)
    • Bugfix: Add Rocky Linux to with_yum. (https://github.com/conan-io/conan/pull/11212)
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(22.66 MB)
    conan-win-32.exe(14.57 MB)
    conan-win-64.exe(15.15 MB)
  • 1.48.1(May 18, 2022)

    • Fix: Add -DCMAKE_BUILD_TYPE to markdown generator instructions for CMake single config. (https://github.com/conan-io/conan/pull/11234)
    • Bugfix: Fix case where CMakeDeps assumes a module dependency when transitive dependencies do not define cmake_find_mode and fallback to a config one. (https://github.com/conan-io/conan/pull/11240)
    • Bugfix: Fixed broken apple-clang 13.0 compatibility. (https://github.com/conan-io/conan/pull/11231)
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(22.54 MB)
    conan-win-32.exe(14.55 MB)
    conan-win-64.exe(15.12 MB)
  • 2.0.0-alpha7(May 12, 2022)

  • 1.48.0(May 3, 2022)

    • Feature: Do not recommend to set PKG_CONFIG_PATH in markdown generator any more as it is already set by the AutotoolsToolchain. (https://github.com/conan-io/conan/pull/11120)
    • Feature: The cmake_layout declares folders.generators = "build/generators" that is common for different configurations, enabling CMakePresets.json to support different configurePresets and buildPresets for single-config and multi-config generators. (https://github.com/conan-io/conan/pull/11117). Docs: :page_with_curl:
    • Feature: The CMakeToolchain generator will create (if missing) a CMakeUserPresets.json if the CMakeLists.txt file is found in the root folder of the project. That file will include automatically the CMakePresets.json file contained at build/generators folder to allow CMake and IDEs to locate automatically the presets generated by Conan. (https://github.com/conan-io/conan/pull/11117). Docs: :page_with_curl:
    • Feature: The CMAKE_BUILD_TYPE is not adjusted in the conan_toolchain.cmake anymore, the configuration is moved to the CMakePresets.json preparing Conan to support multiple "single-config" configurations in one CMakePresets.json file (https://github.com/conan-io/conan/pull/11112). Docs: :page_with_curl:
    • Feature: The CMakePresets.json (file generated when specified the CMakeToolchain generator) is appended with a new buildPresets after a conan install with a different build_type when using a multiconfiguration generator like Visual Studio. (https://github.com/conan-io/conan/pull/11103). Docs: :page_with_curl:
    • Feature: Removed PlatformToolset and added conantoolchain.props from *.vcxproj file. (https://github.com/conan-io/conan/pull/11101)
    • Feature: Append the folder where the Conan generators were installed to PKG_CONFIG_PATH in AutotoolsToolchain. (https://github.com/conan-io/conan/pull/11063). Docs: :page_with_curl:
    • Feature: Adding new tools.env.virtualenv:powershell conf to opt-in to generate and use powershell scripts instead of .bat ones. (https://github.com/conan-io/conan/pull/11061). Docs: :page_with_curl:
    • Feature: Added new configuration fields: tools.apple:enable_bitcode, tools.apple:enable_arc and tools.apple:enable_visibility. (https://github.com/conan-io/conan/pull/10985). Docs: :page_with_curl:
    • Feature: Added new mechanism to inject common Xcode flags in CMakeToolchain generator if enabled Bitcode, ARC, or Visibility configurations. (https://github.com/conan-io/conan/pull/10985). Docs: :page_with_curl:
    • Feature: New templates for autotools exe and lib. (https://github.com/conan-io/conan/pull/10978). Docs: :page_with_curl:
    • Feature: Change build_script_folder argument from the configure to the Autotools build helper constructor. (https://github.com/conan-io/conan/pull/10978). Docs: :page_with_curl:
    • Feature: Replaced add_definitions by add_compile_definitions in conan.tools.cmake.* package. (https://github.com/conan-io/conan/pull/10974)
    • Feature: Added cxxflags, cflags, and ldflags attributes to MSBuildToolchain. (https://github.com/conan-io/conan/pull/10972). Docs: :page_with_curl:
    • Feature: Added mechanism to inject extra flags to MSBuildToolchain via [conf]. (https://github.com/conan-io/conan/pull/10972). Docs: :page_with_curl:
    • Fix: Allow Version(self.settings.compiler.version) to work for new tools.scm.Version``. (https://github.com/conan-io/conan/pull/11119)
    • Fix: Make shared libraries build with Autotools relocatable in Macos by patching the install name (LC_ID_DYLIB) and setting to @rpath/libname.dylib. (https://github.com/conan-io/conan/pull/11114). Docs: :page_with_curl:
    • Fix: using CMAKE_PROJECT_INCLUDE instead of presets to define variables that don't work in toolchains (https://github.com/conan-io/conan/pull/11098)
    • Fix: Fix quote escaping for defines in pkg_config generator. (https://github.com/conan-io/conan/pull/11073)
    • Fix: Fix quote escaping for defines in PkgConfigDeps generator. (https://github.com/conan-io/conan/pull/11073)
    • Fix: Quote add_compile_definitions correctly in CMakeToolchain. (https://github.com/conan-io/conan/pull/11057)
    • Fix: Escape quotes in definitions in CMakeToochain. (https://github.com/conan-io/conan/pull/11057)
    • Fix: Renamed self.base_source_folder to self.export_source_folder. That variable was introduced to reference the folder where the export_sources are. Currently, they are copied to the source folder but might be changed in the future to avoid copying them, so self.export_source_folder will always point to the folder containing the exports_sources. (https://github.com/conan-io/conan/pull/11055). Docs: :page_with_curl:
    • Fix: Ensure correct order for libraries in AutotoolsDeps. (https://github.com/conan-io/conan/pull/11054)
    • Fix: Escape quotes in XCodeDeps generator. (https://github.com/conan-io/conan/pull/11039)
    • Fix: The CMakeDeps generator now set INTERFACE_LINK_DIRECTORIES necessary when using auto link '#pragma comment(lib, "foo")' when the required library sets the property cmake_set_interface_link_directories. (https://github.com/conan-io/conan/pull/10984). Docs: :page_with_curl:
    • Fix: Renamed variables from the CMakeToolchain context in blocks to be all lowercase. e.g: CMAKE_OSX_ARCHITECTURES to cmake_osx_architectures. (https://github.com/conan-io/conan/pull/10981)
    • Bugfix: Avoid BazelDeps to find a library when a directory with the same name exists. (https://github.com/conan-io/conan/pull/11090)
    • Bugfix: The binaryDir field at CMakePresets.json is not set if the conanfile.build_folder is not available, avoiding a null value breaking the specification. (https://github.com/conan-io/conan/pull/11088)
    • Bugfix: Fixed unziping while using tools.get or tools.unzip with the strip_root=True in a tgz file with hardlinks inside. (https://github.com/conan-io/conan/pull/11074)
    • Bugfix: The method get_commit from the new conan.tools.scm.Git was capturing a wrong commit, for example, ignoring commits in subfolders when checking the parent folder. (https://github.com/conan-io/conan/pull/11015)
    • Bugfix: The json generator was showing "None" in the version field of the dependencies when the layout() method was used. (https://github.com/conan-io/conan/pull/10960)
    • Bugfix: The config default_python_requires_id_mode=unrelated_mode raised an error, it has been fixed. (https://github.com/conan-io/conan/pull/10959)
    • Bugfix: The CMakeToolchain now declares CACHE BOOL variables when a bool is stored in a variable: toolchain.variables["FOO"] = True. (https://github.com/conan-io/conan/pull/10941)
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(23.40 MB)
    conan-win-32.exe(14.55 MB)
    conan-win-64.exe(15.12 MB)
  • 1.47.0(Mar 31, 2022)

    • Feature: Renamed tools.build:cppflags to tools.build:defines and removed tools.build:ldflags (now it's the union between tools.build:sharedlinkflags and tools.build:exelinkflags in mostly all the cases). (https://github.com/conan-io/conan/pull/10928). Docs: :page_with_curl:
    • Feature: Adding cross-compilation for Android in MesonToolchain. (https://github.com/conan-io/conan/pull/10908). Docs: :page_with_curl:
    • Feature: Add extra flags via [conf] into XcodeToolchain. (https://github.com/conan-io/conan/pull/10906). Docs: :page_with_curl:
    • Feature: Preliminar support for CMakePresets.json. (https://github.com/conan-io/conan/pull/10903). Docs: :page_with_curl:
    • Feature: Added wrap_mode=nofallback project-option into MesonToolchain as default value. (https://github.com/conan-io/conan/pull/10884)
    • Feature: Added basic rmdir tool at conan.tools.files. (https://github.com/conan-io/conan/pull/10874). Docs: :page_with_curl:
    • Feature: Backport of 2.0 compatibility() recipe method. (https://github.com/conan-io/conan/pull/10868)
    • Feature: Add detection in meson toolchain for cross conditions and requirement of needs_exe_wrapper. Users may specify the exe wrapper in their meson.build now. (https://github.com/conan-io/conan/pull/10846)
    • Feature: Allow tested_reference_str to be None. (https://github.com/conan-io/conan/pull/10834)
    • Feature: New templates for the conan new command with bazel examples: bazel_exe and bazel_lib. (https://github.com/conan-io/conan/pull/10812). Docs: :page_with_curl:
    • Feature: Add some support for msvc compiler older versions. (https://github.com/conan-io/conan/pull/10808)
    • Feature: Added mechanism to inject extra flags via [conf] into several toolchains like AutotoolsToolchain, MesonToolchain and CMakeToolchain. (https://github.com/conan-io/conan/pull/10800). Docs: :page_with_curl:
    • Feature: Support selecting the target to build for XcodeBuild helper. (https://github.com/conan-io/conan/pull/10799). Docs: :page_with_curl:
    • Feature: Support for Xcode 13.3, iOS 15.4, watchOS 8.5 and tvOS 15.4. (https://github.com/conan-io/conan/pull/10797)
    • Feature: New modern "conan new --template=msbuild_lib|exe" for modern MSBuild VS integration. (https://github.com/conan-io/conan/pull/10760). Docs: :page_with_curl:
    • Feature: Added a checker for Conan 2.x deprecated from conans imports in pylint_plugin. (https://github.com/conan-io/conan/pull/10746). Docs: :page_with_curl:
    • Feature: New conan.tool.microsoft.unix_path to convert paths to any subsystem when using conanfile.win_bash. (https://github.com/conan-io/conan/pull/10743). Docs: :page_with_curl:
    • Feature: New from conan.errors import XXX new namespace to be ready for 2.0. (https://github.com/conan-io/conan/pull/10734). Docs: :page_with_curl:
    • Feature: Allow specifying default_options = {"pkg/*:option": "value"} or default_options = {"pkg*:option": "value"} instead of default_options = {"pkg:option": "value"} to make compatible recipes with 2.0. (https://github.com/conan-io/conan/pull/10731). Docs: :page_with_curl:
    • Feature: Add Clang 15 to default settings. (https://github.com/conan-io/conan/pull/10558)
    • Feature: When the layout is declared, the cwd() in the source() method will follow the declared self.folders.source but the exports_sources will still be copied to the base source folder. (https://github.com/conan-io/conan/pull/10091). Docs: :page_with_curl:
    • Fix: Add support for clang to msvc_runtime_flag(). It requires defining compiler.runtime = static/dynamic definition, same as modern msvc compiler setting. (https://github.com/conan-io/conan/pull/10898). Docs: :page_with_curl:
    • Fix: Generate the correct --target triple when building for Apple catalyst. (https://github.com/conan-io/conan/pull/10880)
    • Fix: The "conan.tools.files.patch" will (by default) look for the patch files in the self.base_source_folder instead of self.source_folder but will apply them with self.source_folder as the base folder. (https://github.com/conan-io/conan/pull/10875). Docs: :page_with_curl:
    • Fix: Setting CMAKE_SYSTEM_PROCESSOR for Apple cross-compiling including M1. (https://github.com/conan-io/conan/pull/10856). Docs: :page_with_curl:
    • Fix: Do not overwrite values for CMAKE_SYSTEM_NAME, CMAKE_SYSTEM_VERSION and CMAKE_SYSTEM_PROCESSOR set from the [conf] or the user_toolchain. (https://github.com/conan-io/conan/pull/10856). Docs: :page_with_curl:
    • Fix: Fix architecture translation from Conan syntax to build system in CMakeToolchain. (https://github.com/conan-io/conan/pull/10856). Docs: :page_with_curl:
    • Fix: Several improvements of the Bazel integration (Bazel, BazelToolchain, BazelDeps), new functional tests in all platforms. (https://github.com/conan-io/conan/pull/10812). Docs: :page_with_curl:
    • Fix: Conf.get() always returns default value if internal conf_value.value is None, i.e., it was unset. (https://github.com/conan-io/conan/pull/10800). Docs: :page_with_curl:
    • Fix: Set -DCMAKE_MAKE_PROGRAM when the generator is for MinGW and the conf tools.gnu:make_program is set. (https://github.com/conan-io/conan/pull/10770)
    • Fix: Remove unused clion_layout. (https://github.com/conan-io/conan/pull/10760). Docs: :page_with_curl:
    • Fix: AutotoolsToolchain adjust the runtime flag of msvc (MTd, MT, MDd or MD) to CFLAGS and CXXFLAGS when using the msvc as settings.compiler. (https://github.com/conan-io/conan/pull/10755). Docs: :page_with_curl:
    • Fix: Removed subsystem_path from the conan.tool.microsoft namespace, superseded by unix_path. (https://github.com/conan-io/conan/pull/10743). Docs: :page_with_curl:
    • Fix: Show an error message at conan install if the validate() method raises ConanInvalidConfiguration. (https://github.com/conan-io/conan/pull/10725)
    • BugFix: The find_dependency called internally in CMakeDeps generator to locate transitive dependencies now use the MODULE/NO_MODULE following the cmake_find_mode property when declared in the dependency. (https://github.com/conan-io/conan/pull/10917)
    • Bugfix: Fix virtualrunenv wrong build scope. (https://github.com/conan-io/conan/pull/10904)
    • BugFix: Make self.folders.root apply at package conan install . too. (https://github.com/conan-io/conan/pull/10842)
    • Bugfix: Fix call to undefined function for markdown generator when components add system_libs. (https://github.com/conan-io/conan/pull/10783)
    • Bugfix: solve build_policy=never bug when conan export-pkg --force and there already exists a package in the cache. (https://github.com/conan-io/conan/pull/10738)
    • Bugfix: Add transitive dependencies to generated Bazel BUILD files. (https://github.com/conan-io/conan/pull/10686)
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(23.34 MB)
    conan-win-32.exe(14.50 MB)
    conan-win-64.exe(15.07 MB)
  • 2.0.0-alpha6(Mar 28, 2022)

  • 1.46.2(Mar 18, 2022)

  • 1.46.1(Mar 17, 2022)

    • Feature: Added a checker for Conan 2.x deprecated from conans imports in pylint_plugin. (https://github.com/conan-io/conan/pull/10811)
    • Feature: Add apple-clang 13 major version to settings. (https://github.com/conan-io/conan/pull/10807)
    • Feature: Make apple-clang 13 version package-id compatible with 13.0. (https://github.com/conan-io/conan/pull/10807)
    • Feature: Autodetect only major version for apple-clang profile starting in version 13. (https://github.com/conan-io/conan/pull/10807)
    • Feature: Add clang 15 version to settings. (https://github.com/conan-io/conan/pull/10807)
    • Bugfix: Fix call to undefined function for markdown generator when components add system_libs. (https://github.com/conan-io/conan/pull/10810)
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(23.32 MB)
    conan-win-32.exe(14.48 MB)
    conan-win-64.exe(15.05 MB)
  • 2.0.0-alpha5(Mar 8, 2022)

  • 1.46.0(Mar 7, 2022)

    • Feature: Configuration field tools.cmake.cmaketoolchain:user_toolchain defined as list-like object (https://github.com/conan-io/conan/pull/10729). Docs: :page_with_curl:
    • Feature: Prepare Conan for search remote repos with mix of 1.X and 2.0 binaries. Conan 1.X will not list binaries (conan search <ref>) stored in remote repos that were created with Conan 2.0. (https://github.com/conan-io/conan/pull/10692)
    • Feature: Adding jinja rendering of global.conf config file. (https://github.com/conan-io/conan/pull/10687). Docs: :page_with_curl:
    • Feature: Improve markdown generator instructions. (https://github.com/conan-io/conan/pull/10673). Docs: :page_with_curl:
    • Feature: The CMakeToolchain and AutotoolsToolchain take into account the cpp.package info to set the output directories for libraries, executables, and so on when running cmake.install or make install. (https://github.com/conan-io/conan/pull/10672). Docs: :page_with_curl:
    • Feature: Added basic_layout, removed meson_layout and added argument src_folder to cmake_layoutas a shortcut for adjusting conanfile.folders.source. (https://github.com/conan-io/conan/pull/10659). Docs: :page_with_curl:
    • Feature: Adding self.base_source_folder for exports_sources explicit layouts. (https://github.com/conan-io/conan/pull/10654). Docs: :page_with_curl:
    • Feature: Adding root to layout model to allow conanfile.py in subfolders. (https://github.com/conan-io/conan/pull/10654). Docs: :page_with_curl:
    • Feature: Added new property component_version for PkgConfigDeps and legacy PkgConfig. (https://github.com/conan-io/conan/pull/10633). Docs: :page_with_curl:
    • Feature: Changed .pc file description field for components in PkgConfigDeps. (https://github.com/conan-io/conan/pull/10633). Docs: :page_with_curl:
    • Feature: Add sdk_version setting for Macos, iOS, watchOS and tvOS. (https://github.com/conan-io/conan/pull/10608). Docs: :page_with_curl:
    • Feature: Add new XcodeBuild build helper. (https://github.com/conan-io/conan/pull/10608). Docs: :page_with_curl:
    • Feature: Add new XcodeToolchain helper. (https://github.com/conan-io/conan/pull/10608). Docs: :page_with_curl:
    • Feature: Add compiler.version 12 for GCC in settings. (https://github.com/conan-io/conan/pull/10595)
    • Feature: Introduce new conan.tools.scm.Git helper, for direct use in export() method to capture git url and commit, and to be used in source() method to clone and checkout a git repo. (https://github.com/conan-io/conan/pull/10594). Docs: :page_with_curl:
    • Feature: New from conan.tools.files import update_conandata() helper to add data to conandata.yml in the export() method. (https://github.com/conan-io/conan/pull/10586). Docs: :page_with_curl:
    • Feature: Add CMake variables, cli arguments and native build system arguments to new conan.tools.cmake.CMake helper. (https://github.com/conan-io/conan/pull/10573). Docs: :page_with_curl:
    • Feature: Adding more functionality to ConfDefinition and Conf, something similar to ProfileEnvironment and Environment ones. (https://github.com/conan-io/conan/pull/10537). Docs: :page_with_curl:
    • Feature: Port conan.tools.Version to Conan 1.X. (https://github.com/conan-io/conan/pull/10536). Docs: :page_with_curl:
    • Feature: Port conan.tools.build.cross_building to Conan 1.X. (https://github.com/conan-io/conan/pull/10536). Docs: :page_with_curl:
    • Feature: New copy tool at conan.tools.files namespace that will replace the self.copy in Conan 2.0. (https://github.com/conan-io/conan/pull/10530). Docs: :page_with_curl:
    • Feature: Add recipe_folder to pylint plugin. (https://github.com/conan-io/conan/pull/10527)
    • Fix: Pin Markupsafe==2.0.1 for py27 and upgrade Jinja2>3 for py3, after Markupsafe latest 2.1 release broke Jinja2 2.11. (https://github.com/conan-io/conan/pull/10710)
    • Fix: Fixed templates for conan new with --template cmake_lib and --template cmake_exe to include Conan 2.0 compatible syntax. (https://github.com/conan-io/conan/pull/10706)
    • Fix: Moved new tool cross_building from conan.tool.cross_building to conan.tool.build to match the location in develop2. (https://github.com/conan-io/conan/pull/10706)
    • Fix: Don't compose folders in Xcode generator using dep.package_folder, now cpp_info.bindirs, cpp_info.includedirs, etc. are absolute. (https://github.com/conan-io/conan/pull/10694)
    • Fix: When the layout() method is declared, the self.package_folder in the recipe is now available even when doing a conan install ., pointing to the specified output folder (-of ) or the path of the conanfile if not specified. (https://github.com/conan-io/conan/pull/10655)
    • Fix: Fix creation path of deactivate scripts. (https://github.com/conan-io/conan/pull/10653)
    • Fix: Add support for [tool_requires] section in conanfile.txt. (https://github.com/conan-io/conan/pull/10642)
    • Fix: When layout() is defined, the exports will not be considered sources anymore, but only the exports_sources. The exports are used exclusively by the recipe, but not as package source. (https://github.com/conan-io/conan/pull/10625)
    • Fix: Make the source() method run inside the self.source_folder, in the same way build() runs in self.build_folder. But only for recipes that define the layout() method, to not break unless using layout(). (https://github.com/conan-io/conan/pull/10612). Docs: :page_with_curl:
    • Fix: Remove the --source-folder new argument to install and editable, not necessary at the moment. (https://github.com/conan-io/conan/pull/10590). Docs: :page_with_curl:
    • Fix: Fix conf True and False handling in tools.system.package_manage helpers. (https://github.com/conan-io/conan/pull/10583)
    • Fix: Change the CMakeToolchain message to use CMAKE_CURRENT_LIST_FILE. (https://github.com/conan-io/conan/pull/10552)
    • Fix: BazelDeps was generating invalid bazel files cause the static_library paths were absolute and not relative. (https://github.com/conan-io/conan/pull/10484)
    • Fix: BazelDeps was crashing when generating packages without libs cause the context was not checking the array size. (https://github.com/conan-io/conan/pull/10484)
    • Fix: Fix Premake test failing on Linux because the Premake executable isn't found. (https://github.com/conan-io/conan/pull/10250)
    • Bugfix: Fix MesonToolchain extra quotes in cpp_std (https://github.com/conan-io/conan/pull/10707)
    • Bugfix: Add missing system_libs management in AutotoolsDeps. (https://github.com/conan-io/conan/pull/10681)
    • Bugfix: GnuDepsFlags attributes like frameworks and frameworkdirs are only available for Apple OS. (https://github.com/conan-io/conan/pull/10675)
    • Bugfix: Remove tmp folders created in Conan while checking the output of a command and detecting the compiler. (https://github.com/conan-io/conan/pull/10663)
    • Bugfix: Fix conan_server circular import do to conan.tools namespace. (https://github.com/conan-io/conan/pull/10635)
    • bugfix: Fix meson_layout() issue with shared folders. (https://github.com/conan-io/conan/pull/10600)
    • Bugfix: Fix SystemPackageTool when mode=verify, it was still installing packages. (https://github.com/conan-io/conan/pull/10596)
    • Bugfix: self.build_folder not being computed even if layout() method is defined in local conan install. Close https://github.com/conan-io/conan/issues/10566 (https://github.com/conan-io/conan/pull/10567)
    • Bugfix: Fix conan_manifest.txt parse error when the filename has ":" in it. (https://github.com/conan-io/conan/pull/10492)
    • Bugfix: Use meson toolchain file from install folder. (https://github.com/conan-io/conan/pull/8965)
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(23.32 MB)
    conan-win-32.exe(14.48 MB)
    conan-win-64.exe(15.05 MB)
  • 1.43.4(Feb 18, 2022)

  • 2.0.0-alpha4(Feb 17, 2022)

  • 1.45.0(Feb 2, 2022)

    • Feature: Add system.package_manager tools to conan config list. (https://github.com/conan-io/conan/pull/10469). Docs: :page_with_curl:
    • Feature: Use system package manager helpers from conan.tools.system.package_manager. (https://github.com/conan-io/conan/pull/10467). Docs: :page_with_curl:
    • Feature: Add [tool_requires] section to profiles. (https://github.com/conan-io/conan/pull/10462)
    • Feature: Add meson_lib and meson_exe, conan new templates. (https://github.com/conan-io/conan/pull/10460). Docs: :page_with_curl:
    • Feature: Add is_msvc_static_runtime method to conan.tools.microsoft.visual to identify when using msvc with static runtime. (https://github.com/conan-io/conan/pull/10437). Docs: :page_with_curl:
    • Feature: Improve support for Visual Studio in AutotoolsToolchain. (https://github.com/conan-io/conan/pull/10429)
    • Feature: Make pkg-config tooling accessible under conan.tools.gnu.PkgConfig and conan.tools.gnu.PkgConfigDeps. (https://github.com/conan-io/conan/pull/10415)
    • Feature: Use .bazel suffix for generated Bazel files. (https://github.com/conan-io/conan/pull/10391). Docs: :page_with_curl:
    • Feature: New tools in conan.tools.system for invoking system package managers in recipes. (https://github.com/conan-io/conan/pull/10380). Docs: :page_with_curl:
    • Feature: Testing the expected PC files created when the component name matches with the root package one using either pkg_config or PkgConfigDeps generators. (https://github.com/conan-io/conan/pull/10344). Docs: :page_with_curl:
    • Feature: Better definition of clang compiler in Windows in CMakeToolchain. (https://github.com/conan-io/conan/pull/10333)
    • Feature: Add VxWorks to OSs in default settings.yml. (https://github.com/conan-io/conan/pull/10315). Docs: :page_with_curl:
    • Feature: Add is_msvc to validate if settings.compiler is Visual Studio and msvc compilers. (https://github.com/conan-io/conan/pull/10310). Docs: :page_with_curl:
    • Feature: os.sdk field is mandatory for CMakeToolchain and OS in ('Macos', 'iOS', 'watchOS', 'tvOS'). (https://github.com/conan-io/conan/pull/10300)
    • Feature: Adding --source-folder and --output-folder to conan editable and conan install to work with layout(). (https://github.com/conan-io/conan/pull/10274). Docs: :page_with_curl:
    • Feature: Adding clang 14 to settings.yml. Needed for emsdk package in Conan Center Index. (https://github.com/conan-io/conan/pull/10269)
    • Feature: PkgConfigDeps shows WARN messages if there are duplicated pkg_config_name and/or pkg_config_aliases. (https://github.com/conan-io/conan/pull/10263). Docs: :page_with_curl:
    • Feature: Improvements in MesonToolchain, including some cross-building functionality. (https://github.com/conan-io/conan/pull/10174)
    • Feature: Update content created by the markdown generator. (https://github.com/conan-io/conan/pull/9758). Docs: :page_with_curl:
    • Fix: Remove auto-detection of VS 2022 as msvc compiler, detect it as Visual Studio version 17. (https://github.com/conan-io/conan/pull/10457). Docs: :page_with_curl:
    • Fix: Do not report warning for duplicated component names in CMakeDeps. (https://github.com/conan-io/conan/pull/10456)
    • Fix: Let legacy Meson build helper use other backends apart from ninja. (https://github.com/conan-io/conan/pull/10447)
    • Fix: msvc_runtime_flag returns empty string instead of None. (https://github.com/conan-io/conan/pull/10424). Docs: :page_with_curl:
    • Fix: Parsing a url with query args in conan config install results in a bad filename that could fail. (https://github.com/conan-io/conan/pull/10423)
    • Fix: The argument patch_file from tools.files.patch is now relative to conanfile.source_folderby default, unless an absolute path to another location is provided, for example, to a path in the conanfile.build_folder. (https://github.com/conan-io/conan/pull/10408). Docs: :page_with_curl:
    • Fix: Use install folder for Bazel dependency paths. (https://github.com/conan-io/conan/pull/10391). Docs: :page_with_curl:
    • Fix: Enforce CMP0091 policy to NEW in CMakeToolchain. (https://github.com/conan-io/conan/pull/10390)
    • Fix: Add quotes around conan_message output variable so it is not modified. (https://github.com/conan-io/conan/pull/10388)
    • Fix: Add pathlib as hidden-import to pyinstaller.py, so it is bundled with the installer. (https://github.com/conan-io/conan/pull/10386)
    • Fix: Move imports of pre-defined layouts to their build-system domain. (https://github.com/conan-io/conan/pull/10385). Docs: :page_with_curl:
    • Fix: Allow cmake generator checks for Visual Studio 2022. (https://github.com/conan-io/conan/pull/10361)
    • Fix: Do not generate transitive .props for MSbuildDeps tool-requires. (https://github.com/conan-io/conan/pull/10350)
    • Fix: Manage spaces in [buildenv] profile definition. (https://github.com/conan-io/conan/pull/10343)
    • Fix: Add -debug to LDFLAGS in AutotoolsToolchain when necessary. (https://github.com/conan-io/conan/pull/10339)
    • Fix: Fix extra } characters in cppstd info message. (https://github.com/conan-io/conan/pull/10337)
    • Fix: Fix quotes in generated environment deactivation scripts. (https://github.com/conan-io/conan/pull/10325)
    • Fix: Fix the CMakeToolchain generated code, so it doesnt fail for -Werror --warn-unitilized. (https://github.com/conan-io/conan/pull/10292)
    • Fix: Fix spaces in settings.yml to prevent the YAML linter from complaining. (https://github.com/conan-io/conan/pull/10230)
    • Fix: Convert NewCppInfo folders to absolute. (https://github.com/conan-io/conan/pull/10207)
    • Fix: Improved CMakeToolchain robustness regarding find_file, find_path and find_program commands allowing better cross-build scenarios and better differentiation of the right context where to get, for example, executables (build vs host). (https://github.com/conan-io/conan/pull/10186). Docs: :page_with_curl:
    • Bugfix: Fix BazelDeps using absolute glob paths instead of relative. (https://github.com/conan-io/conan/pull/10478)
    • BugFix: Avoid BazelDeps exception when depending on a package without libs. Close https://github.com/conan-io/conan/issues/10471 (https://github.com/conan-io/conan/pull/10472)
    • Bugfix: Fix AttributeError: 'PackageEditableLayout' object has no attribute 'package_lock' that happened when sing package_revision_mode with editable packages (and lockfiles). (https://github.com/conan-io/conan/pull/10416)
    • Bugfix: Visual Studio 2022 auto-detected profile was incomplete. (https://github.com/conan-io/conan/pull/10322)
    • Bugfix: Fix the caching of ConanFile.dependencies at validate() time. (https://github.com/conan-io/conan/pull/10307)
    • Bugfix: Avoid package_id errors when using compatible_packages of repeated references (which can happen if using private dependencies). (https://github.com/conan-io/conan/pull/10266)
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(23.87 MB)
    conan-win-32.exe(14.68 MB)
    conan-win-64.exe(15.25 MB)
  • 2.0.0-alpha3(Jan 28, 2022)

  • 1.44.1(Jan 13, 2022)

    • Bugfix: The CMakeDeps generator now uses the property cmake_build_modules declared in components of the required packages not only in the root cpp_info. (https://github.com/conan-io/conan/pull/10326)
    • Bugfix: Adding missing hidden-imports to pyinstaller. Close https://github.com/conan-io/conan/issues/10318 (https://github.com/conan-io/conan/pull/10320)
    • Bugfix: Make pkg_config generator listen to root cpp_info properties. (https://github.com/conan-io/conan/pull/10312)
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(23.85 MB)
    conan-win-32.exe(14.67 MB)
    conan-win-64.exe(15.25 MB)
  • 1.43.3(Jan 13, 2022)

  • 1.44.0(Dec 29, 2021)

    • Feature: Add <PackageName>_LIBRARIES, <PackageName>_INCLUDE_DIRS, <PackageName>_INCLUDE_DIR, <PackageName>_DEFINITIONS and <PackageName>_VERSION_STRING variables in CMakeDeps. (https://github.com/conan-io/conan/pull/10227)
    • Feature: Adding a new Block to the CMakeToolchain now doesn't require inheriting CMakeToolchainBlock. (https://github.com/conan-io/conan/pull/10213). Docs: :page_with_curl:
    • Feature: Add build_modules and build_modules_paths to JsonGenerator. (https://github.com/conan-io/conan/pull/10203). Docs: :page_with_curl:
    • Feature: The CMakeToolchain is now prepared to apply several user toolchains. (https://github.com/conan-io/conan/pull/10178). Docs: :page_with_curl:
    • Feature: In the conanfile.py of the test_package, the reference being tested is always available at self.tested_reference_str. (https://github.com/conan-io/conan/pull/10171). Docs: :page_with_curl:
    • Feature: Introduced a new test_type value explicit so a user can declare explicitly the requires or build_requires manually (using self.tested_reference_str), it won't be automatically injected as a require. In Conan 2.0 the test_type attribute will be ignored, the behavior will be always explicit, so declaring test_type="explicit" will make the test recipe compatible with Conan 2.0. (https://github.com/conan-io/conan/pull/10171). Docs: :page_with_curl:
    • Feature: Introduced tool_requires attribute to provide a compatible way to migrate to Conan 2.0, where the current concept of build_requires has been renamed to tool_requires. (https://github.com/conan-io/conan/pull/10168). Docs: :page_with_curl:
    • Feature: Upgrade Conan python jinja requirement to v3.x. (https://github.com/conan-io/conan/pull/10159)
    • Feature: Provided several conan.tools.files functions to manage symlinks: Transform absolute to relative symlinks, remove broken symlinks, remove external symlinks and get the symlinks in a folder. These tools will help migrate to Conan 2.0 where the package files won't be automatically cleaned from broken absolute symlinks or external symlinks. (https://github.com/conan-io/conan/pull/10154). Docs: :page_with_curl:
    • Feature: Remove legacy folder setters in conanfile.xxxx_folder = yyy only used for testing. (https://github.com/conan-io/conan/pull/10153)
    • Feature: Add Git.version property to check the current git version, aligned with SVN.version. (https://github.com/conan-io/conan/pull/10114). Docs: :page_with_curl:
    • Feature: Add build_requires support in BazelDeps generators. (https://github.com/conan-io/conan/pull/9876)
    • Fix: Fix variable names set by CMakeDeps modules. (https://github.com/conan-io/conan/pull/10227)
    • Fix: Call to find_dependency in module mode to find transitive dependencies. (https://github.com/conan-io/conan/pull/10227)
    • Fix: remove rpath from .pc files generated by pkg_config & PkgConfigDeps generators. (https://github.com/conan-io/conan/pull/10192). Docs: :page_with_curl:
    • Fix: Deleted CMake warning for already existing targets. (https://github.com/conan-io/conan/pull/10150)
    • Bugfix: Fix passing component's linkflags in CMakeDepes generator (https://github.com/conan-io/conan/pull/10205)
    • Bugfix: AutotoolsToolchain was not passing the compiler to get_gnu_triplet function. (https://github.com/conan-io/conan/pull/10141)
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(23.80 MB)
    conan-win-32.exe(14.61 MB)
    conan-win-64.exe(15.18 MB)
  • 1.43.2(Dec 21, 2021)

    • Fix: Remove generator argument from cpp_info.set_property() method. (https://github.com/conan-io/conan/pull/10214). Docs: :page_with_curl:
    • Fix: Do not convert to cmake_build_modules property the legacy cpp_info.build_modules. (https://github.com/conan-io/conan/pull/10208)
    • Bugfix: Compiler msvc was not working for CMake legacy generators. (https://github.com/conan-io/conan/pull/10195)
    Source code(tar.gz)
    Source code(zip)
    conan-ubuntu-64.deb(23.73 MB)
    conan-win-32.exe(14.58 MB)
    conan-win-64.exe(15.16 MB)
Owner
Conan.io
Conan Package and Dependency Manager
Conan.io
OS-agnostic, system-level binary package manager and ecosystem

Conda is a cross-platform, language-agnostic binary package manager. It is the package manager used by Anaconda installations, but it may be used for

Conda 4.9k Oct 2, 2022
The Fast Cross-Platform Package Manager

The Fast Cross-Platform Package Manager part of mamba-org Package Manager mamba Package Server quetz Package Builder boa mamba Mamba is a reimplementa

Mamba 3.7k Sep 29, 2022
Package manager based on libdnf and libsolv. Replaces YUM.

Dandified YUM Dandified YUM (DNF) is the next upcoming major version of YUM. It does package management using RPM, libsolv and hawkey libraries. For m

null 1k Sep 23, 2022
A flexible package manager that supports multiple versions, configurations, platforms, and compilers.

Spack Spack is a multi-platform package manager that builds and installs multiple versions and configurations of software. It works on Linux, macOS, a

Spack 3k Sep 24, 2022
[DEPRECATED] YUM package manager

⛔ This project is deprecated. Please use DNF, the successor of YUM. YUM Yum is an automatic updater and installer for rpm-based systems. Included prog

null 110 Aug 24, 2022
Easy to use, fast, git sourced based, C/C++ package manager.

Yet Another C/C++ Package Manager Easy to use, fast, git sourced based, C/C++ package manager. Features No need to install a program, just include the

null 31 Sep 22, 2022
The delightful package manager for AppImages

⚡️ Zap The delightful package manager for AppImages Report bug · Request feature Looking for the older Zap v1 (Python) implementation? Head over to v1

Srevin Saju 328 Sep 27, 2022
Dotpkg - Package manager for your dotfiles

Dotpkg A package manager for your dotfiles. Usage First make sure to have Python

FW 4 Mar 18, 2022
:package: :fire: Python project management. Manage packages: convert between formats, lock, install, resolve, isolate, test, build graph, show outdated, audit. Manage venvs, build package, bump version.

THE PROJECT IS ARCHIVED Forks: https://github.com/orsinium/forks DepHell -- project management for Python. Why it is better than all other tools: Form

DepHell 1.7k Sep 22, 2022
A software manager for easy development and distribution of Python code

Piper A software manager for easy development and distribution of Python code. The main features that Piper adds to Python are: Support for large-scal

null 10 Jun 27, 2022
Workon - A simple project manager for conda, windows 10 and vscode

WORK ON A simple project manager for conda, windows 10 and vscode Installation p

Jesus Alan Hernandez Galvan 1 Jan 16, 2022
The Python Package Index

Warehouse Warehouse is the software that powers PyPI. See our development roadmap, documentation, and architectural overview. Getting Started You can

Python Packaging Authority 3k Sep 25, 2022
The Python package installer

pip - The Python Package Installer pip is the package installer for Python. You can use pip to install packages from the Python Package Index and othe

Python Packaging Authority 8.3k Sep 27, 2022
A Poetry plugin for dynamically extracting the package version.

Poetry Version Plugin A Poetry plugin for dynamically extracting the package version. It can read the version from a file __init__.py with: # __init__

Sebastián Ramírez 246 Sep 23, 2022
PokerFace is a Python package for various poker tools.

PokerFace is a Python package for various poker tools. The following features are present in PokerFace... Types for cards and their componen

Juho Kim 8 Mar 3, 2022
Example for how to package a Python library based on Cython.

Cython sample module This project is an example of a module that can be built using Cython. It is an upgrade from a similar model developed by Arin Kh

Juan José García Ripoll 4 Aug 28, 2022
Installer, package manager, build wrapper and version manager for Piccolo

Piccl Installer, package manager, build wrapper and version manager for Piccolo

null 1 Dec 19, 2021
A deployer and package manager for OceanBase open-source software.

OceanBase Deploy OceanBase Deploy (简称 OBD)是 OceanBase 开源软件的安装部署工具。OBD 同时也是包管理器,可以用来管理 OceanBase 所有的开源软件。本文介绍如何安装 OBD、使用 OBD 和 OBD 的命令。 安装 OBD 您可以使用以下方

OceanBase 52 Sep 18, 2022
A simple and easy to use Python's PIP configuration manager, similar to the Arch Linux's Java manager.

PIPCONF - The PIP configuration manager If you need to manage multiple configurations containing indexes and trusted hosts for PIP, this project was m

João Paulo Carvalho 10 Apr 25, 2022
ArinjoyTheDev 1 Jul 17, 2022