2README for Launchpad
5Launchpad is an open source suite of tools that help people and teams to work
6together on software projects. Unlike many open source projects, Launchpad
7isn't something you install and run yourself (although you are welcome to do
8so), instead, contributors help make <https://launchpad.net> better.
10Launchpad is a project of Canonical <http://www.canonical.com> and has
11received many contributions from many wonderful people
14If you want help using Launchpad, then please visit our help wiki at:
18If you'd like to contribute to Launchpad, have a look at:
22Alternatively, have a poke around in the code, which you probably already know
23how to get if you are reading this file.
29There's a full guide for getting up-and-running with a development Launchpad
30environment at <https://dev.launchpad.net/Getting>. When you are ready to
31submit a patch, please consult <https://dev.launchpad.net/PatchSubmission>.
33Our bug tracker is at <https://bugs.launchpad.net/launchpad/> and you can get
34the source code any time by doing:
36 $ bzr branch lp:launchpad
39Navigating the tree
42The Launchpad tree is big, messy and changing. Sorry about that. Don't panic
43though, it can sense fear. Keep a firm grip on `grep` and pay attention to
44these important top-level folders:
46 bin/, utilities/
47 Where you will find scripts intended for developers and admins. There's
48 no rhyme or reason to what goes in bin/ and what goes in utilities/, so
49 take a look in both. bin/ will be empty in a fresh checkout, the actual
50 content lives in 'buildout-templates'.
53 Configuration files for various kinds of Launchpad instances.
54 'development' and 'testrunner' are of particular interest to developers.
57 Scripts that are run on actual production instances of Launchpad as
61 Entry points for various daemons that form part of Launchpad
64 Our database schema, our sample data, and some other stuff that causes
68 General system-wide documentation. You can also find documentation on
69 <https://dev.launchpad.net>, in docstrings and in doctests.
72 Where the vast majority of the code lives, along with our templates, tests
73 and the bits of our documentation that are written as doctests. 'lp' and
74 'canonical' are the two most interesting packages. Note that 'canonical'
75 is deprecated in favour of 'lp'. To learn more about how the 'lp' package
76 is laid out, take a look at its docstring.
79 Ahh, bliss. The Makefile has all sorts of goodies. If you spend any
80 length of time hacking on Launchpad, you'll use it often. The most
81 important targets are 'make clean', 'make compile', 'make schema', 'make
82 run' and 'make run_all'.
85 Scripts that are run on actual production instances of Launchpad,
86 generally triggered by some automatic process.
89You can spend years hacking on Launchpad full-time and not know what all of
90the files in the top-level directory are for. However, here's a guide to some
91of the ones that come up from time to time.
94 Templates that are generated into actual files, normally bin/ scripts,
95 when buildout is run. If you want to change the behaviour of bin/test,
96 look here.
99 Bazaar plugins used in running Launchpad.
102 A directory into which we symlink branches of some of Launchpad's
103 dependencies. Don't ask.
106 Various configuration files for the Zope services. Angels fear to tread.