.. _documentation: ======================= About the Documentation ======================= boto's documentation uses the Sphinx__ documentation system, which in turn is based on docutils__. The basic idea is that lightly-formatted plain-text documentation is transformed into HTML, PDF, and any other output format. __ http://sphinx.pocoo.org/ __ http://docutils.sf.net/ To actually build the documentation locally, you'll currently need to install Sphinx -- ``easy_install Sphinx`` should do the trick. Then, building the html is easy; just ``make html`` from the ``docs`` directory. To get started contributing, you'll want to read the `ReStructuredText Primer`__. After that, you'll want to read about the `Sphinx-specific markup`__ that's used to manage metadata, indexing, and cross-references. __ http://sphinx.pocoo.org/rest.html __ http://sphinx.pocoo.org/markup/ The main thing to keep in mind as you write and edit docs is that the more semantic markup you can add the better. So:: Import ``boto`` to your script... Isn't nearly as helpful as:: Add :mod:`boto` to your script... This is because Sphinx will generate a proper link for the latter, which greatly helps readers. There's basically no limit to the amount of useful markup you can add. The fabfile ----------- There is a Fabric__ file that can be used to build and deploy the documentation to a webserver that you ssh access to. __ http://fabfile.org To build and deploy:: cd docs/ fab deploy:remote_path='/var/www/folder/whatever' --hosts=user@host This will get the latest code from subversion, add the revision number to the docs conf.py file, call ``make html`` to build the documentation, then it will tarball it up and scp up to the host you specified and untarball it in the folder you specified creating a symbolic link from the untarballed versioned folder to ``{remote_path}/boto-docs``.