history.asciidoc 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. == Short history
  2. This chapter aims to be a brief record of the life of the
  3. Erlang.mk project.
  4. === Before Erlang.mk
  5. Erlang.mk originates from the Cowboy project. Cowboy started
  6. as a Rebar project and I, Loïc Hoguin, was very happy with it
  7. for a couple years. Over time however I started getting annoyed
  8. and frustrated by a number of things, including bad defaults,
  9. changing defaults and overall slowness.
  10. In particular, at the time I gave up on Erlang.mk, the Cowboy
  11. test suite was taking about five minutes to run. A quick experiment
  12. showed I could get much lower times by simply invoking `ct_run`
  13. directly. On January 4th, 2013, the Cowboy test suite took less
  14. than a minute to complete.
  15. Following this success I started removing a little more and,
  16. on the fateful day of January 5th, 2013, removed the dependency
  17. on Rebar entirely. Rebar, and in particular the concept of
  18. dependencies, was, and still is, a pretty strong influence.
  19. Erlang.mk was conceived.
  20. A few months passed and, on May 1st, 2013, the Erlang.mk
  21. repository was created. Erlang.mk was born.
  22. Little did I know how much it would grow.
  23. === Lifetime of the project
  24. Erlang.mk would eventually become a much larger file able to
  25. deal with many more projects than just Cowboy. From the birth
  26. of the project, the biggest force for growth was user contributions,
  27. because Erlang.mk appealed to a variety of people with different
  28. needs, needs that Erlang.mk was not fulfilling yet.
  29. The project was split into smaller files focused on a different
  30. feature each, and a build script was written to build the single
  31. Erlang.mk file.
  32. A test suite was contributed by a user, and later taken as a basis
  33. for the current, much more complete test suite. Turns out testing
  34. a Makefile is pretty straightforward.
  35. A package index was added to solve the problem of discovering
  36. Erlang projects.
  37. After trying to see if Erlang build tools could cooperate, the
  38. decision was made to improve compatibility with existing Rebar
  39. projects by patching Rebar out, using Rebar. This feature, called
  40. autopatch, proved very successful and made Erlang.mk compatible
  41. with more than 90% of all Erlang projects.
  42. Erlang.mk documentation was much improved and the Erlang.mk website
  43. was created in the summer of 2015.
  44. Over the year of 2015, Erlang.mk went from curiosity to a serious
  45. alternative to other Erlang build tools. The user base increased
  46. immensely and large projects started using it, including RabbitMQ
  47. from the 3.6.0 release onward.
  48. A bright future lies ahead.