GSoC 2012 Application Michael Mayorov: Improvement and bug fixing work for SymPy Bot

Sean Vig edited this page Apr 11, 2012 · 1 revision


Hi, my name is Mayorov Michael. I'm study computer science and security in Chelyabinsk State University last year student.

My contacts:

I used different linux distributives for more than 3 years and stayed on Archlinux. I rarely using GUI, so I prefer vim and ipython for writing code. Usually I'm using python2.7, but have experince writing code for python3.

I earned my first experience with python when I have written Greek-Chinese algorithm for one of my university's tasks 2 years ago. Code was a fully crap of course, but that have made strong impression on me.

In 2011, I was involved in GSoC 2011 with project "Search and indexing support for MoinMoin2" and had great summer while working with flask, whoosh, jinja2 and python itself :)

Here is my results

I already done my first small steps for improving SymPy:

In this year I want to participate to Google Summer of Code program with project "Improvement and bug fixing work for SymPy Bot"

I've gone throught issue list and asked some of community members for their ideas, so what I have for now:

SymPy bot web improvements:

"Test report" page:

  • Place "Test log" output to window like that currently looks on main page

  • Colorized results, by that I mean 2 columned table which rows contain:

    • name of test
    • test result
    • ( green color means test passed and red color means test failed )
  • Add window at bottom of page with raw output for copy-paste

  • "Show only" for showing only success or only failed tests

  • Show additional info about OS version( like 'uname -a' in unix )

  • Options like "Pull request:", "GitHub URL:" and so on could be placed in one window which hidden, but will appear by click

  • For viewing other test results user need to go back on previous page and then click to other result, I guess we could avoid that by creating small window on test report page which shows other related tests

  • Without debug mode show something more pretty on 40x or 50x errors than traceback ( currently gives )

Functional improvements:

  • I try to find notification system, but I didn't. So I guess, admin should recieve notification message (e.g. via email) on system events like disk quota exceed(if you use free variant of GAE then that's possible)

  • Add tests for checking functional. Actually, SymPy bot doesn't have any tests for checking own functional (that's not fully truth, because SymPy bot has "examples/" directory with only 2 scripts, but I guess that isn't enough to cover all functional)

  • SymPy bot could use git-hub API to add labels like "reviewed-passed" or "unmergable" to issues

  • Sometimes developers forget to close issues after merge, SymPy bot could remind them to do it. ( That actually requires account on git-hub, and I'm not sure that good idea, need suggestions )

  • Colorize terminal output when running tests, that could be done using termcolor

  • SymPy bot could helps in reviewing pulls on git-hub. As soon as pull created bot uploads it, running all tests and then posts result on git-hub to inform others( that will require account for bot too, need suggestions)

  • Authefication, currently SymPy bot web interface have only auth provided by Google Application Engine for access to admin page and anyone could upload test results to site, so I suggest to add follow authentication methods:

    • OAuth ???
    • ( links to blogs and howtos is just to show that auth could be done without asking password anytime when developer wants to upload tests )

Also, I'm need suggestions about integration SymPy bot with issue tracker

Feel free to write me about bugs which I can fix while doing this project(if it'll be accepted of course :) ). I'll include that to my proposal

TODO: timeline


Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.