Project

General

Profile

Development getting started » History » Version 14

Version 13 (MarcLandis, 03/11/2010 10:28 AM) → Version 14/18 (johu, 04/23/2010 08:49 PM)

h1. Getting started

{{toc}}

This guide guide describes how you get involved as new developer. If you only want to contribute patches you can checkout following guide
[[Creating_Translation_git_patches]]

h2. Redmine

No source code change without an issue. Quassel project manages bugs and features with the redmine plattform. To get open issue (bug or feature) assigned, you have to setup account here on http://bugs.quassel-irc.org.

"register here":http://bugs.quassel-irc.org/account/register

Please choose a nick is identical or similar to your irc nick.

h2. Git

Install git on your operation system and configure it.

<pre>
git config --global user.name "First name and last name"
git config --global user.email registered@email.example.com
</pre>

Optional you can switch colorful output on.

<pre>
git config --global color.ui auto
</pre>

h2. Gitorious

h3. Setup account

"register here":http://gitorious.org/users/new

Please choose a nick is identical or similar to your irc nick.

h3. quassel clone

Setup your personal clone of quassel. Go to http://gitorious.org/quassel/quassel/clone and choose a name like yournicks-quassel.

Switch to preferred directory for your projects like <code>/home/yournick/projects</code>. Now you can clone the personal quassel clone to local machine.
<pre>
git clone git://gitorious.org/~yournick/quassel/yournicks-quassel.git
</pre>

h3. ssh key

To push changes you will need a SSH key pair. To generate it on linux type the command:

<pre>
ssh-keygen -t rsa
</pre>

On Windows you can check the "official faq":http://gitorious.org/about/faq for a solution.

After following instructions, you should now have a private key like id_dsa and public key *id_dsa.pub* in your _~/.ssh/_. Upload the public key in your gitorious account options. http://gitorious.org/~yournick/keys/new

h3. ssh agent

_TODO_

h2. Workflow

h3. First step

Get and issue to work on. If you have proper rights on redmine assign assign self, otherwise ask in irc to get it.

h3. Create branch

Remember do not work on master branch. Just create one branch for one.

<pre>git branch branch_issue_x</pre>

h3. Switch to branch

<pre>git checkout branch_issue_x</pre>

h3. Implementation

Work on this checkout - follow the normal development workflow...

h3. Commit

Commit changes to your local checkout

<pre>git commit -a</pre>

Please try to merge all your commits to one.

_TODO EXAMPLE COMMAND_

*Note*: If you add _fixes issue-number_ to your commit message, redmine will close your issue with the issue number.

h3. Publish

To publish your changes just push it to gitorious. You will need running ssh-agent with your private ssh key as described above.

<pre>git push git@gitorious.org:~yournick/quassel/yournicks-quassel.git branch_issue_x</pre>

h3. Merge request

To submit your changes just create a merge request on gitorious by going to your clone page and selecting *Request merge* in the menu.

h3. Cleanup

If your merge request is applied, you can delete your branch.

* local branch
<pre>git branch -D branch_issue_x</pre>

* remote branch
<pre>git push git@gitorious.org:~yournick/quassel/yournicks-quassel.git :branch_issue_x</pre>
_TODO_