ChiliProject is not maintained anymore. Please be advised that there will be no more updates.
We do not recommend that you setup new ChiliProject instances and we urge all existing users to migrate their data to a maintained system, e.g. Redmine. We will provide a migration script later. In the meantime, you can use the instructions by Christian Daehn.
ChiliProject uses git for source control, the central repository for ChiliProject is the ChiliProject repository on GitHub. You can learn more about git from the git homepage and working with git and GitHub from the GitHub Help. ChiliProject development makes heavy use of git forking, branching and merging, things will go smoother if you have a basic understanding of those concepts before beginning to work on code.
Any development for ChiliProject must be tied to an issue in ChiliProject to improve communication and avoid work duplication. Report and/or confirm any issue before you start working on it and make sure to notify others about your intention to work on that issue by adding a note with your claim to the issue.
The canonical and authoritative source for code is the ChiliProject repository on GitHub, all work must be based on the current state of the
master branch. Development happens in personal repositories and is later merged into the main repository. The first step before you can work on code is to fork the ChiliProject repository, the preferred way is a fork on GitHub, but you can do it locally too.
If you want to fork on GitHub, make sure you are logged in there, go to the ChiliProject repository and click on the "Fork" button at the upper right of the page. Consult the GitHub help on forking for more information. After forking the project, clone the repository to your computer and add the ChiliProject repository as an additional remote, for example:
git clone email@example.com:your_github_username/chiliproject.git cd chiliproject git remote add upstream git://github.com/chiliproject/chiliproject.git
This will add the central ChiliProject repository as the remote called
upstream. If you don't want to use GitHub, you can also clone the ChiliProject repository directly:
git clone git://github.com/chiliproject/chiliproject.git
You should now have a directory called
chiliproject containing the current version of the
Before you create a new branch in your local repository, make sure that your
master branch is up-to-date. If you have forked on GitHub and added the ChiliProject repository as the
upstream remote as describe above, switch to your
master branch and run
git pull upstream master. If you have cloned the ChiliProject repository directly, switching to your
master branch and running
git pull should get you up to speed.
All development for ChiliProject should happen in topic-specific branches in your own repository, the core developers will then pull the changes from there. The branch name should be a descriptive name prefixed by the issue ID. When on the
master branch, you can create a new branch off of it, for example for issue 123, by running:
git checkout -b 123-change_background_from_black_to_blue
If you want to work on a bigger bugfix, breaking changes or a new feature, please get in touch with the Development Team to coordinate your efforts and discuss the best way to implement it. Contacting the Development Team early on will also enable you to get early feedback to your planned changes or even to work with one or some of the core developers. Some changes might also require you to start off of the
unstable branch instead of the
master branch, please check with the Development Team if you are not sure how big your change is and where you should rather start from, consult the branch naming convention for more information.
Code at will, keep a few things in mind though:
- The code must adhere to our Code Standards,
- Include tests as necessary,
- Make sure to not break existing tests,
- The final code should pass a Code Review.
Don't hesitate to commit often, the result is important and extra commits can be combined or skipped as necessary when merging back into the main tree. If you have questions about any part of the process, for example regarding code style or code quality, ask!
When you are done coding, push your branch to your repository on GitHub. Assuming your GitHub repository is
origin and you are on the branch you want to push (
git push origin
Once you've done that, you can visit your new branch on GitHub, send a pull request to the ChiliProject repository (see the GitHub help on pulls for more info), and post the link either to your pull request or to your branch/commit in the corresponding issue in ChiliProject.
If you don't have a GitHub account or don't want to use it, you can also make a patch and attach it to the issue. The patch filename should follow the branch naming convention, assuming you're on the branch
123-change_background_from_black_to_blue, the following command will create a patch file for the difference from this branch to
git diff master > 123-change_background_from_black_to_blue.patch
Your changes will now be reviewed by at least one member of the Development Team, several if the changes are big. Please watch the issue in case more information or improvements are needed, and don't delete your branch (either locally or on GitHub) until the issue is closed and the code committed to the main ChiliProject repository.