← Back to team overview

launchpad-reviewers team mailing list archive

[Merge] lp:~jml/launchpad/readme into lp:launchpad/devel

 

Jonathan Lange has proposed merging lp:~jml/launchpad/readme into lp:launchpad/devel.

Requested reviews:
  Launchpad code reviewers (launchpad-reviewers)


I thought, you know what would be a good idea? A README file! It should explain what Launchpad is, where one could go to find more information and give some tips on how to navigate the code base.

As for style, I aimed to be clear, direct and interesting to read without being cute. I also aimed to be honest about our flaws without being better. How well I hit the mark is up to you.

-- 
https://code.launchpad.net/~jml/launchpad/readme/+merge/32238
Your team Launchpad code reviewers is requested to review the proposed merge of lp:~jml/launchpad/readme into lp:launchpad/devel.
=== modified file 'README'
--- README	2010-04-06 20:07:30 +0000
+++ README	2010-08-10 18:28:49 +0000
@@ -1,4 +1,106 @@
-This is the top level project, that supplies the infrastructure for testing,
-and running launchpad.
-
-Documentation is in the doc directory or on the wiki.
+====================
+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:
+
+  $ bzr branch lp: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. bin/ will be empty in a fresh checkout, the actual
+    content lives in 'buildout-templates'.
+
+  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.
+
+  buildout-templates/
+    Templates that are generated into actual files, normally bin/ scripts,
+    when buildout is run. If you want to change the behaviour of bin/test,
+    look here.
+
+  bzrplugins/, optionalbzrplugins/
+    Bazaar plugins used in running Launchpad.
+
+  sourcecode/
+    A directory into which we symlink branches of some of Launchpad's
+    dependencies.  Don't ask.
+
+You never have to care about 'benchmarks', 'override-includes' or
+'package-includes'.