summaryrefslogtreecommitdiffstats
path: root/docs/en/erlang.mk/1/guide/contributing/index.html
blob: e962724c4a7fa224e4872d35f2f5da94f40a0252 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="Loïc Hoguin based on a design from (Soft10) Pol Cámara">

    <meta name="generator" content="Hugo 0.16" />

    <title>Nine Nines: Contributing</title>

    <link href='http://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic' rel='stylesheet' type='text/css'>
	
    <link href="/css/bootstrap.min.css" rel="stylesheet">
    <link href="/css/99s.css" rel="stylesheet">

    <link rel="shortcut icon" href="/img/ico/favicon.ico">
    <link rel="apple-touch-icon-precomposed" sizes="114x114" href="/img/ico/apple-touch-icon-114.png">
    <link rel="apple-touch-icon-precomposed" sizes="72x72" href="/img/ico/apple-touch-icon-72.png">
    <link rel="apple-touch-icon-precomposed" href="/img/ico/apple-touch-icon-57.png">

    
</head>


<body class="">
  <header id="page-head">
    <div id="topbar" class="container">
        <div class="row">
          <div class="span2">
            <h1 id="logo"><a href="/" title="99s">99s</a></h1>
          </div>
          <div class="span10">
            
            <div id="side-header">
              <nav>
                <ul>
                  <li><a title="Hear my thoughts" href="/articles">Articles</a></li>
  				  <li><a title="Watch my talks" href="/talks">Talks</a></li>
  				  <li class="active"><a title="Read the docs" href="/docs">Documentation</a></li>
  				  <li><a title="Request my services" href="/services">Consulting & Training</a></li>
                </ul>
              </nav> 
              <ul id="social">
                <li>
                  <a href="https://github.com/ninenines" title="Check my Github repositories"><img src="/img/ico_github.png" data-hover="/img/ico_github_alt.png" alt="Github"></a>
                </li>
                    <li>
						<a title="Keep in touch!" href="http://twitter.com/lhoguin"><img src="/img/ico_microblog.png" data-hover="/img/ico_microblog_alt.png"></a>
					</li>
                    <li>
						<a title="Contact me" href="mailto:[email protected]"><img src="/img/ico_mail.png" data-hover="/img/ico_mail_alt.png"></a>
					</li>
              </ul>
            </div>
          </div>
        </div>
    </div>


</header>

<div id="contents" class="two_col">
<div class="container">
<div class="row">
<div id="docs" class="span9 maincol">

<h1 class="lined-header"><span>Contributing</span></h1>

