On Monday, 21 September 2015 at 09:42:44 UTC, Sönke Ludwig wrote:
Am 18.09.2015 um 10:37 schrieb BBasile:
[...]
In the context of an IDE, I'd strongly recommend to use the
normal "dub describe" functionality. The "packages" field will
list the logical packages, suitable for display in the IDE's
project tree and the "targets" field will contain the list of
binary targets, suitable as the input for external build tools.
All of this comes at once with a single process invocation.
The --data= functionality is more useful for shell scripts and
the like, where data is needed in condensed form. I'm also
pretty sure that there are still some issues to work out in the
way the --data switch works, because in its current form it
simply cannot represent everything. So I'd label this feature
as experimental for now.
There are some things that may take time during a DUB run:
- Determining the versions of local GIT working copies that
are registered with "add-path" or "add-local". "git" is invoked
for that for each working copy, which simply takes time if
there are many of those registered. I'm currently looking into
a version cache feature that would make this faster.
- Querying code.dlang.org for new package versions to display
upgrade suggestions. This takes a moment, but is only done at
most once a day.
- Resolving dependencies currently suffers from a performance
bug that can cause the resolution time to grow almost
indefinitely.
To see which of those is responsible, running with the -v
switch may give some insights.
Don't bother with this problem if there is only one complain.
Finally my IDE fully interprets the JSON. I think that even if
you would manage to make the process faster there's still be this
*little too much* that makes it unsable in Coedit because in the
dedicated widget DUB properties are modifiable, can be added or
removed from the GUI.