I just created a dub package. Frankly, the whole thign is backward.
Mike Parker
aldacron at gmail.com
Tue Apr 26 01:21:58 UTC 2022
On Monday, 25 April 2022 at 20:12:19 UTC, deadalnix wrote:
> The least power for the job definitively implies not inserting
> a build system in the package manager.
I'm posting in reply to deadalnix, but my comments are not
directed at him specifically.
dub exists because it filled a huge, gaping hole in the D
ecosystem.
Go back far enough and you'll find "build", later renamed "bud",
by Derek Parnell. This was the first D build tool the community
rallied around. Several D users adopted it.
https://www.digitalmars.com/d/archives/digitalmars/D/40914.html
Gregor Richards wasn't happy with bud, so he created "Rebuild" as
an alternative build tool, but added a package manager on top of
it called "DSSS" (D Shared Software System). Rebuild actually
parsed source files looking for custom pragmas, and IIRC DSSS
could install packages from multiple locations (svn, git, etc).
Several D libraries users adopted it.
https://forum.dlang.org/thread/f06hsi$ng1$2@digitalmars.com
So let me tell you, this sounds but it was also a serious PITA as
a library maintainer. You had the bud crowd demanding support for
bud, the dsss crowd demanding support for dsss, and the crowd who
refused to use either because make was good enough. At one point
I had three platform-specific make files, a `dsss.conf`, and a
`forbud.txt` (I eventually replaced some of that with a
`buildme.d file`).
There was no standard way of building D projects, and it sucked.
Then Derek and Gregor disappeared, and suddenly these build
systems everyone is using are no longer supported. No one takes
them over, so we're in the Dark Ages again. Then dub comes along
and saves the day.
It caught on quickly. Then people start thinking: "What happens
if Sönke disappears? This should be an official D thing." So dub
gets added to the installation. And here we are.
Without dub, we would not have the ecosystem that we do have.
Personally, I love it. It makes using dependencies a snap. I'm
happy with the default source tree expectations, and I don't mind
compiling C libraries separately when I need them.
But I understand that no everyone is going to be happy with it (I
don't understand the level of hatred some people direct at it,
but I just chalk it up as "they aren't happy with it" and move
on).
The question is, what exactly is dub missing and how can it be
improved? Which perceived shortcomings are reasonable to address
and which are not? And assuming we can answer those questions,
who is going to address them?
We tried to secure funding a while back for someone to oversee
development more actively since Sönke is too busy to spend the
time on it that he used to, but that didn't happen. And no one on
the core team has the time needed to steer the project. So until
one of those things changes, the only way it's going to happen is
if one or more people step up and make it happen.
So I propose someone, anyone, who has an interest in seeing dub
evolve raise their hand and take on the task of gathering
requirements. Not dive in and start refactoring code, not sit
down and write a new build tool, but to gather the gripes and
complaints from bitch sessions here and on Discord and distill
them into lists of needs, wants, and nice-to-haves. (I'd do it
myself, but I just don't have the time.)
Then that list can be a starting point for a plan to move
forward. I'm sure I can put together a team of interested parties
willing to donate a little of their time to provide input on
formulating that plan. Then we can look at how to actually get
the work done, e.g., putting out a task list that contributors
can spend time on, picking out more complicated tasks for
contract work funded from our ecosystem fund, etc.
So please, someone take all this energy directed at telling us
all how terrible dub is and take the first step toward
redirecting at turning dub into something more of us are willing
to use.
More information about the Digitalmars-d
mailing list