Differences between revisions 1 and 17 (spanning 16 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 17 as of 2015-04-23 21:18:48
Size: 2777
Editor: vdelecroix
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.

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 is safer to run the patchbot in an unused sage install.
Line 17: Line 20:
Here is a proposal on how to use the patchbot only on tickets you want to work on. It will run forever, as long as it finds a ticket to work on. Tickets are only considered if their authors are trusted.
Line 19: Line 22:
Warning: this is for a mercurial setting, not for the new git setting. Please consider registering [[buildbot/owners|here]] if you run a patchbot. It is helpful to know whom to contact.
Line 21: Line 24:
# install the latest sage development release (download from http://www.sagemath.org/download-latest.html and make) You can run a specific ticket by using '''sage -patchbot --ticket=N''' where N is a ticket number such as 12345.
Line 23: Line 26:
# install the latest patchbot (clone from http://github.com/robertwb/sage-patchbot) Several other options are available, see '''sage -patchbot --help'''
Line 25: Line 28:
# in a terminal, inside your_sage_home_dir, "./sage -clone 0" '''--skip-base''' will skip the check that the base sage installation is sane.
Line 27: Line 30:
# in a terminal: "cd sage-patchbot/src" then run "ipython" '''--plugin-only''' will only build and run the plugins but not the tests (much quicker but less useful).
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)" '''--safe-only''' will only test branches that only change files inside the directory "src/sage" (this is the case by default).
Line 31: Line 34:
The first one will only run the plugins (much faster), the second one will run all the tests (much slower). == Configuration ==
Line 33: Line 36:
# Then choose your favorite ticket number N and "P.test_a_ticket(N)" By default, the patchbot should run without needing to tune its configuration.
Line 35: Line 38:
It is important that the sage sources in sage-main are in their initial state when running the patchbot. You can use a specific configuration file using '''sage -patchbot --config=fullpath/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 give preference to a component you care about, use

    {"bonus": {"combinatorics": 200}}

To avoid the use of ccache, use:

    {"use_ccache": false}

To run only at night, use

    {"time_of_day": "22-7"}

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.

== Looking at patchbot activities ==

To see the last ticket tested by patchbots, you can have a look here

    http://patchbot.sagemath.org/ticket/0/

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

Running the patchbot

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

It is safer to run the patchbot in an unused sage install.

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

Please consider registering here if you run a patchbot. It is helpful to know whom to contact.

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

By default, the patchbot should run without needing to tune its configuration.

You can use a specific configuration file using sage -patchbot --config=fullpath/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 give preference to a component you care about, use

  • {"bonus": {"combinatorics": 200}}

To avoid the use of ccache, use:

  • {"use_ccache": false}

To run only at night, use

  • {"time_of_day": "22-7"}

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.

Looking at patchbot activities

To see the last ticket tested by patchbots, you can have a look here