DUB - call to arms
Nick Sabalausky (Abscissa)
SeeWebsiteToContactMe at semitwist.com
Wed Apr 17 20:50:57 UTC 2019
On 4/17/19 4:10 PM, JN wrote:
> On Wednesday, 17 April 2019 at 19:15:40 UTC, Nick Sabalausky (Abscissa)
> wrote:
>> On 4/17/19 1:53 PM, H. S. Teoh wrote:
>>> At the end of
>>> the day, it just boils down to (1) you have a bunch of input files, (2)
>>> there's some command that transforms these input files into output
>>> files, and (3) these output files reside somewhere in the filesystem.
>>> As long as you're told where the output files in (3) are, you know
>>> enough to use this package. What goes on inside (2) is irrelevant; said
>>> command can be arbitrarily complex -- it can be an entire build system,
>>> for example, that consists of many subcommmands -- but a package manager
>>> doesn't need to (and shouldn't) care about such details.
>>
>> +1, exactly correct
>
> In the ideal world, perhaps.
No, there's no "ideal world" about this. What HSTeoh describes above are
just plain the cold, hard facts of the matter. No ifs, ands or buts.
The complications that we're accustomed to seeing and expecting are ones
that come straight from DUB's failure to fully separate package
management from building.
> I am just worried opening dub to other
> build systems will just open a can of worms. Packages will use different
> build systems, which will be a pain to set up. Right now, the advice is
> "to get started with D, install official DMD distribution and set up
> your project with dub". Afterwards, the advice may be "to get started
> with D, install official DMD distribution, set up your project with dub,
> and install git,svn,meson,scons,make,cmake so that you can build some
> packages. Oh and set these environmental variables for these tools. Oh
> and if you're on Windows you're screwed".
With what I have in mind (and HS Teoh appears to have the same thing in
mind), then no, those scenarios are absolutely, definitely not a
realistic result. They're just fear-based speculation at best.
In the long run, DUB may or may not remain the recommended buildsystem
for newcomers, but that's all. And it least it won't actively PREVENT
alternative buildsystems from coming along and proving superior enough
to dethrone DUB.
> While dub may seem limiting to some, it offers standarization and
> unification.
Well that's just the problem - It *doesn't* provide that, it completely
fails to. It tries to standardize and unify through basically the same
strong-arm "submit or die" approach as Nobunaga or Napoleon, but as I
predicted it would from the start, it just would up fracturing the
ecosystem instead[1]. And a fractured ecosystem is by definition NEITHER
standardized NOR unified.
[1] The no-so-well-known fact is, many projects are forced out of the
DUB package ecosystem because of DUB buildsystem's limitations. Though
that may not be easy to see, since such packages are forced
under-the-radar because of their opting out of DUB as a buildsystem also
forces them out of the visibility provided by code.dlang.org. And then
the ones that do join the DUB side are too often forced into hardships
that first of all, shouldn't even be necessary, and second of all, still
fail to offer the tradeoff of unifying/standardizing the ecosystem anyway.
The *only* way to standardize and unify is to do so in a way that allows
individual packages to work the way they need to.
More information about the Digitalmars-d
mailing list