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 |