On Friday, 29 August 2014 at 20:54:49 UTC, Idan Arye wrote:
I would now like to invoke the Zero One Infinity
Rule(http://en.wikipedia.org/wiki/Zero_one_infinity_rule).
Supporting one format makes sense - DUB can simply use the set
of functions and data structures provided by Phobos or by
external libraries for using this format.
Supporting two formats will require two sets of functions and
data structures, and to decide a point where the two code-paths
will be joined to a single representation of the build
configuration. According to the ZOI rule, you might as well
take the extra step and support infinity formats!
This might make sense from a technical point of view, but do we
want it? In the extreme case, we'd end up with a different format
for each package, though more likely will be a distribution where
most packages focus on one or two formats, but with a looooong
tail...
This mechanism can also be used for splitting the build file -
which can be useful if you want to have parts of it updated
regularly by automatic tools, or to put only parts of the build
configuration under source control. For this, different file
names can be put in the "file" field even if they all use the
same format, and "parser" can be omitted to read JSON files.
This is useful in any case, no matter how many formats we're
going to support.