~launchpad-pqm/launchpad/devel

11307.1.1 by Jonathan Lange
I finally got sick of not having this.
1
====================
2
README for Launchpad
3
====================
4
5
Launchpad is an open source suite of tools that help people and teams to work
6
together on software projects.  Unlike many open source projects, Launchpad
7
isn't something you install and run yourself (although you are welcome to do
8
so), instead, contributors help make <https://launchpad.net> better.
9
10
Launchpad is a project of Canonical <http://www.canonical.com> and has
11
received many contributions from many wonderful people
12
<https://dev.launchpad.net/Contributions>.
13
14
If you want help using Launchpad, then please visit our help wiki at:
15
16
    https://help.launchpad.net
17
18
If you'd like to contribute to Launchpad, have a look at:
19
20
    https://dev.launchpad.net
21
22
Alternatively, have a poke around in the code, which you probably already know
23
how to get if you are reading this file.
24
25
26
Getting started
27
===============
28
29
There's a full guide for getting up-and-running with a development Launchpad
30
environment at <https://dev.launchpad.net/Getting>.  When you are ready to
31
submit a patch, please consult <https://dev.launchpad.net/PatchSubmission>.
32
33
Our bug tracker is at <https://bugs.launchpad.net/launchpad/> and you can get
34
the source code any time by doing:
35
36
  $ bzr branch lp:launchpad
37
38
39
Navigating the tree
40
-------------------
41
42
The Launchpad tree is big, messy and changing.  Sorry about that.  Don't panic
43
though, it can sense fear.  Keep a firm grip on `grep` and pay attention to
44
these important top-level folders:
45
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'.
51
52
  configs/
53
    Configuration files for various kinds of Launchpad instances.
54
    'development' and 'testrunner' are of particular interest to developers.
55
56
  cronscripts/
57
    Scripts that are run on actual production instances of Launchpad as
58
    cronjobs.
59
60
  daemons/
61
    Entry points for various daemons that form part of Launchpad
62
63
  database/
64
    Our database schema, our sample data, and some other stuff that causes
65
    fear.
66
67
  doc/
68
    General system-wide documentation. You can also find documentation on
69
    <https://dev.launchpad.net>, in docstrings and in doctests.
70
71
  lib/
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.
77
78
  Makefile
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'.
83
84
  scripts/
85
    Scripts that are run on actual production instances of Launchpad,
86
    generally triggered by some automatic process.
87
88
89
You can spend years hacking on Launchpad full-time and not know what all of
90
the files in the top-level directory are for.  However, here's a guide to some
91
of the ones that come up from time to time.
92
93
  buildout-templates/
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.
97
98
  bzrplugins/, optionalbzrplugins/
99
    Bazaar plugins used in running Launchpad.
100
101
  sourcecode/
102
    A directory into which we symlink branches of some of Launchpad's
103
    dependencies.  Don't ask.
104
105
You never have to care about 'benchmarks', 'override-includes' or
106
'package-includes'.