Differences between revisions 3 and 11 (spanning 8 versions)
Revision 3 as of 2013-10-21 08:21:48
Size: 1583
Editor: chapoton
Comment: + more
Revision 11 as of 2015-04-22 12:26:32
Size: 1574
Editor: chapoton
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
There are (at least) two ways to run your own private patchbot, that will report its results to the trac server.

In any case, it is better to have disk space available and a powerful enough machine.

== Run on all tickets ==
{{{
┌─┬──────┐
│░│ ⊙ ʘ │ SageMath patchbot
│░│ │
│░│ ──── │
╘═╧══════╛
}}}
== Running the patchbot ==
Line 9: Line 12:
 * Install the patchbot using "sage -i patchbot"  * Install the patchbot using '''sage -i patchbot'''
Line 11: Line 14:
 * Run the patchbot using "sage -patchbot"  * Run the patchbot using '''sage -patchbot'''
Line 15: Line 18:
== Run on chosen tickets == You can run a specific ticket by using '''sage -patchbot --ticket=N''' where N is a ticket number such as 12345.
Line 17: Line 20:
Here is a proposal on how to use the patchbot only on tickets you want to work on. Several other options are available, see '''sage -patchbot --help'''
Line 19: Line 22:
'''Warning''': this works for a mercurial setting, not tested for the new git setting. (2015-04) The latest available version can be installed using '''sage -i http://chapoton.perso.math.cnrs.fr/patchbot-2.3.3.spkg'''
Line 21: Line 24:
 * install the latest sage development release (download from http://www.sagemath.org/download-latest.html and make) == Configuration ==
Line 23: Line 26:
 * install the latest patchbot (clone from http://github.com/robertwb/sage-patchbot) You can use a specific configuration file using '''sage -patchbot --config=config_file.json'''
Line 25: Line 28:
 * in a terminal, inside your_sage_home_dir, "./sage -clone 0" The base patchbot configuration can be found at https://github.com/robertwb/sage-patchbot/blob/master/src/patchbot.py in the ''get_config'' function.
All of these settings can be overridden by passing a config file which is treated as a json overlay on these defaults.
Line 27: Line 31:
 * in a terminal: "cd sage-patchbot/src" then "ipython" For example, to let the tickets of user "niceguy" be given some priority, use:
Line 29: Line 33:
 * in ipython, "from patchbot import Patchbot", then "P = Patchbot('your_sage_home_dir',"http://patchbot.sagemath.org/",None,plugin_only=True)" or "P = Patchbot('your_sage_home_dir',"http://patchbot.sagemath.org/",None)"     {"bonus": {"niceguy": 200}}
Line 31: Line 35:
The first one will only run the plugins (much faster), the second one will run all the tests (much slower). To avoid the use of ccache, use:
Line 33: Line 37:
 * Then choose your favorite ticket number N and "P.test_a_ticket(N)"     {"use_ccache": "False"}
Line 35: Line 39:
It is important that sage is in its initial state when running the patchbot (sage-main branch with no patch applied). A more complex example of config file could be:

    {"bonus": {"niceguy": 200, "needs_work": -20},
    "use_ccache": "False",
    "safe_only": "True",
    "skip_base": "True"}

┌─┬──────┐
│░│ ⊙  ʘ │        SageMath patchbot
│░│      │
│░│ ──── │
╘═╧══════╛

Running the patchbot

You can let the patchbot choose the tickets it will run on.

  • Install the patchbot using sage -i patchbot

  • Run the patchbot using sage -patchbot

I will run forever, as long as it finds a ticket to work on. Tickets are only considered if their authors are trusted.

You can run a specific ticket by using sage -patchbot --ticket=N where N is a ticket number such as 12345.

Several other options are available, see sage -patchbot --help

(2015-04) The latest available version can be installed using sage -i http://chapoton.perso.math.cnrs.fr/patchbot-2.3.3.spkg

Configuration

You can use a specific configuration file using sage -patchbot --config=config_file.json

The base patchbot configuration can be found at https://github.com/robertwb/sage-patchbot/blob/master/src/patchbot.py in the get_config function. All of these settings can be overridden by passing a config file which is treated as a json overlay on these defaults.

For example, to let the tickets of user "niceguy" be given some priority, use:

  • {"bonus": {"niceguy": 200}}

To avoid the use of ccache, use:

  • {"use_ccache": "False"}

A more complex example of config file could be:

  • {"bonus": {"niceguy": 200, "needs_work": -20}, "use_ccache": "False", "safe_only": "True", "skip_base": "True"}