Git, the D package manager

Andrej Mitrovic via Digitalmars-d digitalmars-d at puremagic.com
Mon Feb 2 01:44:17 PST 2015


On Monday, 2 February 2015 at 08:09:39 UTC, Vladimir Panteleev 
wrote:
> snip

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/).

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.

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

- 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].

- 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.

I've complained before about Git submodules being a bit broken on 
Windows, maybe this was fixed in the meantime. It works solidly 
on Linux, and I'm making the decision to transfer all my projects 
that use dependencies to using submodules instead.

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

[1]: 
http://forum.rejectedsoftware.com/groups/rejectedsoftware.dub/thread/5280/


More information about the Digitalmars-d mailing list