Merge remote-tracking branch 'canonical/next'
[sinan.git] / overview.edoc
blobb6ab535743f21a3ea7babf5028b36353d79101be
1 @title Welcome to Sinan
2 @doc
4 <h1>Overview</h1>
6 <p>Sinan is our flagship build system. It is a build system designed expressly for
7 Erlang OTP projects. It simply will not work on projects that are not based on
8 the OTP principles. Fortunately, this shouldn't be too much of a problem because
9 you shouldn't really be writing significant Erlang applications without using
10 OTP.</p>
12 <p>By choosing to build only OTP projects we are able to make use of all that
13 wonderful OTP metadata. This allows us, in the vast majority of cases, to simply
14 'Do the Right Thing' while building a project. This approach allows us to build
15 a project with little or no input from the user. It also allows us to do a lot
16 of the grunt work of OTP automatically.</p>
18 <h1>Features</h1>
20 <p>As of this writing Sinan will do the following things for you.</p>
22 <ul>
24 <li>Manage dependencies</li>
25 <li>Retrieve packages to meet dependencies</li>
26 <li>Run Unit Tests and provide code coverage metrics</li>
27 <li>Warn about OTP layout and metadata issues</li>
28 <li>Compile Erlang files</li>
29 <li>Generate <code>*.rel</code> files</li>
30 <li>Generate <code>*.boot, *.script,</code> and other files required by the otp release
31 system</li>
33 <li>Run Dialyzer across all of the code in the project</li>
34 <li>Create a tar file that the OTP releases system understands and can use</li>
35 <li>Clean up after itself</li>
36 </ul>
38 <h1>Whats in a Name?</h1>
40 <p>I usually try to pick good googleable project names. This usually means that I
41 have to pick and arbitrary name and build meaning around it, since almost all of
42 the proper nouns that would fit a project are taken or already well represented
43 on the net. Since I had to pick a name for a build system I decided to use the
44 name of a famous architect or builder from history. There is no small number of
45 possible options. Unfortunately, many of them are already used for various open
46 source projects out there. In my searches for possible names, I came across
47 <a href="http://en.wikipedia.org/wiki/Sinan">Ḳoca Mi‘mār Sinān Āġā</a> a famous builder
48 from the Ottoman Empire. He worked primarily in Istanbul. Well this caught my
49 attention. At one time Istanbul was Constantinople and before that Byzantium and
50 I have a certain fascination with Byzantine history. The fact that Sinan was a
51 brilliant architect just kind of sealed the deal. So what I ended up with is a
52 nice googleable name that is memorable and short enough to type on the command
53 line, also having an interesting historical meaning.</p>
55 @author Eric Merritt
56 @copyright 2007, 2008 Erlware