Documenting projects is hard, hosting them shouldn't be. Read the Docs was created to make hosting documentation simple. I think that we have solved this problem well, but now we need to start thinking about the larger picture.
Along with hosting, Read the Docs was created with 2 other main goals. One was to encourage people to write documentation, by removing the barrier of entry of hosting. The other was to create a central platform for people to find documentation. Having a shared platform for all documentation allows for innovation at the platform level, allowing work to be done once and benefit everyone. Having run the site for over a year now, I think there is a third thing that we should be striving for. That is to make the quality of documentation better.
I think that we can help a documentation culture flourish within the open source world. Django is a shining example of what a project with great documentation can do, and it has a community that values docs more than the norm. I think we can help spread this culture throughout the Python world, and beyond. This has already started, and I want to think about how something like RTD can help.
I think that having a guide for writing useful documentation would be a great step towards helping people along the path of documentation enlightenment. Jacob Kaplan-Moss has started down this road with his blog series and Pycon 2011 talk on this subject. I think that we could start by collecting these into a section of the site.
We could build on top of that great start with simple guides for how to get started with Sphinx, best practices for documentation, and providing a general place to learn more about how to write good documentation. Since we host a lot of documentation, we could point to live examples of techniques, and provide helpers for people to enable the techniques.
I have started a reStructedText Philosophy document that is meant to help people understand the ideas behind how reST works, so that it isn't as mystifying. This reST cheatsteet also appears to have similar goals. These are a very basic start, and I think some more along these lines would really help a lot of people get over the barrier to starting and continuing to write good documentation.
I think that we could also help create contributors to projects, if we could find an easy way to provide patches to documentation. If you could go to the project documentation, and fix small typos, or help add a paragraph in the tutorial, it would lower the bar to helping.
However, it isn't a wiki. These changes would be represented to the project author as pull requests in their VCS, and they would still be responsible for tending the garden. This gets rid of the "Just Edit The Wiki" solution of documentation, and also helps new contributors get started in an easier fashion.
The Plone community has built a proof of concept, linking to Github's edit pages for the current document. I think we can integrate this at the platform level, and make it available to everyone.
Read the Docs is open source. You can help by writing docs for the site, writing code for the site, or just writing documentation in general. People can also help just by using the site, and reporting bugs. Telling us how to make the site better helps everyone in the long run. Come join us on Freenode in the #readthedocs channel as well.
Another area that we're hurting is in the design front. We have been adding features over time, and the design of the site is getting a bit strained. Having someone with a good sense of design help re-think and re-architect some of the features and ideas that we've been working on I think would help a lot.
A lot of the RTD contributors will be at Pycon 2012, where we will be having a sprint on the site. If you want to get started contributing, that is a great place to come and get started.
Posted at 5:08 p.m. on January 22, 2012
Comments: 7
Tags: dash , django , projects , readthedocs
Welcome to the home of Eric Holscher on the web. I talk about software development, mostly in the realm of Django. I am interested in the real time web, testing, mobile apps, and other things.
Why Read the Docs matters
1 month ago (Comments: 7)
Read the Docs Update
10 months, 2 weeks ago (Comments: 2)
Using Reviewboard with Git
1 year ago (Comments: 0)
Read the Docs Updates
1 year, 1 month ago (Comments: 1)
Handling Django Settings Files
1 year, 1 month ago (Comments: 12)
Required Reading
1 year, 3 months ago (Comments: 0)
Using Haystack to index non-database content
1 year, 3 months ago (Comments: 4)
Correct commands to check out and update VCS repos
1 year, 3 months ago (Comments: 0)
Site upgrades
1 year, 3 months ago (Comments: 0)
Building a Django App Server with Chef: Part 4
1 year, 3 months ago (Comments: 1)
Setting up Django and mod_wsgi
Building a Django App Server with Chef: Part 1
Screencast: Django Command Extensions
Big list of Django tips (and some python tips too)
Handling Django Settings Files
Lessons Learned From The Dash: Easy Django Deployment
Large Problems in Django, Mostly Solved: Delayed Execution
Building a Django App Server with Chef: Part 2


Comments
1 Roger says...
Sadly RTD doesn't help in some cases. My requests on the mailing list about what to do when the documentation requires a more complex build environment were completely ignored.
(The doc is Sphinx based, but involves a complex C module, running example code etc. The final sphinx-build results are checked backed into a Mercurial repository.)
The vibe I get from the project is that as long as your docs are trivially built for some all Python modules then you are okay, otherwise don't bother.
Posted at 8:11 p.m. on January 22, 2012
2 Alexis Métaireau says...
Sphinx is an awesome tool and solves already a lot of things concerning documentation. One of the best thing it does is the ability to document a project with information coming from the code itself.
I love how the RTD project makes it easy to sync a codebase with documentation online. Thanks :)
@Roger about complex envs, I think the problem RTD has it that it can't simply install all of them just to build documentation (because tons of projects means tons of requirements).
However, because it is an open source project, it is possible to make your own RTD server and letting it deal with those complex requirements.
Posted at 2:10 a.m. on January 23, 2012
3 Bob says...
It would be great if something like ucomment (http://ucomment.org) would be added to the site. It worked really great for the first Django book. I also saw that Sphinx includes a websupport module (http://sphinx.pocoo.org/latest/web/quickstart.html) for addings comments to a site.
Posted at 4:05 a.m. on January 23, 2012
4 Chris McDonough says...
RTD is great! I lament the fact I have not contributed any code yet.
Posted at 9:32 a.m. on January 23, 2012
5 Jonas says...
Working with other languages actually made me realize and appreciate how nicely documented a lot of python projects are. We are already on a good track. :)
Posted at 12:05 p.m. on January 23, 2012
6 Anthony says...
Love readthedocs, sadly only our examples work, I would love to get our project building correctly though. Although I spent some time trying to get it working, it's using a lot of ctype based modules and couldn't get it working. I would gladly pay for a monthly service like this if it just worked so I never have to worry about building docs again. :)
-Anthony (SimpleCV team)
Posted at 4:26 p.m. on January 23, 2012
7 Vinay Sajip says...
When you mention problems on the design front, are you talking about purely visual design, or design in the coding sense?
Posted at 5:55 p.m. on January 23, 2012