On Sunday, 29 October 2017 at 03:26:14 UTC, Mike Parker wrote:
On Sunday, 29 October 2017 at 01:55:22 UTC, evilrat wrote:
This is dub design choice, optional requires manual
fetching(dub fetch 'package'). I don't see other options, but
you can try hack this using 'preBuildCommands' by adding dub
fetch. Of course this defeats the purpose.
No, they don't need to be manually fetched. Optional packages
are downloaded when they are specified in the
dub.selections.json file.
Isn't it possible to put dependencies in specific
configuration?
What the OP wants is to have dependencies in a configuration be
downloaded only when the configuration is specified. Currently,
dependencies are always downloaded unless they are optional, no
matter where they're listed in the file. And optional
dependencies are only downloaded when they are specified in
dub.selections.json.
It would be a nice feature to have.
In my case the eager dependency resolution is a serious problem.
In my work environment access to the internet is forbidden for
the official build due to software lifecycle requirements. The
consequence is that I have to fetch all dependencies into the dub
project (--cache = local).
In addition every time open source software is used, for each
open source software product a process has to be fulfilled.
As example I would like to use the unit test framework d-unit.
This dub package has for a specific configuration a decency to
unit-threaded. The official build will fail as unit-threaded can
not be found (no internet access). Including unit-threaded is not
an option due to the open source process. Doing this process for
the sake of a dub issue is not acceptable.
There is an additional dub build option --nodeps. In my opinion
this option should solve the problem but it is not working as
expected. Maybe to due a bug.
I created dub issue 1272 regarding this issue.
Kind regards
Andre