Git Workflow-Introduction


The SproutCore project uses Git to manage its source code.  Git is an incredibly flexible distributed source code system, but to get the most out of it you need to adopt a workflow.  The pages in this section describe the standard work flow used by the SproutCore project.   If you plan to modify SproutCore itself, either for your own project or to contribute back, you should get to know how this process works.

 

Repositories

 

The official version of the SproutCore source code lives at sproutcore/sproutcore.git on GitHub.  This repository contains a master branch, which is the current version of code that will be included in the next official release of SproutCore.  It may also contain other branches for major past versions such as currently the 1-4-stable branch.

 

In addition to the public repository, most companies or persons who are working actively on SproutCore also maintain a private fork where they can stage enhancements until they are ready for submission back to the main public branch.  Often times this is necessary both it allow the company to work off of a version that contains any fixes they need as well as allowing the company to do any required legal review before submitting code back to the public space.

 

Most day-to-day development work currently happens on forks of the official repository and commits are made back periodically when teams reach a stable submission point.  Our goal is to get back to making regular contributions directly to the open source repository some day, but for the moment this allows all parties the most flexibility in exchanging changes.

 

SC repos

 

 

Contributing To the Public Version

 

If you would like to make changes to the public version of SproutCore, we recommend that you first fork it using Github.  Then clone your fork and make your changes there.  When you are finished, send a pull request to the sproutcore account.  We try to pull changes and push them to the public repository after reviewing them as quickly as possible to share with others.

 

You can find all information about forking, switching forks on your local machine, pull request, and other things regarding working with git on the help page of Github.

 

Working On Your Own Fork

 

In general you can follow any process you like when working on your own fork, but this section will describe how the SproutCore team itself works on code.  In general this setup works really well if you plan to have a team of 12 or less people working on the code at one time.

 

Developers working on SproutCore can be contributors or integrators (or both).  A contributor is someone who is working on code to extend or enhance SproutCore itself.  An integrator is someone who has authority to review patches from contributors and integrate it into the master project.  We are creating instructional pages for both types of developers on how to setup and use git:

 

 

Other Helpful Resources