dud: A dub replacement
Joseph Rushton Wakeling
joseph.wakeling at webdrake.net
Mon Nov 18 12:59:25 UTC 2019
On Monday, 11 November 2019 at 13:44:28 UTC, Robert Schadek wrote:
> So dub has some problems, and personally I find its code base
> very hard to get
> into.
> At Symmetry we are a very heavy user of dub, resulting in many
> wasted hours.
>
> So I started to write dud [1]. I kept some boring/nice parts
> from dub, but most
> code so far is a complete rewrite.
>
> The goal of dud is mostly do what dub does, but more
> understandable.
Cool :-) Since I have also been experiencing a fair bit of
production-use DUB pain in the last year, I really appreciate
your taking action on this.
A few things that would be good to understand up front:
* what are the particular issues with DUB that you want to
address?
- making the codebase cleaner and more functional is
obviously
nice but is at most a means to an end -- what's the real
end
you have in mind?
- I would imagine getting dependency resolution really right
would be top of the list -- it would be good to aim to fix
issues like https://github.com/dlang/dub/issues/1732
- I would personally really appreciate it if you would make
it
a design goal to better separate concerns in terms of what
DFLAGS are used and why (for example, the fact that right
now
`dub test --build=release` will not actually run
unittests,
as `--build=release` drops the `-unittest` flag)
* are there any particular known issues with DUB that this
definitely
will NOT address?
* are there any key _breaking_ changes you have in mind?
* where does this stand w.r.t. some of the proposals to break
DUB apart
into more cleanly separated components, e.g. determining
compatible
dependencies, downloading dependencies, building or running
tests ... ?
Some concrete feedback on the project as it stands:
* the tickboxes of compatible commands are nice, but it would
be good to
have a more contextualized roadmap, in particular outlining
the design
concerns for core data structures and functionality
- this should probably be in issues rather than the README,
but
it needs to be somewhere, otherwise it's hard for anyone
outside
to identify things they can do
- it might be nice to use a GitHub project to manage things
so that
us outside folks can identify better what's being worked
on and
what's blocked by what
* I don't mind breaking changes in either the config format or
the command
line API if it gets us to a nicer tool, so please embrace the
opportunity
where appropriate
- I can imagine this might be the reason why the aim is to
support
a "tasteful subset" of DUB's features: it means that
others can
be re-implemented in an incompatible but better way
- auto-conversion mechanisms may be preferable to outright
support
for old formats and commands
* I really recommend trying to start writing clean, clear
commit messages
from the very start -- think of this as another form of code
documentation
that communicates to all interested readers the intent and
considerations
behind any particular change to the codebase. This makes it
much easier
for outsiders to get a clear understanding of the project and
get into the
habit of contribution
- right now, pretty much all the commit messages read like
spontaneous
notes where even YOU won't remember the whys or
wherefores in a few
months' time
- long term it saves a LOT of time when trying to look back
and understand
"Why did we do things that way?" -- particularly useful
when trying to
fix some subtle design bug
* for the same reasons, really try to provide good
documentation and comments
for all code from the start -- this really makes it much
easier for anyone
interested to grasp the major design concerns and get
contributing
* these concerns are going to be strongest for the key data
structures and
algorithms -- please make sure these are REALLY documented
well, from the
very start
Hope all of that's helpful, and best wishes for taking this
forward -- I will try to help as I can, but time right now is
very constrained ... ;-)
Thanks & best wishes,
-- Joe
More information about the Digitalmars-d-announce
mailing list