~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to docs/contributing/code.rst

  • Committer: Andrew Hutchings
  • Date: 2011-02-24 14:52:15 UTC
  • mto: (2198.2.4 drizzle-staging)
  • mto: This revision was merged to the branch mainline in revision 2199.
  • Revision ID: andrew@linuxjedi.co.uk-20110224145215-tqnjvrtqy0a8pzel
Add basic contributing section to docs

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
.. _code-label:
 
2
 
 
3
Contributing Code
 
4
=================
 
5
 
 
6
SSH Keys
 
7
--------
 
8
 
 
9
You will need to add a public SSH key to Launchpad to be able to push branches
 
10
up for merging.  To do this:
 
11
 
 
12
 #. Generate an SSH key (information on how to do this is in `Launchpad's help pages <https://help.launchpad.net/YourAccount/CreatingAnSSHKeyPair>`_)
 
13
 #. Go to `your SSH keys page <https://launchpad.net/people/+me/+editsshkeys>`_
 
14
 #. Paste your public key into the text box and click the *Import public key*
 
15
    button
 
16
 
 
17
Getting the Code
 
18
----------------
 
19
 
 
20
You will need to prepare a directory for working with Drizzle, the following
 
21
example will assume you want to do this in ~/repos/drizzle:
 
22
 
 
23
.. code-block:: bash
 
24
 
 
25
   mkdir ~/repos
 
26
   cd ~/repos
 
27
   bzr init-repo drizzle
 
28
 
 
29
At this stage you now have an initialized a directory for bzr to use.  Revision
 
30
data will be stored here to save it having to be downloaded/stored for every
 
31
branch.
 
32
 
 
33
.. code-block:: bash
 
34
 
 
35
   cd drizzle
 
36
   bzr branch lp:drizzle trunk
 
37
 
 
38
This will take a little while, it is getting all the revisions since the
 
39
beginning of the repository.  This should only ever need to be done once though.
 
40
 
 
41
.. code-block:: bash
 
42
 
 
43
   bzr branch trunk drizzle-bug-NNNNNN
 
44
   cd drizzle-bug-NNNNNN
 
45
 
 
46
This creates a branch from trunk for you to work on.
 
47
 
 
48
Committing Work
 
49
---------------
 
50
 
 
51
All commits need to have a proper description of the changes made.  This is so
 
52
that future developers can dig through the bzr log to find out why a certain
 
53
change happened.
 
54
 
 
55
When committing a bug fix please use:
 
56
 
 
57
.. code-block:: bash
 
58
 
 
59
   bzr commit --fixes lp:NNNNNN
 
60
 
 
61
This will automatically attach the branch to the bug report when the branch is
 
62
pushed up.
 
63
 
 
64
Coding Standards
 
65
----------------
 
66
 
 
67
Our coding standards can be found inside the
 
68
`Drizzle wiki <http://wiki.drizzle.org/Coding_Standards>`_.
 
69
 
 
70
Test Cases
 
71
----------
 
72
 
 
73
Where possible SQL test cases should be created for your code.  Our test cases
 
74
for bug fixes should be in the ``tests/suite/regression`` directory.  For more
 
75
information about creating test cases please see the :ref:`test run <test-run-label>`
 
76
section of our documentation.
 
77
 
 
78
Pushing Work
 
79
------------
 
80
 
 
81
When you want to push your branch to Launchpad for others to see or for merging
 
82
you can use:
 
83
 
 
84
.. code-block:: bash
 
85
 
 
86
   bzr push lp:~username/drizzle/trunk-bug-NNNNNN
 
87
 
 
88
This will create the branch on Launchpad which you will be able to see on the
 
89
`code page <https://code.launchpad.net/drizzle>`_.  If you make some more commits you simply need to do just ``bzr push`` to get those revisions on Launchpad
 
90
too.
 
91
 
 
92
Merge Proposals
 
93
---------------
 
94
 
 
95
Once your work is done and ready for review you can go to the
 
96
`code page <https://code.launchpad.net/drizzle>`_, click on your branch and you
 
97
will see a link saying *Propose for merging*.
 
98
 
 
99
In this screen simply fill in what this branch does and click the
 
100
*Propose Merge* button.  Someone will review the branch, usually within a day or
 
101
two and if approved it will go though our rigourous testing process which can
 
102
take several hours.  If it needs more work feedback will always be given to
 
103
explain why.