-
Notifications
You must be signed in to change notification settings - Fork 126
Developer: Contributing
You want to contribute to Archipel? Great! There's a lot of things you can do, according to your skills. This page describes how you can contribute to the project.
There's a lot of things to do around Archipel which doesn't imply coding.
- Installation manual (and translation)
- User manual (and translation)
- Tracking bugs (and post them to the tracker)
- Packaging Archipel for different distribution
- Support people on the IRC channel (irc://irc.freenode.net/#archipel)
- Blogging, tweeting, posting, shouting in the street to convict the world Archipel rocks
- Design some cool icons set
Or simply donate some bucks or some hardware :)
You have skills in python or Cappuccino (or Cocoa, as the framework is very similar)? You can help us.
First of all you need to fork Archipel's official repository. You'll need a github account to do this. Then you can clone your fork to your computer.
git clone git@github.com:<YOUR_GITHUB_USERNAME>/Archipel.git
You'll also want to be able to update your copy from the official repo. So let's add the upstream repo:
cd Archipel
git remote add upstream https://github.com/ArchipelProject/Archipel.git
Now you should have two remote repositories:
git remote
> origin
> upstream
You'll need an integration branch to merge all the new wonderfull features you'll add:
git checkout -b integ
> Switched to a new branch 'integ'
git branch
> * integ
> * master
Note this, this is important : you will never commit or merge into your master branch. Master is master. You will use to get the upstream changes, and only that.
So you want to fix a bug, add a great feature ? No problem, you create a new branch (because remember you will never commit or merge into your master branch!) :
git checkout -b feature-world-conquest
Then you work in this branch, commit when you want, revert, etc. In short: you work. If you work on two different topics (add the world conquest feature and fix a bug) you create a topic branch for each.
So you have fixed a bug in branch fix-the-awfull-bug
and add a feature in branch feature-world-conquest
. You will merge these branches into your integ
branch.
git checkout integ
git merge fix-the-awfull-bug
git merge feature-world-conquest
and you test your changes.
It's been a while you work on different topics. You want to test your changes with last upstream changes :
git checkout master
git fetch upstream
git merge upstream/master
At this time your sacred branch master
is up-to-date. To test it just merge it into your integration branch:
git checkout integ
git merge master
Resolve conflicts if any, and try.
Now, you want to publish your changes in the main repository. You will push to your fork on github. to do this
git push origin fix-the-awfull-bug
git push origin feature-world-conquest
You go to github at your Archipel fork, then for each new topic branches, you select it, then do a pull request. We'll review the code, eventually merge it in the upstream repo. Then you'll be able to fetch upstream changes, and eventually drop your old topic branches.
- You should fetch master quite often
- Always create a topic branch from the master branch
- DO NOT work on master branch