Conda-Forge dependency graph tracker and auto ticker
There are four scripts:
00-find-feedstocks.pywhich finds all the names of the current feedstocks. (#feedstocks/30 GH api calls)
01-make_graph.pywhich makes the DAG of packages and their dependencies using
networkxwith each recipe represented by a node. Important data from the
meta.yamlfor each recipe stuffed into the node
attrs. (single GH api call per feedstock)
02-graph-upstream.pyfinds versions for each recipe's upstream source. (potential 2 GH calls per feedstock (if on GH))
03-auto_tick.xshtakes each node which is out of date and creates a PR to bring the recipe up to date with the source. This requires
xonshand will skip CI for packages who's dependencies are also out of date. (multiple GH api calls)
These scripts will run on Travis from 4 different github repos as daily cron jobs and use
doctr to write the output data (the list of all conda-forge packages and the dependency graph) to the cf-graph repo.
GH rate limit is a major concern for this as there are ~4000 feedstocks and only 5000 API calls per hour.
Below are instructions for setting up a local installation for testing. They assume that you have conda installed and conda-forge is in your channel list.
conda create -y -n cf --file requirements/run --file requirements/test ipython source activate cf python setup.py install coverage run run_tests.py