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

Reply via email to