===================
Navigating the tree
===================
See :doc:`../how-to/running` to learn how to get Launchpad's code and set up
a local development environment.
The Launchpad tree is big, messy and changing. Sorry about that. Don't panic
though! Keep a firm grip on ``grep`` and pay attention to
these important top-level folders:
``bin/``, ``utilities/``
Where you will find scripts intended for developers and admins. There's
no rhyme or reason to what goes in bin/ and what goes in utilities/, so
take a look in both.
``configs/``
Configuration files for various kinds of Launchpad instances.
``development`` and ``testrunner`` are of particular interest to developers.
``cronscripts/``
Scripts that are run on actual production instances of Launchpad as
cron jobs.
``daemons/``
Entry points for various daemons that form part of Launchpad.
``database/``
Our database schema, our sample data, and other things related to those.
``doc/``
General system-wide documentation. You can also find documentation on
the `developer wiki `_, in docstrings, and
in doctests.
``lib/``
Where the vast majority of the code lives, along with our templates,
tests, and the bits of our documentation that are written as doctests.
``lp`` is the most interesting package, with ``canonical`` containing
some things like images and style sheets. To learn more about how the
``lp`` package is laid out, take a look at its docstring.
``Makefile``
The ``Makefile`` has all sorts of goodies. If you spend any length of
time hacking on Launchpad, you'll use it often. The most important
targets are ``make clean``, ``make compile``, ``make schema``, ``make
run`` and ``make run_all``.
``scripts/``
Scripts that are run on actual production instances of Launchpad,
generally triggered by some automatic process.
You can spend years hacking on Launchpad full-time and not know what all of
the files in the top-level directory are for. However, here's a guide to some
of the ones that come up from time to time.
``brzplugins/``
Breezy plugins used in running Launchpad.
``zcml/``
Various configuration files for the Zope services.
Can I look at the code without downloading it all?
==================================================
Yes, you can browse the `source code
`_ on Launchpad. You can also use
``git clone https://git.launchpad.net/launchpad`` to download the code
without setting up a development environment.