Sunday, May 17, 2015

Read the Docs: growing with a little help from its friends at the PSF (and elsewhere)

Today's post, like the previous one, features a development project that the PSF has been delighted to fund once again this year.
On April 28, 2015, the PSF Board unanimously approved the following resolution:
RESOLVED, that the Python Software Foundation grant  $8,000 to Read the Docs, Inc. for developmental work.


What is RTD?

Looking for somewhere to host your open source project’s documentation in a way that will make it readily available, easy to find, fully searchable for your users, and exportable in PDF format, while at the same time offering you ease of use and the ability to add content as your project develops? Then, you’ll want to check out Read the Docs, the world’s largest documentation website for open source projects. 
… hosts documentation, making it fully searchable and easy to find. You can import your docs using any major version control system, including Mercurial, Git, Subversion, and Bazaar. We support webhooks so your docs get built when you commit code. There’s also support for versioning so you can build docs from tags and branches of your code in your repository.

RTD’s History


RTD was created in 2010 by Eric Holscher, Charles Leifer, and Bobby Grace for the 2010 Django Dash. Eric tells the interesting story at Djangocon. A Django Dash is a coding contest that allows 48 hours for development and implementation of a project. Eric and his team considered what to do and decided that, since current documentation hosting was less than satisfactory, they could be of most help to the community by creating a web-based doc hosting solution. They agreed that Sphinx was the best document tool for Python, so they went with that.
According to Eric, 2011 was the year that saw RTD go … from a hobby project, into something projects depended on. At that point, they were hosting documentation for Celery, Fabric, Nose, py.test, Virtualenv, Pip, Django CMS, Django, Grapelli/Floppyforms/Sentry, mod_wsgi. Currently, they are hosting what Eric describes as a decent part of the Python ecosystem, including SQL Academy, Pyramid, Requests, Minecraft Overviewer, and many others. They have over 50 contributors, 7500 users, and get over 15,000,000 pageviews a month. The code for RTD is on GitHub and its documentation can be found on the site. Rackspace provides free hosting. A full list of features is available on the site.

Photo Credit: Aaron Hockley, October 2014 
Creative Commons license 2.00

Use of PSF Grant

The PSF award was part of a fundraising drive that opened at PyCon 2015 and brought in $24,000 USD from 157 contributions since then (see the RTD Blog). Corporate sponsors included Twilio, Sentry, DreamHost, and Lincoln Loop; with service sponsorships from Elastic Search, MaxCDN, and Gandi.
This funding will support RTD for 3 months of development work on the path toward sustainability as an open source project. More specifically, the funds will allow RTD to hire 2 part-time paid positions: Community Developer and Operations Developer (see RTD Blogpost for details and how to apply).
Furthermore, RTD intends to document its use of PSF grant money;  how development time is spent and how funds are allocated will be posted on RTD’s public Trello board.
If you’d like to help, you can contribute to RTD at Gratipay and you can follow them on Twitter.
I would love to hear from readers. Please send feedback, comments, or blog ideas to me at msushi@gnosis.cx.

Friday, May 08, 2015

PSF funds development: Armin Rigo's CFFI 1.0

In looking back over the PSF newsblog posts, it appears that most of the PSF funded projects I’ve written about were conferences, workshops, and education/outreach efforts. These are, of course, truly important. However, it’s also important to get the word out about several development projects that the PSF has sponsored in 2015. One such project is Armin Rigo’s work on CFFI 1.0. 
RESOLVED, that the Python Software Foundation grant Armin Rigo $2500 towards cffi development aimed at making cffi generated extension modules importable without runtime dependencies on an extension module build toolchain.
CFFI or C Foreign Function Interface for Python provides a way to call compiled C code, i.e., external C libraries, from Python using interface declarations written in C. This eliminates the need to use a programming language other than C and Python. At the same time, CFFI minimizes the amount of C code that needs to be written, so it really is a boon for Python developers. It works with Python 2.6 and up and with PyPy 2x and 3x. See CFFI Documentation.
CFFI has already had approximately 7 million downloads, so it is clearly of use, but its creator, Armin Rigo (who is also one of the creators of PyPy) saw room for improvement. Specifically, according to Armin, there were two main problems:
  1. The difficulties of installation [which] can be seen from outside by looking at various workarounds and 3rd-party documentation that have grown into existence. For example, the setup.py of projects like cryptography, PyNaCl and bcrypt deploys workarounds that are explicitly documented inhttps://caremad.io/2014/11/distributing-a-cffi-project/.
  2. The time taken at import is excessive in some cases. For example, importing pygame-cffi on a Raspberry Pi ARM board takes on the order of 10 to 20 seconds (and this is the fast case where the compiler doesn’t need to be invoked any more)
Due to the PSF grant, Armin was able to fix both problems. The 1.0 version, now in beta, is available at CFFI 1.0.
Our thanks to the amazing Armin Rigo for this very welcome tool!
Stay tuned for my next post about the PSF’s recent award of $8,000 USD for Read the Docs
I would love to hear from readers. Please send feedback, comments, or blog ideas to me at msushi@gnosis.cx.