==================== README for Launchpad ==================== Launchpad is an open source suite of tools that help people and teams to work together on software projects. Unlike many open source projects, Launchpad isn't something you install and run yourself (although you are welcome to do so), instead, contributors help make <https://launchpad.net> better. Launchpad is a project of Canonical <http://www.canonical.com> and has received many contributions from many wonderful people <https://dev.launchpad.net/Contributions>. If you want help using Launchpad, then please visit our help wiki at: https://help.launchpad.net If you'd like to contribute to Launchpad, have a look at: https://dev.launchpad.net Alternatively, have a poke around in the code, which you probably already know how to get if you are reading this file. Getting started =============== There's a full guide for getting up-and-running with a development Launchpad environment at <https://dev.launchpad.net/Getting>. When you are ready to submit a patch, please consult <https://dev.launchpad.net/PatchSubmission>. Our bug tracker is at <https://bugs.launchpad.net/launchpad/> and you can get the source code any time by doing: $ git clone https://git.launchpad.net/launchpad Navigating the tree ------------------- The Launchpad tree is big, messy and changing. Sorry about that. Don't panic though, it can sense fear. 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 cronjobs. daemons/ Entry points for various daemons that form part of Launchpad database/ Our database schema, our sample data, and some other stuff that causes fear. doc/ General system-wide documentation. You can also find documentation on <https://dev.launchpad.net>, 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' and 'canonical' are the two most interesting packages. Note that 'canonical' is deprecated in favour of 'lp'. To learn more about how the 'lp' package is laid out, take a look at its docstring. Makefile Ahh, bliss. 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. bzrplugins/ Bazaar plugins used in running Launchpad. sourcecode/ A directory into which we symlink branches of some of Launchpad's dependencies. Don't ask. zcml/ Various configuration files for the Zope services. Angels fear to tread.