OLD | NEW |
(Empty) | |
| 1 # Contributing |
| 2 |
| 3 Want to contribute to Polymer? Great! |
| 4 |
| 5 We are more than happy to accept external contributions to the project in the fo
rm of [feedback](https://groups.google.com/forum/?fromgroups=#!forum/polymer-dev
), [bug reports](../../issues), and pull requests. |
| 6 |
| 7 ## Contributor License Agreement |
| 8 |
| 9 Before we can accept patches, there's a quick web form you need to fill out. |
| 10 |
| 11 - If you're contributing as an individual (e.g. you own the intellectual propert
y), fill out [this form](http://code.google.com/legal/individual-cla-v1.0.html). |
| 12 - If you're contributing under a company, fill out [this form](http://code.googl
e.com/legal/corporate-cla-v1.0.html) instead. |
| 13 |
| 14 This CLA asserts that contributions are owned by you and that we can license all
work under our [license](LICENSE). |
| 15 |
| 16 Other projects require a similar agreement: jQuery, Firefox, Apache, Node, and m
any more. |
| 17 |
| 18 [More about CLAs](https://www.google.com/search?q=Contributor%20License%20Agreem
ent) |
| 19 |
| 20 ## Initial setup |
| 21 |
| 22 Here's an easy guide that should get you up and running: |
| 23 |
| 24 1. Setup Grunt: `sudo npm install -g grunt-cli` |
| 25 1. Fork the project on github and pull down your copy. |
| 26 > replace the {{ username }} with your username and {{ repository }} with the
repository name |
| 27 |
| 28 git clone git@github.com:{{ username }}/{{ repository }}.git --recursive |
| 29 |
| 30 Note the `--recursive`. This is necessary for submodules to initialize prope
rly. If you don't do a recursive clone, you'll have to init them manually: |
| 31 |
| 32 git submodule init |
| 33 git submodule update |
| 34 |
| 35 Download and run the `pull-all.sh` script to install the sibling dependencie
s. |
| 36 |
| 37 git clone git://github.com/Polymer/tools.git && tools/bin/pull-all.sh |
| 38 |
| 39 1. Test your change |
| 40 > in the repo you've made changes to, run the tests: |
| 41 |
| 42 cd $REPO |
| 43 npm install |
| 44 grunt test |
| 45 |
| 46 1. Commit your code and make a pull request. |
| 47 |
| 48 That's it for the one time setup. Now you're ready to make a change. |
| 49 |
| 50 ## Submitting a pull request |
| 51 |
| 52 We iterate fast! To avoid potential merge conflicts, it's a good idea to pull fr
om the main project before making a change and submitting a pull request. The ea
siest way to do this is setup a remote called `upstream` and do a pull before wo
rking on a change: |
| 53 |
| 54 git remote add upstream git://github.com/Polymer/{{ repository }}.git |
| 55 |
| 56 Then before making a change, do a pull from the upstream `master` branch: |
| 57 |
| 58 git pull upstream master |
| 59 |
| 60 To make life easier, add a "pull upstream" alias in your `.gitconfig`: |
| 61 |
| 62 [alias] |
| 63 pu = !"git fetch origin -v; git fetch upstream -v; git merge upstream/mast
er" |
| 64 |
| 65 That will pull in changes from your forked repo, the main (upstream) repo, and m
erge the two. Then it's just a matter of running `git pu` before a change and pu
shing to your repo: |
| 66 |
| 67 git checkout master |
| 68 git pu |
| 69 # make change |
| 70 git commit -a -m 'Awesome things.' |
| 71 git push |
| 72 |
| 73 Lastly, don't forget to submit the pull request. |
OLD | NEW |