November was a month that included eating far too much pie. There was some stem work too on the side, though delicious pumpkin pies are always how that month should be remembered.
My primary focus for November was tor event handling [1], which is the last major feature we need before having parity with TorCtl. We presently support nine of the nineteen event types, including the most commonly used ones (logging, BW, CIRC, STREAM, etc). I'll be spending a good chunk of December finishing this up.
Besides this I've been really thrilled at how contributors are coming out of the woodwork to help!
Ravi
* Ravi has volunteered to take a lead on moving stem onto tor's site. Unfortunately this is presently blocked on getting a subdomain. [2]
* Provided a patch to move stem's controller exceptions to the top level namespace. [3]
* Fix for the repurpose_circuit() integ test [4] and discovered an issue with the stem.process test. [5]
Eoin
* Submitted a great patch overhauling and expanding verification of server descriptor content. [6]
* Caught a possible tor bug related to 'GETINFO orconn-status' queries when disconnected. [7]
* Numerous spelling fixes [8] and caught an issue with respect to how the descriptor reader handles archives. [9]
Sean
* Reviewed my event parsing branch, offering feedback [10] and catching a bug where STREAM events could have a zero port. [11]
* Submitted patches to add close_circuit() to the Controller [12] and a setup.py [13]. The former led to a discussion about stem's licensing and copyright for patches.
* Helped resolve an issue with EXTENDCIRCUIT where we weren't taking into account when the path was optional or not. [14]
Other things I did this month includes...
* Preparation for the 2013 Outreach Program for Women [15], the application deadline for which is now only two days away. This mostly involved helping others add their project ideas to the volunteer page and adding one of my own. [16]
* Made a landing page for stem's bug tracking [17] and linked to it from stem's site.
* Revamped stem's enum documentation to be both more readable and support interlinking. [18]
* Provided a code review for Karsten's pygeodate.py. [19]
* Answered a handful of controller inquiries on our lists. Stem's now at a point where I don't mind suggesting it to developers. If you're scripting or writing an application around tor then please give stem a try! I'd love to get more feedback on where its rough edges are before we make an initial release. [20][21][22][23]
Cheers! -Damian
[1] https://trac.torproject.org/7328 [2] https://trac.torproject.org/7324 [3] https://trac.torproject.org/6357 [4] https://trac.torproject.org/7259 [5] https://trac.torproject.org/7284 [6] https://trac.torproject.org/5810 [7] https://trac.torproject.org/7558 [8] https://gitweb.torproject.org/stem.git/commitdiff/2a59741 [9] https://gitweb.torproject.org/stem.git/commitdiff/69c55ab [10] https://trac.torproject.org/7328#comment:3 [11] https://trac.torproject.org/7598 [12] https://trac.torproject.org/7566 [13] https://trac.torproject.org/7565 [14] https://trac.torproject.org/6666 [15] https://live.gnome.org/OutreachProgramForWomen [16] https://www.torproject.org/getinvolved/volunteer.html.en#stemUsability [17] https://trac.torproject.org/projects/tor/wiki/doc/stem/bugs [18] https://gitweb.torproject.org/stem.git/commitdiff/0e99a26 [19] https://trac.torproject.org/6471 [20] https://lists.torproject.org/pipermail/tor-relays/2012-November/001774.html [21] https://lists.torproject.org/pipermail/tor-talk/2012-November/026299.html [22] https://lists.torproject.org/pipermail/tor-dev/2012-November/004162.html [23] https://lists.torproject.org/pipermail/tor-dev/2012-November/004195.html
On Sat, Dec 1, 2012 at 3:04 PM, Damian Johnson atagar@torproject.orgwrote:
- Answered a handful of controller inquiries on our lists. Stem's now
at a point where I don't mind suggesting it to developers. If you're scripting or writing an application around tor then please give stem a try! I'd love to get more feedback on where its rough edges are before we make an initial release.
Hi all,
I agree that Stem is ready for script/application development use. I did a five-hour solo sprint[0] this week and I was able to move my desktop client controller from a branch of Damian's TorCtl to a branch of Damian's personal Stem repository with about 80% functionality.
The main changes to my controller were removing large swathes of code that are not needed, because Stem handles error conditions well and classes inherit from object. So, I do less error checking on my own and I can directly sub-class from stem.control.Controller.
I have been using Stem with gevent[1] using monkey patching for socket and threading. I have not had crashes from this unforeseen mixing of libraries. This as an indication of the high quality of the Stem code. I have thrown Stem into a vastly different execution context and it still operates correctly.
[0] This sounds so much better than, "I sat in front of my computer for five hours straight, on a Saturday." [1] http://www.gevent.org/