Differences between revisions 1 and 13 (spanning 12 versions)
Revision 1 as of 2013-10-20 13:45:24
Size: 1471
Editor: chapoton
Comment: try to explain how one can use the patchbot
Revision 13 as of 2015-04-23 18:13:27
Size: 2190
Editor: chapoton
Comment: more doc
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.

In any case, it is better to have disk space available.

== 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''' (warning: the current spkg in sage is not up-to-date)
Line 11: Line 14:
# Run the patchbot using "sage -patchbot"  * (2015-04) The latest available version can be installed using '''sage -i http://chapoton.perso.math.cnrs.fr/patchbot-2.3.3.spkg'''
Line 13: Line 16:
I will run forever, as long as it finds a ticket to work on. Tickets are only considered if their authors are trusted.  * Run the patchbot using '''sage -patchbot'''
Line 15: Line 18:
== Run on chosen tickets == It will run forever, as long as it finds a ticket to work on. Tickets are only considered if their authors are trusted.
Line 17: Line 20:
Here is a proposal on how to use the patchbot only on tickets you want to work on. You can run a specific ticket by using '''sage -patchbot --ticket=N''' where N is a ticket number such as 12345.
Line 19: Line 22:
Warning: this is for a mercurial setting, not for the new git setting. Several other options are available, see '''sage -patchbot --help'''
Line 21: Line 24:
# install the latest sage development release (download from http://www.sagemath.org/download-latest.html and make) '''--skip-base''' will skip the check that the base sage installation is sane.
Line 23: Line 26:
# install the latest patchbot (clone from http://github.com/robertwb/sage-patchbot) '''--plugin-only''' will only build and run the plugins but not the tests (much quicker but less useful).
Line 25: Line 28:
# in a terminal, inside your_sage_home_dir, "./sage -clone 0" '''--safe-only''' will only test branches that only change files inside the directory "src/sage" (this is the case by default).
Line 27: Line 30:
# in a terminal: "cd sage-patchbot/src" then run "ipython" == Configuration ==
Line 29: Line 32:
# 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)" You can use a specific configuration file using '''sage -patchbot --config=config_file.json'''
Line 31: Line 34:
The first one will only run the plugins (much faster), the second one will run all the tests (much slower). For the complete list of configurable entities, see the code of the ''get_config'' function in https://github.com/robertwb/sage-patchbot/blob/master/src/patchbot.py.
The base patchbot configuration can be found there. All of these settings can be overridden by passing a config file which is treated as a json overlay on these defaults.
Line 33: Line 37:
# Then choose your favorite ticket number N and "P.test_a_ticket(N)" For example, to let the tickets of user "niceguy" be given some priority, use:
Line 35: Line 39:
It is important that the sage sources in sage-main are in their initial state when running the patchbot.     {"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}

Note that the booleans must be written with no capital first letter.

The config will be read again between every run, hence it allows live configuration of the patchbot.

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

Running the patchbot

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

It 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

--skip-base will skip the check that the base sage installation is sane.

--plugin-only will only build and run the plugins but not the tests (much quicker but less useful).

--safe-only will only test branches that only change files inside the directory "src/sage" (this is the case by default).

Configuration

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

For the complete list of configurable entities, see the code of the get_config function in https://github.com/robertwb/sage-patchbot/blob/master/src/patchbot.py. The base patchbot configuration can be found there. 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}

Note that the booleans must be written with no capital first letter.

The config will be read again between every run, hence it allows live configuration of the patchbot.