summaryrefslogblamecommitdiffstats
path: root/docs/en/erlang.mk/1/guide/history/index.html
blob: 0bdd1c944778cb6be8e032d10f74aa52ec792c9f (plain) (tree)
1
2
3
4
5
6
7
8
9








                                                                                           
                                                 






















































































































                                                                                                                                                                                          




















                                                                                                                          





























































                                                                                                                                                                                                                           
<!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: Short history</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>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="http://ninenines.eu/docs/en/erlang.mk/1/guide/why/">
					Why Erlang.mk
				</a>
			

			
				<a style="float:right" href="http://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 &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>