Contributing

There are many ways to contribute to Hunter:

  • Documentation
  • There is a newer version of an existing package? Notify us or send a pull request with an updated version.
  • Missing a package in Hunter? Add a new package
  • Resolve Issues
    • Can you provide an answer to an open question?
    • Can you reproduce the error?
    • Is the issue still relevant? Maybe the issue can be closed.

When contributing please follow the style guides:

Note

The minimum version of CMake for using Hunter is 3.2. Please check that you’re not using commands from newer versions (see documentation for 3.2).

Note

Before adding or updating a package in Hunter, the package is tested. Tests are done to check if the source can be downloaded, built and linked. Head over to our repository for per package CI testing contribution to see more.

Note

If you’re planning to introduce nontrivial feature it’s better to discuss design first, it will save a lot of time for both you and developers.

Reporting bugs

Hunter is CMake-based package manager so it’s assumed that CMake is installed and working correctly. Before reporting bugs please check:

  • Appropriate version of CMake is installed. See CMake version for Hunter.

  • Verify CMake, build tools and C/C++ compilers you’re planning to use. E.g. try to build simple CMake project (check this document in case you have troubles):

    # CMakeLists.txt
    
    cmake_minimum_required(VERSION 3.2)
    project(foo)
    
    add_executable(foo foo.cpp)
    
    // foo.cpp
    
    #include <iostream>
    
    int main() {
      std::cout << "Hello world!" << std::endl;
    }
    
  • If you are experiencing some download error please check F.A.Q.: How to fix download error?

If everything seems OK:

  • Run build again with HUNTER_STATUS_DEBUG=ON

  • Make sure you’re not using HUNTER_NO_TOOLCHAIN_ID_RECALCULATION

  • Take a look at first error reported by Hunter. If Hunter reports chain of errors the last error you see is not relevant!

  • Update to latest Hunter URL/SHA1 and check that issue you have hit is not already fixed/reported

  • Check this document if the first error you see is external.build.failed:

  • Remove irrelevant code from your example and report one problem at a time. Try to construct SSCCE. If you need more files than just CMakeLists.txt it’s better to create separate GitHub repository for easy copying of your example. It will be nice if you can reproduce the issue with the CI system like AppVeyor/Travis.

  • Do not remove ~/.hunter repository to try to fix the issue! Hunter designed to be correct and reproducible, there should be no stale/rotten artifacts inside that can affect his work. If the rm -rf ~/.hunter step fix the issue for you it means that either you are using Hunter wrongly or there is a bug somewhere. If you want to figure out what is the origin of the problem please do keep ~/.hunter directory.

  • Open an issue and provide next info:

    • CMake version you’re using cmake --version. CMake build from source?

    • OS (Linux, OSX, Windows)

    • Command line you’re using on generate step, e.g.

      cmake -H. -B_builds "-GVisual Studio 14 2015"
      
    • Are you using toolchain?

    • Add log until first error reported by Hunter