Merge lp:~junrrein/noise/developer-documentation into lp:~elementary-apps/noise/trunk

Proposed by Julián Unrrein
Status: Work in progress
Proposed branch: lp:~junrrein/noise/developer-documentation
Merge into: lp:~elementary-apps/noise/trunk
Diff against target: 159 lines (+155/-0)
1 file modified
HACKING (+155/-0)
To merge this branch: bzr merge lp:~junrrein/noise/developer-documentation
Reviewer Review Type Date Requested Status
kay van der Zander (community) unmerged revisions Needs Fixing
David Gomes Pending
Review via email: mp+180706@code.launchpad.net

Commit message

Add developer documentation.

Description of the change

Add developer documentation about how to contribute to Noise.

To post a comment you must log in.
1521. By Julián Unrrein

Include option to generate debug symbols in the configure step.

Revision history for this message
kay van der Zander (kay20) wrote :

Hey thanks,

Everything looks to be there.
One thing i don't like is you used 2 commits,
please use uncommit command of bazaar.
see unmerged revisions below

review: Needs Fixing (unmerged revisions)

Unmerged revisions

1521. By Julián Unrrein

Include option to generate debug symbols in the configure step.

1520. By Julián Unrrein

Add developer documentation.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added file 'HACKING'
2--- HACKING 1970-01-01 00:00:00 +0000
3+++ HACKING 2013-08-17 21:48:55 +0000
4@@ -0,0 +1,155 @@
5+====== Noise - Contribute ======
6+
7+This document is licensed under the LGPL 2.1.
8+
9+====== Testing the latest build ======
10+
11+Get daily builds in Launchpad (https://launchpad.net/~elementary-os/+archive/daily ppa:elementary-os/daily).
12+
13+====== Join IRC chat rooms ======
14+
15+Join #elementary-dev on Freenode: https://kiwiirc.com/client/irc.freenode.net/elementary-dev.
16+
17+====== Contribute without touching code ======
18+
19+- http://bugs.launchpad.net/noise Go through problem reports and check Unconfirmed bugs or those lacking information and mark any duplicates you spot.
20+- https://translations.launchpad.net/noise Help getting Noise translated in your language!
21+
22+====== Check out the sources ======
23+
24+ bzr branch lp:noise
25+
26+The development trunk (master, tip) is the latest iteration of the next release.
27+Browse it online and look for other branches at http://code.launchpad.net/noise
28+
29+====== Build the code ======
30+
31+Refer to INSTALL for required dependencies.
32+
33+Then:
34+ mkdir build
35+ cd build
36+ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug ..
37+ make
38+
39+Run Noise:
40+ ./src/noise
41+
42+To run Noise from a local branch, you will need to already have Noise installed in your system, since configuration files and plugins are loaded from system directories.
43+
44+If you'd like to install from your local branch:
45+ sudo make install
46+
47+====== Debugging issues ======
48+
49+Testing an installed release may reveal crashers or memory corruption which require investigating from a local build and obtaining a stacktrace (backtrace, crash log).
50+
51+ gdb ./src/noise
52+ run --debug
53+
54+====== Coding style and quality ======
55+
56+Check the official elementary Code Style guide at:
57+ http://elementaryos.org/docs/code/code-style
58+
59+====== Important: Keep fixes for different bugs in different branches ======
60+
61+Branches that contain patches to fix more than one bug will be rejected, and you will be asked to supply a separate branch for every bug fix.
62+This doesn't apply to patches that are indivisible by nature, and that fix multiple bugs.
63+
64+The reasons to work in this way are the following:
65+
66+ * If one of the bugs targeted by your branch is correctly fixed, but one of the other bugs is incorrectly fixed or needs corrections, the branch won't be accepted until everything looks ok for all bugs. This causes an unnecessary delay for the bugs that where fixed correctly.
67+ * Suppose your branch was accepted for merging in the main one. Later, it is discovered that your branch introduces faulty behavior. The standard course of action for these situations is to revert the merge that introduced that faulty behavior. This will cause that all of your fixes are reverted (even the ones that didn't cause problems) because there was no way of discriminating between them. If a separate branch for each bug fixed existed, only the offending one would have been reverted, and not all of them.
68+
69+Be sure to understand this, and avoid a headache later!
70+
71+====== Committing code ======
72+
73+Make a branch which will contain your changes for fixing bug XXXX:
74+ bzr branch lp:noise fix-XXXX
75+
76+Tell Bazaar your name if you haven't yet:
77+ bzr whoami "Real Name <email@address>"
78+
79+See what you did so far:
80+ bzr diff
81+ bzr diff | colordiff
82+
83+Get an overview of changed and new files:
84+ bzr status
85+
86+Add new files, move/ rename or delete:
87+ bzr add FILENAME
88+ bzr mv OLDFILE NEWFILE
89+ bzr rm FILENAME
90+
91+After making your changes, you need to commit your work as a new revision.
92+ bzr commit -m "Commit message"
93+
94+Commit your changes in small increments. It is better to keep different changes in different commits.
95+
96+To see the last 5 revisions in the current branch:
97+ bzr log -l5
98+ bzr log -l5 -p | less
99+
100+In the case you committed something wrong or want to ammend it:
101+ bzr uncommit
102+
103+If you want to revert all the changes made after the last revision:
104+ bzr revert
105+
106+Remember to keep your branch updated:
107+ bzr pull
108+
109+As a general rule of thumb, ''bzr help COMMAND'' gives you an explanation of any command and ''bzr help commands'' lists all available commands.
110+
111+====== Push proposed changes ======
112+
113+If you haven't yet, https://launchpad.net/~/+editsshkeys check that Launchpad has your SSH key - you can create an SSH key with Passwords and Keys aka Seahorse or ''ssh-keygen -t rsa'' - and use ''bzr launchpad-login'' to make youself known to bzr locally.
114+
115+If you checked out trunk, and added your patch(es), just push it under your username in Launchpad and you can propose it for merging into trunk. This will automatically request a review from other developers who can then comment on it and provide feedback.
116+
117+ bzr push lp:~USERNAME/noise/fix-123456
118+ bzr lp-open
119+
120+The last command will open a summary of the current branch in your web browser. There, you will be able to propose it for merging into trunk.
121+Your branch will be reviewed by another developer. At this stage, you may be notified that changes need to be made to your branch, so keep an eye on your email inbox!
122+After the branch is approved by the reviewer, it will get merged into the main project's source code.
123+
124+
125+What happens to all the branches?
126+
127+Leave the branches alone, approved branches are cleared automatically by Launchpad.
128+
129+For larger feature branches, use the team in Launchpad to allow other developers to work on the code with you.
130+
131+
132+What if I want to help out on an existing merge request that I can't push to?
133+
134+ bzr branch ~OTHERPERSON/noise/fix-123456
135+ cd fix-123456
136+ # make commits
137+ bzr push lp:USERNAME~/midori/fix-123456
138+ bzr lp-open
139+
140+And in the Launchpad web overview of your branch, propose your branch for merging into ~OTHERPERSON/noise/fix-123456
141+
142+
143+Updating a branch that may be out of sync with trunk:
144+
145+ bzr pull
146+ bzr: ERROR: These branches have diverged
147+ bzr merge lp:noise
148+ # Hand-edit conflicting changes
149+ bzr resolve FILENAME
150+ # If any conflicts remain continue fixing
151+ bzr commit -m 'Merge changes from lp:noise'
152+
153+
154+Save a little bandwidth, branch from an existing local copy that you keep around:
155+
156+ bzr branch lp:noise noise
157+ bzr branch noise/ noise-fix-123456
158+ cd noise-fix-123456
159+ bzr pull lp:noise

Subscribers

People subscribed via source and target branches