1534
Comment: details
|
2619
|
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 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''' (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 works for a mercurial setting, not tested 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 "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 sage is in its initial state when running the patchbot (sage-main branch with no patch applied). | 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. |
┌─┬──────┐ │░│ ⊙ ʘ │ SageMath patchbot │░│ │ │░│ ──── │ ╘═╧══════╛
Running the patchbot
You can let the patchbot choose the tickets it will run on.
Install the patchbot using sage -i patchbot (warning: the current spkg in sage is not up-to-date)
(2015-04) The latest available version can be installed using sage -i http://chapoton.perso.math.cnrs.fr/patchbot-2.3.3.spkg
Run the patchbot using sage -patchbot
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.