Hi,

I have spent 4 hours and created a SymPy Bot:

https://github.com/sympy/sympy-bot

I have reused Tom's sympy-next, and took Vinzent's code to communicate
with github, and then I had to figure out how to post comments and
upload results to pastebin. Here are some examples of sympy-bot's
comments:

https://github.com/sympy/sympy/pull/268
https://github.com/sympy/sympy/pull/234

See the README for usage. It's super simple, you first list pull
requests, sorted by date:


$ ./sympy-bot list
#169: https://github.com/yuri-karadzhov/sympy 2238_sequences
      Author: "Yuri Karadzhov" <>
      Date  : Sun Apr  3 10:49:45 2011
#211: https://github.com/benjaminmcdonald/sympy 834_sequences
      Author: "unknown" <>
      Date  : Mon Apr 11 01:16:19 2011
#220: https://github.com/sherjilozair/sympy 887
      Author: "unknown" <>
      Date  : Tue Apr 12 18:46:07 2011
#222: https://github.com/saptman/sympy issue841
      Author: "unknown" <>
      Date  : Wed Apr 13 03:02:32 2011

...

#238: https://github.com/mattpap/sympy epath
      Author: "Mateusz Paprocki" <matt...@gmail.com>
      Date  : Thu Apr 28 10:00:38 2011
#236: https://github.com/ness01/sympy gruntz_eval
      Author: "Tom Bachmann" <>
      Date  : Thu Apr 28 10:04:17 2011
#225: https://github.com/saptman/sympy issue1100
      Author: "unknown" <>
      Date  : Thu Apr 28 10:08:28 2011
#234: https://github.com/smichr/sympy subs_cleanup
      Author: "Christopher Smith" <>
      Date  : Thu Apr 28 10:09:55 2011



you choose the number that you want to automatically review and do:

./sympy-bot review 234

it asks you for your github username + password, then tests the github
authentication, and if it works, creates a temporary directory,
downloads latest sympy, then runs sympy-next, which currently only
runs bin/tests (needs to be improved to run doctests + documentation
tests, e.g. an equivalent of "./setup.py test"), then gets the result
and uploads to pastebin (the only service that I managed to upload
from Python easily --- if you have a better solution, please send a
pull request), and then it sends a short comment into the pull
request, with a link to the results.


The idea is that it takes about 5s to type in your username +
password, and then you don't need to worry about this at all, just
keep it running in the background. Even if you forget in the meantime,
the results will be posted in the pull request, so other people can
see this. So I can imagine running this for all open pull request in
the evening, go to bed and see the results in the morning. Other
people (e.g. the author of the patch) can already use the results. If
it fails on your machine, it's obvious that your review is going to be
-1, so the author will be automatically notified.


This is the first step to create a fully automatic webservice. It will
require some time and resources, but with this current implementation
of sympy-bot, it is already useful and all of you can send patches to
it to improve it.

TODO list:

1) where can we upload HTML report and send a link to?

2) run "./setup.py test"

3) if the merge fails, still report it, and why it failed. Currently
sympy-next fails to generate the report, so sympy-bot submits an empty
pastebin report as well.

4) create nice HTML report

Ondrej

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To post to this group, send email to sympy@googlegroups.com.
To unsubscribe from this group, send email to 
sympy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sympy?hl=en.

Reply via email to