Metadata-Version: 2.1
Name: conan-sword-and-sorcery
Version: 0.0.dev123
Summary: Utilities to work with conan.io stuf
Home-page: https://gitlab.com/jgsogo/conan-sword-and-sorcery
Author: jgsogo
Author-email: jgsogo@gmail.com
License: MIT
Description: Conan - Sword and Sorcery
        =========================
        
        > **Status**: beta version. Under development
        
        Utilities for [Conan The Frogarian](https://conan.io). At this moment it addressed
        following tasks for your conan recipes:
        
         * [Travis CI](https://travis-ci.org/) integration (with docker).
         * [Appveyor](http://www.appveyor.com/) integration.
         * Batch build for all local profiles.
        
        This project is just a refurbish of [conan-package-tools](https://github.com/conan-io/conan-package-tools)
        which is officially maintained by conan team.
        
        To install, just type (or clone and install this repo):
        
        ```shell
        $ pip install conan_sword_and_sorcery
        ```
        
        Index
        -----
        
         * [Batch build](#batch-builds): `run_ci`
           - [Local console](#local-console)
           - [Continuous integration systems](#continuous-integration-systems)
           - [Upload packages](#upload-packages)
        
        
        Batch builds
        ------------
        
        This is the main functionality, it allows you to build several configurations of
        your recipe and your compiler using one single command `run_ci`. It can be used
        from your local machine and from continuos integration systems:
        
        ```shell
        $ run_ci --help
        usage: run_ci [-h] [-v] [--dry-run] [--options CONAN_OPTIONS]
                      [--username CONAN_USERNAME] [--channel CONAN_CHANNEL]
                      conanfile
        
        Run CI for given conanfile
        
        positional arguments:
          conanfile             Path to conanfile.py
        
        optional arguments:
          -h, --help            show this help message and exit
          -v, --verbose         increases log verbosity for each occurence.
          --dry-run             do not create package (won't compile recipes)
          --options CONAN_OPTIONS
                                comma separated list of options from de conanfile.py
                                to conjugate
          --username CONAN_USERNAME
                                Username for package reference
                                xxx/x.y.z@<username>/xxxx
          --channel CONAN_CHANNEL
                                Channel for package reference
                                xxx/x.y.z@xxxxxx/<channel>
        ```
        
        After the compilation it will upload the packages if some conditions match (see below).
        
        ### Local console
        
        When used from local console, it will look for all your profile files defined in your
        `CONAN_USER_HOME/profiles` directory and trigger a build for them. If any options are
        given it will explode those and generate all the available combinations, e.g.:
        
        ```shell
        $ run_ci ..\conan-protobuf\conanfile.py --options=with_zlib,build_tests
        === Conan - Sword & Sorcery ===
        All combinations sum up to 8 jobs
        Jobs to run...
        +---------------+-----------+--------+--------------+-----------+---------------+-------------+
        | id            |   version | arch   | build_type   | runtime   | build_tests   | with_zlib   |
        |---------------+-----------+--------+--------------+-----------+---------------+-------------|
        | Visual Studio |        14 | x86_64 | Debug        | MDd       | True          | True        |
        | Visual Studio |        14 | x86_64 | Debug        | MDd       | True          | False       |
        | Visual Studio |        14 | x86_64 | Debug        | MDd       | False         | True        |
        | Visual Studio |        14 | x86_64 | Debug        | MDd       | False         | False       |
        | Visual Studio |        14 | x86_64 | Release      | MD        | True          | True        |
        | Visual Studio |        14 | x86_64 | Release      | MD        | True          | False       |
        | Visual Studio |        14 | x86_64 | Release      | MD        | False         | True        |
        | Visual Studio |        14 | x86_64 | Release      | MD        | False         | False       |
        +---------------+-----------+--------+--------------+-----------+---------------+-------------+
        
        [...]
        ```
        
        ### Continuous integration systems
        
        For CI systems jobs are driven using environment variables, same as conan-package-tools,
        so your existing `appveyor.yml` and `.travis.yml` files should work out of the box
        after installing this package and changing the execution line for the `run_ci` one.
        
        Available environment variables are:
        
         * `CONAN_USERNAME`
         * `CONAN_CHANNEL`
         * `CONAN_REMOTES`: comma separated list of additional remotes to look for dependencies
         * `CONAN_OPTIONS`: comma separated list of options, `run_ci` will explode all its
           combinations and perform those builds.
         * `CONAN_BUILD_PACKAGES`: comma separated list of dependencies to build from source.
         * For compilers (only meaningful combinations build be generated):
           - `CONAN_ARCHS`: architectures to build for, comma separated, e.g.: "x86,x86_64"
           - `CONAN_BUILD_TYPES`: comma separated, e.g.: "Release,Debug"
           - gcc:
             + `CONAN_GCC_VERSIONS`: comma separated, e.g.: "4.9,5,7"
           - Visual Studio:
             + `CONAN_VISUAL_VERSIONS`: comma separated, e.g.: "12,14"
             + `CONAN_VISUAL_RUNTIMES`: comma separated, e.g.: "MT, MD"
           - clang:
             + `CONAN_CLANG_VERSIONS`: comman separated, e.g.: "4.0,5.0"
           - apple-clang:
             + `CONAN_APPLE_CLANG_VERSIONS`: comman separated, e.g.: "8.1,9.0"
         * Specific to Travis CI:
           - Travis CI supports dockerized builds, so it will look for `CONAN_DOCKER_IMAGE`
             env variable and run compilations inside it. If no docker image is specified, but
             it is set `CONAN_USE_DOCKER=True` the the corresponding image to the compiler will
             be used from @lasote available ones (see [list here](https://github.com/conan-io/conan-docker-tools)).
        
        
        ### Upload packages
        
        After a successful `run_ci` execution it will try to upload the generated packages if
        some conditions are satisfied:
        
         * `CONAN_UPLOAD_ONLY_WHEN_STABLE`: will try to upload only if the channel is stable
         * `CONAN_STABLE_BRANCH_PATTERN` (regex): determine if the repository branch is stable,
           by default it is true for any given branch that follows a pattern like `stable/v1.2.3`,
           `stable/1.2rc2.dev32`,... ([more](./tests/test_ci/test_runners/test_StableBranchPattern.py)).
         * `CONAN_LOGIN_USERNAME` (defaults to `CONAN_USERNAME`).
         * `CONAN_UPLOAD`: URL of the repository to upload packages to (it also will be used as
           a remote for dependencies).
         * `CONAN_PASSWORD`: password to authenticate in the repository
        
        
Keywords: conan,C/C++,package,libraries,developer,manager,dependency,tool,c,c++,cpp
Platform: UNKNOWN
Classifier: Development Status :: 1 - Planning
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Build Tools
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Provides-Extra: test
