Using the patchbot

Exherbo receives many patches and to ensure that none are lost we use the IRC bot zebrapig to keep track of them. Patches can be submitted by anyone and will be reviewed and, if accepted, pushed to the relevant repositories.

Patches must be generated through git format-patch with the find renames (-M) and find copies harder (-C -C) options.

You can upload your patch to a number of pastebins with the wgetpaste utility. Make sure to use the latest version and use wgetpaste’s default pastebin. Make sure that links for the pastebin service you are using do not expire. Expired links will be removed. Furthermore, use raw URL as generated by ”wgetpaste -r”.

An example of patch creation and upload of the top commit on the current branch:

git format-patch –stdout -M -C -C -1 | wgetpaste -r

There are three available commands. You can either use the long variant (e. g.!patchqueue) or the short one (e. g. !pq).

!patchqueue

!pq

Enqueue a patch. The format should be !pq <url> ::<repo> <optional description> (for example !pq https://raw.github.com/gist/2715329/ ::docs for a docs related patch). The URL should always return a raw/plaintext response and not HTML.

A patch series for one repository should be queued as one patch, so that committers don’t have to work out which patch depends on which other patch.

!patchdone

!pd

Remove a patch. The format is !pd <text> and all patches that match <text> will be removed.

!patchlist

!pl

Return the current list of patches. !pl <text> returns only those that match <text>. The bot also responds to this command in private (as pl) and you should always use it in private unless you want to refer to a specific patch in #exherbo.

You should always leave a short explanation if your patch is non-trivial.

Source code

The source code of zebrapig is available at git://git.freenode.net/eir.git.