Git, the D package manager

Mathias LANG via Digitalmars-d digitalmars-d at puremagic.com
Mon Feb 2 06:36:00 PST 2015


On Monday, 2 February 2015 at 09:44:18 UTC, Andrej Mitrovic wrote:
> Also:
>
> - Dub installs everything in ~/ (home, which on Windows is an 
> awful location anywho). It's a pain in the ass for browsing 
> dependencies in your editor. If it's just a submodule you can 
> easily view it in the source tree (e.g. just open 
> ./submodules/).

I admit it's a pain. I use Mono-D, which takes care of that, so 
I'm not running into that problem.

> Having it as a submodule also helps if you want to quickly try 
> to edit a dependency in order to see if it fixes an issue. And 
> if the fix is right you can even make a commit inside the 
> submodule and push it to your fork of the dependency.
>
> With all the aliases or zsh-tricks this can be as easy as a few 
> key presses.

It's a question of workflow. I use path dependency to my fork 
when I have to patch a library in order to get my project 
working. Then I P.R. and when everything's upstream, I fix the 
dependencies. It's more involved, but led me to patch Vibe.d a 
few time / report issues, so overall it's a win.

> - By default dub emits internal stack traces. This is an insane 
> amount of visual noise that I don't want to read.
>

Absolutely right, and it has to be patched. Fun fact: I misstyped 
Vladimir's command in a hurry, and typed "rdmd -o- file.d" 
(instead of dmd). Gotta love the stacktrace.

> - If I want to try a new version of a dependency, I have to 
> change the damn .json package file instead of doing a simple 
> 'git checkout ...'. What's worse, I have to wait 15-20 minutes 
> for the latest tagged version of a dependency to finally show 
> up on code.dlang.org.
>
> I could use add-local, but it's broken[1].

I was not aware of that problem. Have you tried path dependencies 
?

> - Shit breaks every N releases (where N is arbitrary). As if 
> it's not enough that code tends to break between compiler 
> releases, so do packages between DUB releases. Something that 
> used to build half a year ago no longer does.
>
> I don't recall when was the last time an RDMD or Make update 
> has ever broken my projects.
>
> - I'm not a fan of poorly tested software, and DUB falls into 
> that category.


In general, things tend to break with every compiler release. 
What we need IMO (I mentionned it in the 2015H1 thread) is a CI 
system that build every package with a list of supported compiler 
and tag them accordingly.

> The bottom line is, time spent on dealing with package 
> management bugs is completely wasted developer time.

I couldn't disagree more, but I understand how frustrating dub 
can be. I also had to adapt my workflow to it.


More information about the Digitalmars-d mailing list