Button: A fast, correct, and elegantly simple build system.

Dicebot via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Fri Jun 3 01:26:43 PDT 2016


On Wednesday, 1 June 2016 at 04:34:23 UTC, Jason White wrote:
> Why is having dependencies so damaging for build systems? Does 
> it really matter with a package manager like Dub? If there is 
> another thread that answers these questions, please point me to 
> it.

Rephrasing one famous advice, "every added tooling dependency in 
an open-source project reduces amount of potential contributors 
by half" :) Basically, one can expect that anyone working with D 
will have dmd/phobos and, hopefully, dub. No matter how cool 
Button is, if it actually needs to be installed in contributor 
system to build a project, it is very unlikely to be widely used.

That issue can be reduced by making Button itself trivially built 
from plain dmd/phobos/dub install and configuring the project to 
bootstrap it if not already present - but that only works if you 
don't also need to install bunch of additional tools like sqlite 
or make.

 From that perspective, the best build system you could possibly 
have would look like this:

```
#!/usr/bin/rdmd

import std.build;

// define your build script as D code
```


More information about the Digitalmars-d-announce mailing list