Merge branch 'master' of https://github.com/danvk/dygraphs into i382
[dygraphs.git] / docs / changes.html
... / ...
CommitLineData
1<!DOCTYPE html>
2<html>
3 <head>
4 <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7; IE=EmulateIE9">
5 <title>Guide to making dygraphs changes</title>
6 <style type="text/css">
7 code {
8 white-space: pre;
9 border: 1px dashed black;
10 display: inline-block;
11 margin-left: 5px;
12 margin-right: 5px;
13 padding: 2px;
14 }
15 pre {
16 white-space: pre;
17 border: 1px dashed black;
18 padding: 5px;
19 }
20 body { max-width: 800px; }
21 ol > li { padding: 5px; }
22 </style>
23 </head>
24 <body>
25 <h2>Guide to making dygraphs changes</h2>
26
27 <p>So you've made a change to dygraphs and would like to contribute it back
28 to the open source project. Wonderful!</p>
29
30 <p>This is a step-by-step guide explaining how to do it.</p>
31
32 <h3>dygraphs style</h3>
33 <p>First of all, please try to follow the style of the existing dygraphs
34 code. This will make the review process go much more smoothly.<p>
35
36 <p>A few salient points:</p>
37 <ol>
38 <li> I try to adhere to Google's <a
39 href="http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml">
40 JS style guide</a> and would appreciate it if you try to as well. This
41 means:
42 <ul>
43 <li>No tabs! Indent using two spaces.
44 <li>Use camelCase for variable and function names.
45 <li>Limit lines to 80 characters.
46 </ul>
47
48 <li>Please run 'lint.sh' to see if you've introduced any new violations.
49
50 <li>If you've added a new feature, add a test for it (in the tests/
51 directory) or a gallery entry.
52
53 <li>If you've added an option, document it in
54 dygraph-options-reference.js. You'll get lots of warnings if you don't.
55
56 <li>If you've fixed a bug or added a feature, add an auto_test for
57 it.<br/>
58 This ensures that we won't inadvertently break your feature in the
59 future. To do this, either add to an existing auto_test in
60 auto_tests/tests or run
61 <code>auto_tests/misc/new-test.sh your-test-name</code> to
62 create a new one. There are two easy ways to run tests:
63 <ul>
64 <li>You can run your auto_test in any browser by visiting
65 <code>auto_tests/misc/local.html</code>. This allows you to debug your
66 test, or test against a specific browser.
67 <li>You can run your auto_test on the command-line by running
68 <code>./test.sh</code>. (It requires installing
69 <a href="http://phantomjs.org">phantomjs</a> on your computer.)
70 </ul>
71 </ol>
72
73 <h3>Sending a Pull Request</h3>
74
75 <p>dygraphs is hosted on github, which uses a "pull request" model. They
76 have a good writeup <a
77 href="http://help.github.com/send-pull-requests/">here</a>. These
78 instructions discuss dygraphs more specifically.</p>
79
80 <p>The list of steps may look a bit daunting, but it's not too bad,
81 especially if you have any familiarity with git or github. If you run into
82 any problems while following the instructions, feel free to contact
83 dygraphs-users.</p>
84
85 <p>Why not just take patches? This process means less work for me (the
86 maintainer) and it also results in your name appearing in the list of
87 dygraphs commits. This lets you take credit for your work.</p>
88
89 <ol>
90 <li>Create an account on <a href="http://github.com">github</a>. This is
91 free, painless and will let you claim credit for your changes.
92
93 <li>Install git. github has a good writeup <a
94 href="http://help.github.com/git-installation-redirect">here</a>.
95
96 <li>Create a fork of the dygraphs repository on github by
97 clicking <a href="https://github.com/danvk/dygraphs">this link</a> and
98 then the "Fork" button.
99
100 <li>You should see a URL along the lines of
101 <code>git@github.com:yourname/dygraphs.git</code><br/>Copy this, open up a
102 terminal and run<br/>
103 <pre>git clone git@github.com:yourname/dygraphs.git</pre> This
104 pulls the dygraphs code down onto your local disk.
105
106 <li>cd into the dygraphs directory and make your changes.<br/>
107 If you've already got them somewhere else, just copy them over.<br/>
108
109 <li>Be a good citizen! Make sure your code follows the guidelines
110 above.<br/>
111 You'll have to do this before I accept your changes, so you may as well
112 do it now
113
114 <li>Commit your changes locally: run
115 <pre>git add .
116git commit</pre>
117 Type in a description of your change. This will
118 eventually appear in the dygraphs <a
119 href="https://github.com/danvk/dygraphs/commits/master">commit list</a>.
120
121 <li>Push your changes to github by running <pre>git push</pre>This will
122 send your changes to your forked repository on github.
123
124 <li>Go to your fork of dygraphs on github (i.e.
125 github.com/yourname/dygraphs).<br/>
126 Click the "Pull Request" button.<br/>
127 This will send me an email with a pointer to your changes.
128
129 <li>I'll review your changes and (unless your code is perfect!) give you
130 some feedback. Make these suggested changes in your local git client and
131 re-run "git commit" and "git push" so that I can see them.
132
133 <li>Once your change is ready, I'll pull it into the main dygraphs
134 repository and publish it to the web.
135 </ol>
136
137 <!-- Google Analytics -->
138<script type="text/javascript">
139 var _gaq = _gaq || [];
140 _gaq.push(['_setAccount', 'UA-769809-2']);
141 _gaq.push(['_trackPageview']);
142 (function() {
143 var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
144 ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
145 var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
146 })();
147</script>
148 </body>
149</html>