Am 02.02.2015 um 10:44 schrieb Andrej Mitrovic:
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/).

There is a request to make this configurable and it's a rather trivial addition. I just don't have the time to implement all feature requests myself, which is basically why it is not implemented, yet.

However, you are free to instead put the packages wherever you want instead and use "dub add-path" (or "add-local") to register it with DUB. You will just have to manually fetch the sources in this case.

You are also free to use git submodules and use a path based dependency to force using that particular instance of a package. The only caveat is that this will not work for public packages because there is no straight forward way to handle submodules properly when GitHub et al. are involved.


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

If this is true for a certain error message, please submit a ticket (or better yet, a quick pull request). Stack traces are supposed to be emitted only when the -v or --vverbose command line switches are present.

- 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 don't get this. You'd usually use something like `"somedep": "~>1.0.0"` in your dub.json. Whenever you then run "dub upgrade", it will update to the latest matching version.

Regarding the update frequency of the package registry, as the package maintainer you can often speed this up considerably by pressing the manual update button on the package management page. It would be better to use GitHub's hooks functionality to get instant updates, but that requires quite some more work, as well as registering each repository with the registry (using OAuth).


I could use add-local, but it's broken[1].

I didn't notice that thread, but did you try the most recent version? There are sub module related fixes in both 0.9.22 and on GIT master that could affect this.


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

We need more regression tests in the test suite, that's true. Going by the relative shortage of development resources, it would be helpful to get some feedback on such regressions, so that they get some extra priority. Right now I have barely enough time to fix issues or add important features, so a strict regression suite policy as for DMD unfortunately is just not realistic ATM.


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/

Reply via email to