Hi all. Between being a short month and oncall for work I didn't get as much done as I'd like. What time I did have for tor mostly went into stem's descriptor functionality. In particular...
========================================
* Microdescriptor Support
Stem can now read and parse microdescritpors (#8253), with controller methods coming later this weekend.
I understand the desire for lightweight descriptors but they're a step backward for controllers. Their lack of fingerprints make them clunky to use (https://trac.torproject.org/8323#comment:2), and tor lacks the usual methods for retrieving them (#8323) and v3 network status information (#7953). Controllers will often need to read descriptor content from the data directory until those are fixed.
* Invalid descriptor content within archives caused the reader to stop processing content from the archive. This bug is simple in retrospect but cost me around a week of hair pulling frustration to sort out. Thanks to Karsten for catching it! (#8049)
* Descriptor readers can now optionally provide network status documents rather than the entries they contain. Feature request by Karsten. (#8050)
* Calling str() on Descriptors choked if it contained unicode content. Caught by Sathyanarayanan. (#8265)
* Thanks to Karsten Descriptors now provide hex digests. (#8036)
* Discussed the new 'flag-thresholds' attribute and added support for it to stem. (#8165)
* Descriptor parsers that used readline() could choke if derived from a descriptor archive. Caught by Karsten.
========================================
General tasks included...
* Discussed proposal 218 with Karsten on tor-dev@...
https://lists.torproject.org/pipermail/tor-dev/2013-February/004411.html
* Changed our consensus-tracker script to alarm for non-exits (we had an undetected sybil attack early in the month). Also fixed an issue where the script gobbled up way too much memory. (#7831}
* Made a few backward incompatible changes to improve stem's usability in anticipation of our March API freeze...
* Version comparison is now done through normal comparison operators rather than a meets_requirements() method. * Renamed the keyword arguments for Controller.from_port() and others to be less verbose (for instance 'control_port' to just 'port'). * Dropped the 'path' arg from parse_file(), it was never intended for external callers.
* Variety of bug fixes...
* We didn't recognize a 'NEVER' date in ADDRMAP events. Caught by Desoxy. {#8162) * Patch from Abhishek so our tests avoid static /tmp usage. (#7926) * Added copyright notices throughout most of our codebase. Suggested by Juan. (#7954) * Addressed issues with get_process_name() on OSX. Caught by Sathyanarayanan. (#8266)
Cheers! -Damian