Changes between Version 9 and Version 10 of GoogleSOC


Ignore:
Timestamp:
03/29/2012 07:53:55 PM (8 years ago)
Author:
Itamar Turner-Trauring
Comment:

Restructure to be more like Google-approved KDE ideas page

Legend:

Unmodified
Added
Removed
Modified
  • GoogleSOC

    v9 v10  
    55
    66== Project Ideas ==
     7
    78These are just ideas, we're open to other ideas as well.
    89
    9 === For people who like variety ===
    1010
     11=== IPv6 ===
     12
     13[wiki:IPv6]: We are still missing SSL, UDP, and multicast IPv6 support, not to mention IPv6 DNS lookups. Add IPv6 support for these transports with a full API and test coverage for these additions. Add relevant examples and documentation.
     14
     15Requirements: In addition to Python, a decent understanding of networking and socket APIs.
     16
     17
     18=== Debugging UI ===
     19
     20Build a user interface (a GUI, or maybe even Web-based) The  idea is to have a debugging user interface for running a Twisted  process that shows existing listening ports and open connections, and allows you to view bytes flowing over the transports. (Twisted currently includes a half-broken "gladereactor" that is a gtk-based half-finished implementation of this). You'll learn about Twisted's internals, and get to build an interesting user interface and present information in a useful way.
     21
     22Requirements: In addition to Python, some knowledge of either GUI programming or Web programming.
     23
     24
     25=== Sphinx documentation ===
     26
     27Finish converting our documentation from a custom format and set of tools that we maintain (Lore) to the community standard - RestructuredText (ReST) as used by Sphinx. In particular, resolve all tickets in the [milestone:"Lore to Sphinx"] milestone and then help transition the release process and twistedmatrix.com to Sphinx by participating in a release. You'll learn about releasing software, documentation tools, and maybe some data transformation (from HTML to RestructuredText).
     28
     29Requirements: In addition to knowledge of Python, knowledge of HTML and perhaps ReST would be useful.
     30
     31
     32=== Don't break in other locales ===
     33
     34Twisted currently has some bugs when used in certain non-English-configured operating systems (this is known as a "locale", e.g. French). For example, date formatting might be wrong, or uppercase/lowercase conversion might work unexpectedly. As a first step you'd want to create a custom locale for Linux that was malicious about everything (e.g. lower-casing returns random unexpected bytes, dates are funky, etc.). This would be used to find places where Twisted is making US-centric assumptions, but would actually be a useful project for the Linux community in general. Then, fix resulting bugs in Twisted. Some relevant background material: http://www.moserware.com/2008/02/does-your-code-pass-turkey-test.html
     35
     36Requirements: This is probably easier to do on Linux than on Windows, so some basic familiarity with Linux, and a computer configured to use it, in addition to knowledge of Python.
     37
     38
     39=== Tasks Google may not like ===
     40
     41  * Finish half-done documentation: Merge existing documentation from elsewhere, e.g. [ticket:5474 Conch in 60 seconds], or half-finished documentation that is in the tracker (there's the start of an IMAP howto, for example.)
     42  * For a particular subproject, review and improve existing examples and howtos and add missing documentation. Every example needs a description, e.g. http://twistedmatrix.com/documents/current/web/examples/index.html has descriptions but http://twistedmatrix.com/documents/current/names/examples/index.html doesn't. Every example should document its purpose, how it is run, and what it should do. Examples should use current coding and documentation standards and shouldn't use deprecated code. Documentation should use current coding and documentation standards in code snippets, and should use the preferred APIs. Some subprojects have very little documentation or examples and simply need more. Audit and update relevant man pages.
     43  * Coverage: For a particular subproject, go for 100% API documentation and unit test code coverage.
     44  * Test suite cleanup: overall test suite cleanup, remove deprecations, fix deprecation warnings, get to the bottom of and fix our various recurring Windows errors, fix Windows compiler warnings, fix non-deterministic tests.
    1145  * Finish half-written code, documentation, bug fixes, etc.: We  have >200 tickets that at some point had code written and received at least one code review, but for various reasons never made it in. This is a great way to learn because  you don't have to start from scratch, and there's a variety of tasks  (from minor fixes to documentation to new features) most of which have code reviews as a starting point. See http://twistedmatrix.com/trac/report/16 for a list.
    12 
    13 === For people who want to focus on a single programming task ===
    14 
    15   * [wiki:IPv6]: We are still missing SSL, UDP, and multicast IPv6 support. Add IPv6 support for these transports with a full API and test coverage for these additions. Add relevant examples and documentation.
    16   * Debugging user interface for the networking layer - implement a web-based replacement for gladereactor. The  idea is to have a debugging user interface for running a Twisted  process that shows existing listening ports and open connections, and  allows you to view bytes flowing over the transports. gladereactor is a gtk-based half-finished implementation of this.
    1746  * Python 3: Begin working towards Python 3 support. For a start, fix all the bugs in the [milestone:Python-3.x] milestone and run with no `-3` warnings. Then, see how far you can get with actual port.
    1847  * PyPy: Have [http://pypy.org PyPy] be a fully supported platform, with all tests passing.
    19 
    20 === For people who want to work on documentation ===
    21 
    22   * Finish half-done documentation: Merge existing documentation from elsewhere, e.g. [ticket:5474 Conch in 60 seconds], or half-finished documentation that is in the tracker (there's the start of an IMAP howto, for example.)
    23   * lore2sphinx: finish converting our documentation from a custom format (Lore) to the community standard - RestructuredText as used by Sphinx. In particular, resolve all tickets in the [milestone:"Lore to Sphinx"] milestone and then help transition the release process and twistedmatrix.com to Sphinx by participating in a release.
    24   * For a particular subproject, review and improve existing examples and howtos and add missing documentation. Every example needs a description, e.g. http://twistedmatrix.com/documents/current/web/examples/index.html has descriptions but http://twistedmatrix.com/documents/current/names/examples/index.html doesn't. Every example should document its purpose, how it is run, and what it should do. Examples should use current coding and documentation standards and shouldn't use deprecated code. Documentation should use current coding and documentation standards in code snippets, and should use the preferred APIs. Some subprojects have very little documentation or examples and simply need more. Audit and update relevant man pages.
    25 
    26 === For the detailed-oriented person ===
    27 
    28   * Coverage: For a particular subproject, go for 100% API documentation and unit test code coverage.
    29   * Test suite cleanup: overall test suite cleanup, remove deprecations, fix deprecation warnings, get to the bottom of and fix our various recurring Windows errors, fix Windows compiler warnings, fix non-deterministic tests.
    30 
    31 === For people who like helping the world at large ===
    32 
    33   * Fix Twisted in non-US locales. As a first step you'd want to create a custom locale for Linux that was malicious about everything (e.g. lower-casing returns random unexpected bytes, dates are funky, etc.). This would be used to find places where Twisted is making US-centric assumptions, but would actually be a useful project for the Linux community in general. Then, fix resulting bugs in Twisted. Some relevant background material: http://www.moserware.com/2008/02/does-your-code-pass-turkey-test.html