<div class="paragraph"><p>You are welcome and encouraged to contribute.</p></div>
<div class="paragraph"><p>This is how.</p></div>
<div class="sect1">
<h2 id="_priorities">Priorities</h2>
<div class="sectionbody">
<div class="paragraph"><p>From the most important to the least important:</p></div>
<div class="ulist"><ul>
<li>
<p>
Bugs
</p>
</li>
<li>
<p>
Package issues/additions
</p>
</li>
<li>
<p>
Refactoring
</p>
</li>
<li>
<p>
Features
</p>
</li>
</ul></div>
</div>
</div>
<div class="sect1">
<h2 id="_bugs">Bugs</h2>
<div class="sectionbody">
<div class="paragraph"><p>If you have found a bug, you should open a ticket. Include
everything relevant including the command you used, output,
a link to the code that triggers the issue, why you think
this is a bug, etc.</p></div>
<div class="paragraph"><p>If you think you have found a bug but you are not sure, you
should open a ticket as previously explained.</p></div>
<div class="paragraph"><p>If you have found a bug and you need it to be solved RIGHT
NOW, open a ticket as previously explained.</p></div>
<div class="paragraph"><p>Once you have opened a ticket, be patient, try to answer
questions in a timely manner and confirm that the bug was
indeed fixed when it is.</p></div>
<div class="paragraph"><p>If you can&#8217;t be patient, either try to solve the bug and
contribute the fix back or become a paying customer.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_code">Code</h2>
<div class="sectionbody">
<div class="paragraph"><p>The code is located in the <em>core/*.mk</em> and <em>plugins/*.mk</em> files.
The tests are located in the <em>test/Makefile</em> and <em>test/*.mk</em> files.</p></div>
<div class="paragraph"><p>If you have a fix or a hack for a bug, you should open a
pull request. Any fix should include a test case that fails
before the fix and is working after.</p></div>
<div class="paragraph"><p>If you have a test case that reproduces a bug, but no fix for
it, you should open a pull request.</p></div>
<div class="paragraph"><p>Changes need to be tested with at least the <code>make check</code>
command. A specific test case can be tested using <code>make check c=CASE</code>
with <code>CASE</code> the name of the target to run. Output can be
modulated using the <code>V</code> variable, which is an integer
from 0 to 4. A typical use would be <code>make check c=dialyzer V=3</code>.
The value 4 is particular and shows expanded commands right
before they are executed.</p></div>
<div class="paragraph"><p>To run tests in parallel, use the <code>-j</code> option. It is generally
a good idea to also use the <code>-k</code> option to run all tests even
if one fails. For example: <code>make check -j 32 -k</code>.</p></div>
<div class="paragraph"><p>Some changes should be tested against all packages. Continue
reading for more details on testing them.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_packages">Packages</h2>
<div class="sectionbody">
<div class="paragraph"><p>You can search existing packages using the <code>make search q=STRING</code>
command. This can be done both from an Erlang.mk project or
directly from the Erlang.mk repository.</p></div>
<div class="paragraph"><p>Packages can be added to the index using the <code>pkg_add.sh</code> script.</p></div>
<div class="listingblock">
<div class="content"><!-- Generator: GNU source-highlight 3.1.8
by Lorenzo Bettini
http://www.lorenzobettini.it
http://www.gnu.org/software/src-highlite -->
<pre><tt>$ git clone https<span style="color: #990000">:</span>//github<span style="color: #990000">.</span>com<span style="color: #990000">/</span><span style="color: #009900">$YOURUSERNAME</span>/erlang<span style="color: #990000">.</span>mk
$ cd erlang<span style="color: #990000">.</span>mk
$ <span style="color: #990000">.</span>/pkg_add<span style="color: #990000">.</span>sh cowboy git https<span style="color: #990000">:</span>//github<span style="color: #990000">.</span>com/ninenines/cowboy <span style="color: #993399">1.0</span><span style="color: #990000">.</span><span style="color: #993399">0</span>
  http<span style="color: #990000">:</span>//ninenines<span style="color: #990000">.</span>eu <span style="color: #FF0000">"Small, fast and modular HTTP server."</span>
$ git push origin master</tt></pre></div></div>
<div class="paragraph"><p>Before sending a pull request, you should test your package.
You can use the following command: <code>make check p=PACKAGE</code>,
where <code>PACKAGE</code> is the name of the package, for example
<code>cowboy</code>.</p></div>
<div class="paragraph"><p>To test all packages, the <code>make packages</code> command can be used.
This can take a long time. Some packages will fail with certain
versions of Erlang, or if a prerequisite is missing from your system.
You can of course speed things up using the <code>-j</code> and <code>-k</code> flags.</p></div>
<div class="paragraph"><p>After all packages have been tested, you can run the command
<code>make summary</code> to know what changed since the previous run.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_documentation">Documentation</h2>
<div class="sectionbody">
<div class="paragraph"><p>The documentation is always right.</p></div>
<div class="paragraph"><p>If you think you have found a mistake in the documentation,
this is a bug. You can either open a ticket or send a pull
request.</p></div>
<div class="paragraph"><p>To make sure that the documentation changes work, install
the listed <a href="../asciidoc">Requirements</a> on your system and
run <code>make docs</code>.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_feature_requests">Feature requests</h2>
<div class="sectionbody">
<div class="paragraph"><p>If you have an awesome idea or need something that Erlang.mk
doesn&#8217;t provide yet, open a ticket. Provide as much detail as
possible.</p></div>
<div class="paragraph"><p>If you have code, great! Open a pull request as previously
explained.</p></div>
<div class="paragraph"><p>If not, you can still improve your feature request by writing
the related documentation.</p></div>
</div>
</div>



</div>

<div class="span3 sidecol">


<h3>
	Erlang.mk
	1
	
	User Guide
</h3>

<ul>
	
	
	
</ul>

<h4 id="docs-nav">Navigation</h4>

<h4>Version select</h4>
<ul>
	
	
	
		<li><a href="/docs/en/erlang.mk/1/guide">1</a></li>
	
</ul>

</div>
</div>
</div>
</div>

      <footer>
        <div class="container">
          <div class="row">
            <div class="span6">
              <p id="scroll-top"><a href="#">↑ Scroll to top</a></p>
              <nav>
                <ul>
                  <li><a href="mailto:[email protected]" title="Contact us">Contact us</a></li><li><a href="https://github.com/ninenines/ninenines.github.io" title="Github repository">Contribute to this site</a></li>
                </ul>
              </nav>
            </div>
            <div class="span6 credits">
               <p><img src="/img/footer_logo.png"></p>
               <p>Copyright &copy; Loïc Hoguin 2012-2016</p>
            </div>
          </div>
        </div>
      </footer>

    
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    <script src="/js/bootstrap-carousel.js"></script>
    <script src="/js/bootstrap-dropdown.js"></script>
    <script src="/js/custom.js"></script>
  </body>
</html>