Project

General

Profile

Getting started

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

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

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

Git

Install git on your operation system and configure it.

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

Optional you can switch colorful output on.

git config --global color.ui auto

Github

Setup account

register here

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

quassel clone

Setup your personal clone of quassel. Fork the repository at http://github.com/quassel/quassel/

Switch to preferred directory for your projects like /home/yournick/projects. Now you can clone the personal quassel clone to local machine.

git clone https://github.com/yournick/quassel.git

ssh key

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

ssh-keygen -t rsa

For more details or if you're on Windows or OSX you can check the github help for more info.

After following instructions, you should now have a private key like id_rsa and public key id_rsa.pub in your ~/.ssh/. Upload the public key in your github account settings: https://github.com/settings/ssh

ssh agent

TODO

Workflow

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.

Create branch

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

git branch branch_issue_x

Switch to branch

git checkout branch_issue_x

Implementation

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

Commit

Commit changes to your local checkout

git commit -a

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.

Publish

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

git push git@github.com:yournick/quassel.git branch_issue_x

Pull request

To submit your changes just create a pull request on github by clicking on the 'Pull request' button that's shown in several places. Alternatively just go to https://github.com/yournick/quassel/pull/new/branch_issue_x

Cleanup

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

  • local branch
    git branch -D branch_issue_x
  • remote branch
    git push git@github.com:yournick/quassel.git :branch_issue_x

Stay up to date

  • Follow the main development branch by adding it as remote branch.
git remote add upstream git://github.com/quassel/quassel.git
  • Update by pulling from the remote.
git pull --rebase upstream master

Now you can push the changes to your remote as described.

Note You should only push these changes to your remote master. Do not push other changes to your master.