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
|
<!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.37.1" />
<title>Nine Nines: Short history</title>
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic' rel='stylesheet' type='text/css'>
<link href="/css/99s.css?r=1" 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="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>Short history</span></h1>
<div class="paragraph"><p>This chapter aims to be a brief record of the life of the
Erlang.mk project.</p></div>
<div class="sect1">
<h2 id="_before_erlang_mk">Before Erlang.mk</h2>
<div class="sectionbody">
<div class="paragraph"><p>Erlang.mk originates from the Cowboy project. Cowboy started
as a Rebar project and I, Loïc Hoguin, was very happy with it
for a couple years. Over time however I started getting annoyed
and frustrated by a number of things, including bad defaults,
changing defaults and overall slowness.</p></div>
<div class="paragraph"><p>In particular, at the time I gave up on Rebar, the Cowboy
test suite was taking about five minutes to run. A quick experiment
showed I could get much lower times by simply invoking <code>ct_run</code>
directly. On January 4th, 2013, the Cowboy test suite took less
than a minute to complete.</p></div>
<div class="paragraph"><p>Following this success I started removing a little more and,
on the fateful day of January 5th, 2013, removed the dependency
on Rebar entirely. Rebar, and in particular the concept of
dependencies, was, and still is, a pretty strong influence.</p></div>
<div class="paragraph"><p>Erlang.mk was conceived.</p></div>
<div class="paragraph"><p>A few months passed and, on May 1st, 2013, the Erlang.mk
repository was created. Erlang.mk was born.</p></div>
<div class="paragraph"><p>Little did I know how much it would grow.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_lifetime_of_the_project">Lifetime of the project</h2>
<div class="sectionbody">
<div class="paragraph"><p>Erlang.mk would eventually become a much larger file able to
deal with many more projects than just Cowboy. From the birth
of the project, the biggest force for growth was user contributions,
because Erlang.mk appealed to a variety of people with different
needs, needs that Erlang.mk was not fulfilling yet.</p></div>
<div class="paragraph"><p>The project was split into smaller files focused on a different
feature each, and a build script was written to build the single
Erlang.mk file.</p></div>
<div class="paragraph"><p>A test suite was contributed by a user, and later taken as a basis
for the current, much more complete test suite. Turns out testing
a Makefile is pretty straightforward.</p></div>
<div class="paragraph"><p>A package index was added to solve the problem of discovering
Erlang projects.</p></div>
<div class="paragraph"><p>After trying to see if Erlang build tools could cooperate, the
decision was made to improve compatibility with existing Rebar
projects by patching Rebar out, using Rebar. This feature, called
autopatch, proved very successful and made Erlang.mk compatible
with more than 90% of all Erlang projects.</p></div>
<div class="paragraph"><p>Erlang.mk documentation was much improved and the Erlang.mk website
was created in the summer of 2015.</p></div>
<div class="paragraph"><p>Over the year of 2015, Erlang.mk went from curiosity to a serious
alternative to other Erlang build tools. The user base increased
immensely and large projects started using it, including RabbitMQ
from the 3.6.0 release onward.</p></div>
<div class="paragraph"><p>A bright future lies ahead.</p></div>
</div>
</div>
<nav style="margin:1em 0">
<a style="float:left" href="https://ninenines.eu/docs/en/erlang.mk/1/guide/why/">
Why Erlang.mk
</a>
<a style="float:right" href="https://ninenines.eu/docs/en/erlang.mk/1/guide/contributing/">
Contributing
</a>
</nav>
</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 © Loïc Hoguin 2012-2018</p>
</div>
</div>
</div>
</footer>
<script src="/js/custom.js"></script>
</body>
</html>
|