As part of the continuous quality assurance of the Numba project we test the compatibility of Numba with the
latests releases of specific dependents, i.e. libraries that make heavy use of
Numba. The target Numba version to test with, will be the latest version of the
git master
branch where the test suite passed. Configurations for both
CircleCI and Travis CI
are provided but currently (April 2020) only the CircleCI configuration is
active.
CircleCI: |
---|
This setup uses TexasBBQ under the hood.
In order to add a new target, you need to:
- Implement the logic for the target, by subclassing
texasbbq.CondaTarget
ortexasbbq.GitTarget
in the fileswitchboard.py
and overloading necessary methods. - Add an appropriate stanza in the CI configuration file
.circleci/config.yml
. - Updating the
README.rst
to reflect the current list of projects being tested. - Submit a pull-request on Github.
Normally, Numba is installed as a conda packge from https://anaconda.org using
a CondaSource
configuration. However, sometimes it can be useful to run the
integration-testing from a branch or a pull-request. The following
configuration demonstrates how to obtain the branch refactor_it
from the
Github fork at github.com/esc/numba
.
Please be advised that you must mirror the tags of the upstream Numba
repository at github.com/numba/numba
to the desired fork in such cases.
This is because the Numba version is determined from the closest reachable
tag in the Git history so recent tags must be present for the build system
to accurately determine the Numba version. Otherwise you may end up with a
nonsensical version number that is likely to cause confusion.
from texasbbq import GitSource
class NumbaSource(GitSource):
module = __name__
@property
def name(self):
return "numba"
@property
def clone_url(self):
return "git://github.com/esc/numba"
@property
def git_ref(self):
return "refactor_it"
@property
def conda_dependencies(self):
return ["-c numba/label/dev llvmlite",
"numpy pyyaml colorama scipy jinja2 cffi ipython ",
"gcc_linux-64 gxx_linux-64",
]
@property
def install_command(self):
return ("python setup.py build_ext -i && "
"python setup.py develop --no-deps")
Copyright 2019 Anaconda Inc. Licensed under the terms of the BSD two-clause
license. See the file LICENSE
for details.