Skip to content

Development Process

dalers edited this page Aug 25, 2012 · 15 revisions

The Adapto Project uses a typical distributed development process.

First, join the Sourceforge Adapto-project developers mailing list. Second, get a free GitHub user id if you don't already have one. Once you have a GitHub user id, you can contribute to the Adapto Wiki on GitHub.

To contribute code to Adapto, fork the main egeniq/adapto repository to your own GitHub account. If you're actively working on something, please send a note to the mailing list so the community is aware and everyone can benefit. Successful open source projects are collaborative and depend on everyone staying informed to work together.

Development Steps

1. Login to GitHub and fork the master Adapto project to your own GitHub account.

Access the egeniq/adapto project and click the Fork button at the top of the page (just below your login name). Forking is essentially the same as cloning, but with access to GitHub's unique Pull-Request feature for submitting your changes back to the core project team.
2. Clone your Adapto fork to your development system.
How you do this will depend on the protocol you want to use and on your development environment. The Git protocol uses SSH keys instead of passwords, but uses a non-standard port and is generally blocked by corporate firewalls. The HTTPS protocol generally works behind corporate firewalls (although unfortunately not mine), but requires you to type your GitHub login name and password each commit (although they can be temporarily cached). You specify which protocol to use by the format of the source URL in the clone command.
On Windows, I use Git-Extensions with PuTTY/Paegent for managing my ssh keys, and clone using the Read-Write SSH URL shown at the top of my GitHub repo (I tried using GitHub for Windows once, but found it too dumbed-down for my liking).
3. Set an upstream remote in your local clone.
Setting an upstream remote makes it easy to pull changes from the master Adapto repository to your local clone, which should be done periodically and especially before pushing local changes back to your GitHub fork to avoid a potential mess of 3-way merging if you and the master project have diverged.
Using Git Bash on Windows, I specify a the Read-only SSH URL so Git doesn't try authenticating me (because I don't have privileges to the master Adapto repository anyway):
    dale@DALE-T61 /c/xampp/htdocs/adapto (master)
    $ git fetch upstream
    From git://github.com/dalers/adapto
    * [new branch]      master     -> upstream/master
    
    dale@DALE-T61 /c/xampp/htdocs/adapto (master)
    $

4. Make changes in your local adapto working directory - fix a bug, add a feature, or just correct a spelling mistake, it's all good.

Test your changes locally!
5. Commit your changes to your local repository
Use git add/commit/commit -a to commit your changes locally
6. Push your local changes to your GitHub fork (in your own GitHub account).
First, fetch any changes that were committed recently to the master Adapto since you cloned locally, then use "$ git push origin master" to push your local changes to the repo in your GitHub account.
7. Send the core team a pull request for your changes
Click the Pull Request button at the top of your Adapto fork (in your GitHub account).
8. Keep an eye on the pull request as Ivo may comment on your code there.

9. Once your pull is approved, Ivo will merge it into the master codebase.

Clone this wiki locally