Use configy library to parse dub.json file
Over the last few years, I've been working on a project that had growing configuration needs. We started by manually parsing YAML files and using dyaml, then one day, when the application was sizeable, all the manual work was turned into a library.
The goal was simple: Using a declarative approach (using D native value types, so no classes) and minimizing YAML dependency. This project was separated in its own library, configy.
One of the major advantages of Configy is that it produces good error messages, even with user-defined types.
User-defined types with a fromString, string ctor, etc... can throw Exceptions, which the library then catches and wrap in an Exception that contains context information. It also contains a "strict mode" which will warn users if they use a key that isn't valid. I understand that the original intent of not erroring out on keys to preserve forward compatibility, but experience has shown that's causing more trouble than it's worth. Plus, we have ToolchainRequirements now.
There's an unexpected (at least for me) amount of adjustments to configy in the second commit (de7a2b4197aef1af88bc400620272f2dbd958ba6). Not a deal breaker, of course, but I would prefer if you could split that commit into several, each with more information about why each change was needed and why it can't be upstreamed.
Also, I understand that adding Yaml support via this library was easy, but I think it's better to do it in a follow up change, and add support for SDL before that, in this PR.
Aside question: can configy be used to generate both CLI --help text and html documentation?
For example, here's how Yarn does it:
- https://github.com/yarnpkg/berry/blob/master/packages/yarnpkg-core/sources/Configuration.ts
- https://github.com/yarnpkg/berry/blob/master/packages/gatsby/src/utils/schemaUtils.tsx
- https://github.com/yarnpkg/berry/blob/master/packages/gatsby/src/pages/configuration/yarnrc.js
Interesting. Does this mean support for package.yaml files in the future?
There's an unexpected (at least for me) amount of adjustments to configy in the second commit
There's actually 3 adjustments in that commit:
-
Improve support for
Converter: Previously a converter would just accept a YAMLNode. This wasn't great for 2 reasons: 1) recursion was impossible (configy purposedly only expose a way to parse the top level), and because error reporting was suboptimal (e.g. the path to the field was lost). This has been improved, to a point it works withdub, but not to a point I am satisfied with it. I'm still experimenting with a few approach. The feature itself will be upstreamed. In addition to theConverterimprovement,fromYAMLis also supported. -
One core design of the library is that one struct definition should lead to one possible format. In practice, with
fromYAML, you can work around that, but I tried to stay clear of being "too smart". However some part of the recipe (dependencies I believe, maybe other parts) support a dual approach, where one can write"dependencies": [ { "name": "vibe-d" } ]or"dependencies": { "vibe-d": { } ]. To support both, I had to change the way the@KeyUDA was handled. That is not something I want to upstream. -
Suffixes. The most fundamental principle in configy is that field names are static. But that's not the case for
dub.json, since it uses suffices (e.g.lflags-x86). Generating all possible combination was not a reasonable approach (I toyed with it, but meh), so I hacked support for it in Configy. That is definitely not something I want to upstream.
Interesting. Does this mean support for package.yaml files in the future?
It would be at most 10 lines of code to do so, but that is not on the roadmap for now. The plan is simply to improve UX by providing better error messages. Going for dub.json was an experiment which turned out quite well. Those changes could be made to dub.selections.json and dub.settings.json too.
Aside question: can configy be used to generate both CLI
--helptext and html documentation?
CLI: No. Configy is not an argument parsing library, just a config parsing one. There's a tiny bit of argument parsing because of it's heritage from Agora, but that's minimal and can be removed. I had in mind to integrate it with argparse though, which takes a similar approach, but for argument parsing.
HTML documentation: That's definitely on the menu. Currently there is no good way to get documentation for a symbol, but that's something that has been discussed, and I'm considering looking into it myself. If that was added, configy could have a simple way to generate all relevant documentation with just one function call.
Note that this is a draft for multiple reasons:
- Gauge interest. Personally I think this would be wonderful to have, but I've felt that way about other features in the past and met strong resistance, so I needed to measure;
- Give people the opportunity to test it, if they wanted;
- Give a basis for me to explain all the bug fixes I'm about to do;
Regarding 3, I noticed a few things when I started to implement this:
- https://github.com/dlang/dub/pull/2279 : Not technically required, but when I added support for it in Configy, I took out the hyphen. Then tested, and realized the hyphen was expected, for no valid reason;
- https://github.com/dlang/dub/pull/2266 : This allowed me to have only one place to handle the same logic;
- https://github.com/dlang/dub/pull/2276 : Noticed a difference between the JSON and YAML parser, so fixed it;
- https://github.com/dlang/dub/pull/2277 : Likewise, too much logic in the parser is not compatible with Configy;
Now for the things left to do:
- There is a direct JSON dependency here: https://github.com/dlang/dub/blob/79e312d042f66a0ea56879f13c2167bc66d35146/source/dub/packagesuppliers/packagesupplier.d#L46 IMO this has to go
- When doing
dub buildin dub itself,dubrescans and parse all the packages in its cache no less than 3 times (all packages, meaning also the ones it doesn't need).
- Gauge interest. Personally I think this would be wonderful to have, but I've felt that way about other features in the past and met strong resistance, so I needed to measure;
I am solidly against adding external dependencies to dub.
However, I think it is a great PR to discover possible improvements!
I am solidly against adding external dependencies to dub.
If we vendor dependencies (like I did with configy itself), that problem is gone, isn't it ?
I am solidly against adding external dependencies to dub.
If we vendor dependencies (like I did with configy itself), that problem is gone, isn't it ?
Only if it is in this repository. Outside you still have to get at it in some form.
This wouldn't be unique, there is the vibecompat folder for instance which originates from vibe.d.
Only if it is in this repository.
That's what I meant by vendoring. But I think that's distracting from the aim of this PR: Do we want to move in that direction, weed out the Json dependency and have better error reporting on all our config files ? How we handle the dependency is second to the question of "do we go ahead with an approach?".
Right, d-yaml is not -dip1000 compatible...
source/dyaml/constructor.d(484): Error: `@safe` function `dyaml.constructor.constructOrderedMap` cannot call `@system` function `std.container.rbtree.redBlackTree!(Node).redBlackTree`
/usr/include/dmd/phobos/std/container/rbtree.d(1978): `std.container.rbtree.redBlackTree!(Node).redBlackTree` is declared here
source/dyaml/constructor.d(490): Error: `@safe` function `dyaml.constructor.constructOrderedMap` cannot call `@system` function `std.container.rbtree.RedBlackTree!(Node, "a < b", false).RedBlackTree.stableInsert!(Node).stableInsert`
/usr/include/dmd/phobos/std/container/rbtree.d(1264): `std.container.rbtree.RedBlackTree!(Node, "a < b", false).RedBlackTree.stableInsert!(Node).stableInsert` is declared here
source/dyaml/constructor.d(603): Error: `@safe` function `dyaml.constructor.constructMap` cannot call `@system` function `std.container.rbtree.redBlackTree!(Node).redBlackTree`
/usr/include/dmd/phobos/std/container/rbtree.d(1978): `std.container.rbtree.redBlackTree!(Node).redBlackTree` is declared here
source/dyaml/constructor.d(608): Error: `@safe` function `dyaml.constructor.constructMap` cannot call `@system` function `std.container.rbtree.RedBlackTree!(Node, "a < b", false).RedBlackTree.stableInsert!(Node).stableInsert`
/usr/include/dmd/phobos/std/container/rbtree.d(1264): `std.container.rbtree.RedBlackTree!(Node, "a < b", false).RedBlackTree.stableInsert!(Node).stableInsert` is declared here
source/dyaml/node.d(2486): Error: `@safe` function `dyaml.node.merge` cannot call `@system` function `dyaml.node.merge.canFind!(Pair[], Pair).canFind`
/usr/include/dmd/phobos/std/algorithm/searching.d(2535): `dyaml.node.merge.canFind!(Pair[], Pair).canFind` is declared here
source/dyaml/representer.d(427): Error: `@safe` function `dyaml.representer.representPairs.hasDuplicates` cannot call `@system` function `std.container.rbtree.redBlackTree!(Node).redBlackTree`
/usr/include/dmd/phobos/std/container/rbtree.d(1978): `std.container.rbtree.redBlackTree!(Node).redBlackTree` is declared here
source/dyaml/representer.d(431): Error: `@safe` function `dyaml.representer.representPairs.hasDuplicates` cannot call `@system` function `std.container.rbtree.RedBlackTree!(Node, "a < b", false).RedBlackTree.stableInsert!(const(Node)).stableInsert`
/usr/include/dmd/phobos/std/container/rbtree.d(1264): `std.container.rbtree.RedBlackTree!(Node, "a < b", false).RedBlackTree.stableInsert!(const(Node)).stableInsert` is declared here
@WebFreak001 : I've added a little unittest to show what errors look like. Obviously not the final form for testing, but it demonstrate our ability to easily check error messages for a given recipe. Here is what the two current tests will print:

The "Invalid SemVer format" has been annoying me for years.
For those interested in the first step, the libraries are being added in https://github.com/dlang/dub/pull/2310 and it can read dub.selections.json, which is an easier target than dub.json.
are the new errors/warnings gonna abort builds or only show some diagnostics for the user?
are the new errors/warnings gonna abort builds or only show some diagnostics for the user?
Anything in validate will abort the build. I'm trying to think of a deprecation mechanism, for example to enforce that users use path or version in dependencies, not both.
Anything else (unused fields) will just trigger a warning. However, because of https://github.com/dlang/dub/issues/2338 , it means building any random package could potentially trigger a lot of unrelated warnings depending on your .dub/packages/ content.
For example, dub doesn't depend on dud. When I built dub using this, I got 3 warnings because of a typo in dud's dub.json (fixed in https://github.com/symmetryinvestments/dud/pull/46).
So I think that before this can be merged, I'm going to have to tackle #2338 . Which should also improve build time.
Rebased on top of https://github.com/dlang/dub/pull/2343 but still needs work as noted above.
shouldn't we hide errors in packages that are installed in the user's packages directory?
e.g. right now I get this message 3x:
/home/webfreak/.dub/packages/dud-1.1.1/dud/testdata/dub.json(3:1): excludeSourceFiles: Key is not a valid member of this section. There are 54 valid keys: name, version, description, homepage, authors, copyright, license, -ddoxFilterArgs, -ddoxTool, configurations, buildTypes, toolchainRequirements, subPackages, dependencies, dependencyBuildSettings, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
@WebFreak001 : You probably need to pull, I fixed that yesterday.
Found a way to make it work without lazy loading, which I think is better anyway. Also fixed the documentation issue.
@WebFreak001 : Green / ready for another round of review.
Ah there's a minor issue with dflags, will fix soon.
Wow. Looks like this is ready to go.
first of all I checked which packages break now on DUB:
PKG prettyprint: dub.json
PKG uim-server: dub.json
PKG leveldb: dub.json
PKG dash: dub.json
PKG dxx: tool/test/dub.json
PKG dxx: tool/resources/templates/targets/plugin/dub.json
PKG dxx: tool/resources/templates/targets/library/dub.json
PKG dxx: tool/resources/templates/targets/host/dub.json
PKG dxx: tool/resources/templates/targets/shell/dub.json
PKG dxx: tool/resources/templates/model/application/dub.json
PKG dplug: tools/presetbank/dub.json
PKG multihash: dub.json
PKG rcdata: dub.json
PKG belleglade: example/dub.json
PKG shplib_d: dub.json
PKG d-leveldb-comparator: dub.json
PKG qte5: dub.json
PKG d-leveldb: dub.json
PKG bin2d: dub.json
there are 14 individual packages breaking somehow. I just randomly looked at a few, but it looks like the new configy thing does not like duplicate keys. Instead of throwing an exception, we should only warn (this is with StrictMode.warn)
Additionally these are the regular warnings generated by StrictMode.warn, which are fine:
Warning PKG ffmpeg-d: dub.json(11:4): platforms: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG poodinis: dub.json(31:3): configurations[3].description: Key is not a valid member of this section. There are 42 valid keys: name, platforms, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG poodinis: dub.json(43:3): configurations[4].description: Key is not a valid member of this section. There are 42 valid keys: name, platforms, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG poodinis: dub.json(55:3): configurations[5].description: Key is not a valid member of this section. There are 42 valid keys: name, platforms, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG poodinis: dub.json(67:3): configurations[6].description: Key is not a valid member of this section. There are 42 valid keys: name, platforms, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG poodinis: dub.json(79:3): configurations[7].description: Key is not a valid member of this section. There are 42 valid keys: name, platforms, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG poodinis: dub.json(91:3): configurations[8].description: Key is not a valid member of this section. There are 42 valid keys: name, platforms, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG poodinis: dub.json(103:3): configurations[9].description: Key is not a valid member of this section. There are 42 valid keys: name, platforms, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG poodinis: dub.json(115:3): configurations[10].description: Key is not a valid member of this section. There are 42 valid keys: name, platforms, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG poodinis: dub.json(127:3): configurations[11].description: Key is not a valid member of this section. There are 42 valid keys: name, platforms, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG poodinis: dub.json(139:3): configurations[12].description: Key is not a valid member of this section. There are 42 valid keys: name, platforms, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG iup: dub.json(17:1): comment-lflags-posix-x86_64: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG scheme-d: examples/repl/dub.json(3:4): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG botan: dub.json(8:4): sourceFolders: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG xlsx: dub.json(12:1): target: Key is not a valid member of this section. Did you mean: targetType, targetPath, targetName
Warning PKG kdtl: dub.json(6:2): target: Key is not a valid member of this section. Did you mean: targetType, targetPath, targetName
Warning PKG nloptd: dub.json(15:3): configurations[0].version: Key is not a valid member of this section. Did you mean: versions, versionFilters
Warning PKG nloptd: dub.json(20:3): configurations[1].version: Key is not a valid member of this section. Did you mean: versions, versionFilters
Warning PKG dopenvg: dub.json(5:1): email: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG dopenvg: demo_DvisualizationWT/dub.json(5:1): email: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG dopenvg: demo/dub.json(5:1): email: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG jaypha-inet: dub.json(8:2): srcPaths: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG commonmark-d: dub.json(4:4): comment-targetType: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG mathed: dub.json(16:12): configurations[1].build: Key is not a valid member of this section. There are 42 valid keys: name, platforms, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG dud: testdata/dub.json(3:1): excludeSourceFiles: Key is not a valid member of this section. Did you mean: excludedSourceFiles
Warning PKG dud: pkgdescription/testfiles/conflicting_platform_json/dub.json(3:1): configuration-posix: Key is not a valid member of this section. Did you mean: configurations
Warning PKG d-opts: dub.json(1:2): $schema: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG de_window: dub.json(26:3): subPackages[1].dependencies-linux: Key is not a valid member of this section. Did you mean: dependencies
Warning PKG easyff-d: dub.json(5:4): platforms: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG d_hdf5: dub.json(7:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: tools/changecachesize/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: tools/changecachesize/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: tools/cat/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: tools/cat/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: tools/notyetfinished/stat/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: tools/notyetfinished/stat/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: tools/notyetfinished/jam/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: tools/notyetfinished/jam/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: tools/notyetfinished/diff/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: tools/notyetfinished/diff/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: tools/notyetfinished/jamtest/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: tools/notyetfinished/jamtest/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: tools/notyetfinished/importtest/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: tools/notyetfinished/importtest/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: tools/notyetfinished/import/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: tools/notyetfinished/import/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: tools/notyetfinished/dump/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: tools/notyetfinished/dump/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: tools/notyetfinished/ls/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: tools/notyetfinished/ls/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: tools/notyetfinished/binread/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: tools/notyetfinished/binread/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/read/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/read/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/select/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/select/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/alloc/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/alloc/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/rdwt/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/rdwt/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/attribute/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/attribute/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/write/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/write/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/tbit/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/tbit/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/chunk/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/chunk/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/stringatt/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/stringatt/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/compound/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/compound/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/tstring/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/tstring/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/group/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/group/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/extendwrite/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/extendwrite/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/notyetported/extlink/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/notyetported/extlink/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/notyetported/gtraverse/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/notyetported/gtraverse/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/notyetported/tcpxcmpd/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/notyetported/tcpxcmpd/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/notyetported/ref2reg/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/notyetported/ref2reg/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/notyetported/unlimadd/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/notyetported/unlimadd/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/notyetported/reference/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/notyetported/reference/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/notyetported/groupvisit/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/notyetported/groupvisit/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/notyetported/giterate/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/notyetported/giterate/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/notyetported/traits/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/notyetported/traits/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/notyetported/sharedmesg/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/notyetported/sharedmesg/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/notyetported/drivers/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/notyetported/drivers/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/notyetported/transform/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/notyetported/transform/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/notyetported/table/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/notyetported/table/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/szip/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/szip/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/myiterator/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/myiterator/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/subset/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/subset/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/checksum/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/checksum/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG d_hdf5: examples/chunkread/dub.json(3:1): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
Warning PKG d_hdf5: examples/chunkread/dub.json(6:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG tsv-utils: dub.json(8:4): #: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG awebview: dub.json(21:8): configurations[0]._sourceFiles-windows-x86: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG awebview: dub.json(22:8): configurations[0]._sourceFiles-linux-x86: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG awebview: dub.json(23:8): configurations[0]._sourceFiles-posix-x86_64: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG opensc: dub.json(9:1): comment1-sourceFiles-windows-x86_64: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG opensc: dub.json(10:1): comment2-sourceFiles-windows-x86_64: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG fuse-d: dub.json(10:1): platforms: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG d-openai-gym: dub.json(10:12): configurations[0].mainSouceFile: Key is not a valid member of this section. There are 42 valid keys: name, platforms, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG wayland: examples/simple_egl/dub.json(20:3): dependencies[derelict-gles].comment: Key is not a valid member of this section. There are 45 valid keys: version, path, repository, optional, default, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG opencl: dub.json(16:3): configurations[0].buildType: Key is not a valid member of this section. Did you mean: buildOptions
Warning PKG opencl: dub.json(22:3): configurations[1].buildType: Key is not a valid member of this section. Did you mean: buildOptions
Warning PKG opencl: dub.json(29:3): configurations[2].buildType: Key is not a valid member of this section. Did you mean: buildOptions
Warning PKG opencl: dub.json(36:3): configurations[3].buildType: Key is not a valid member of this section. Did you mean: buildOptions
Warning PKG glue-dejector: dub.json(15:1): _versions: Key is not a valid member of this section. Did you mean: version, versions, versionFilters
Warning PKG cushion: doc/dub.json(8:1): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG xcb-d: dub.json(2:1): outputTarget: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG dpq2: dub.json(39:3): subPackages[0].sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG dpq2: dub.json(50:3): subPackages[1].sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG dpq2: dub.json(63:3): subPackages[2].sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG dexcel: dub.json(10:1): __lflags: Key is not a valid member of this section. Did you mean: lflags
Warning PKG karasunum: dub.json(7:1): target: Key is not a valid member of this section. Did you mean: targetType, targetPath, targetName
Warning PKG bancho-irc: dub.json(9:1): uncomment for documentation generation: -ddoxTool: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG wayland-client-d: dub.json(7:4): platforms: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG fpdf: dub.json(8:2): srcPaths: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG bearlibterminal: dub.json(16:1): copyFile-osx: Key is not a valid member of this section. Did you mean: copyFiles
Warning PKG dubproxy: dub.json(5:1): type: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG tasn1: wrapper/dub.json(9:1): comment-libs-posix: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG tasn1: wrapper/dub.json(13:1): alternative_libname_if_no_dev_package_installed: libs-linux: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG tasn1: wrapper/dub.json(14:1): alternative_libname_if_no_dev_package_installed: libs-osx: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG tasn1: wrapper/dub.json(15:1): alternative_nonstandard_liblocation: lflags-posix: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG tasn1: deimos/dub.json(3:1): comment-libs-posix: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG tasn1: deimos/dub.json(7:1): alternative_libname_if_no_dev_package_installed: libs-linux: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG tasn1: deimos/dub.json(8:1): alternative_libname_if_no_dev_package_installed: libs-osx: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG tasn1: deimos/dub.json(9:1): alternative_nonstandard_liblocation: lflags-posix: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG dext: dub.json(11:4): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG dxx: app/dub.json(24:4): dependencies-posix: Key is not a valid member of this section. Did you mean: dependencies
Warning PKG dxx: examples/advanced/dub.json(11:4): debugs: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG dxx: examples/plugin/dub.json(11:4): debugs: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG libnlopt: dub.json(21:3): configurations[0].version: Key is not a valid member of this section. Did you mean: versions, versionFilters
Warning PKG libnlopt: dub.json(26:3): configurations[1].version: Key is not a valid member of this section. Did you mean: versions, versionFilters
Warning PKG logd-html: dub.json(2:1): target-type: Key is not a valid member of this section. Did you mean: targetType, targetPath, targetName
Warning PKG gamut: dub.json(27:12): configurations[3].comment: Key is not a valid member of this section. There are 42 valid keys: name, platforms, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG dlua: dub.json(7:2): targetTypes: Key is not a valid member of this section. Did you mean: targetType, targetPath, targetName
Warning PKG fcgi-loop: dub.json(6:2): platforms: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG cucumber-d: examples/httpbin/dub.json(7:1): exculudedSourcePaths: Key is not a valid member of this section. Did you mean: excludedSourceFiles
Warning PKG adr-terminalemulator: dub.json(8:3): configurations[0].description: Key is not a valid member of this section. There are 42 valid keys: name, platforms, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG adr-terminalemulator: dub.json(15:3): configurations[0].dFlags-windows: Key is not a valid member of this section. Did you mean: dflags
Warning PKG adr-terminalemulator: dub.json(31:3): configurations[1].description: Key is not a valid member of this section. There are 42 valid keys: name, platforms, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG adr-terminalemulator: dub.json(51:3): configurations[2].description: Key is not a valid member of this section. There are 42 valid keys: name, platforms, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG adr-terminalemulator: dub.json(68:3): configurations[3].description: Key is not a valid member of this section. There are 42 valid keys: name, platforms, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG adr-terminalemulator: dub.json(74:3): configurations[3].dFlags-windows: Key is not a valid member of this section. Did you mean: dflags
Warning PKG adr-terminalemulator: dub.json(92:3): configurations[4].description: Key is not a valid member of this section. There are 42 valid keys: name, platforms, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG json: dub.json(11:4): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG concepts: dub.json(8:4): type: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG dlangui: dub.json(56:12): configurations[0].dependencies-posix: Key is not a valid member of this section. Did you mean: dependencies
Warning PKG dlangui: dub.json(81:12): configurations[3].dependencies-posix: Key is not a valid member of this section. Did you mean: dependencies
Warning PKG ensure: dub.json(14:4): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG workermanager: dub.json(8:2): target: Key is not a valid member of this section. Did you mean: targetType, targetPath, targetName
Warning PKG ws: dub.json(7:1): targetFileName: Key is not a valid member of this section. Did you mean: targetType, targetPath, targetName
Warning PKG zconfig: dub.json(13:12): configurations[0].excludeSourceFiles: Key is not a valid member of this section. Did you mean: excludedSourceFiles
Warning PKG dplug: dub.json(50:12): subPackages[0].dependencies-osx: Key is not a valid member of this section. Did you mean: dependencies
Warning PKG dplug: dub.json(284:12): subPackages[19].dependencies-osx: Key is not a valid member of this section. Did you mean: dependencies
Warning PKG dplug: dub.json(288:12): subPackages[19].dependencies-linux: Key is not a valid member of this section. Did you mean: dependencies
Warning PKG dplug: tests/using-runtime/dub.json(1:4): $schema: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG dplug: tests/using-runtime/dub.json(21:4): comment-WARNING-READ-THIS-IS-IMPORTANT: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG dplug: examples/simple-mono-synth/dub.json(1:4): $schema: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG dplug: examples/simple-mono-synth/dub.json(17:4): comment-WARNING-READ-THIS-IS-IMPORTANT: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG dplug: examples/clipit/dub.json(1:4): $schema: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG dplug: examples/clipit/dub.json(18:4): comment-WARNING-READ-THIS-IS-IMPORTANT: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG dplug: examples/clipit/dub.json(37:4): comment: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG dplug: examples/arpejoe/dub.json(1:4): $schema: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG dplug: examples/arpejoe/dub.json(17:4): comment-WARNING-READ-THIS-IS-IMPORTANT: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG dplug: examples/distort/dub.json(1:4): $schema: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG dplug: examples/distort/dub.json(18:4): comment-WARNING-READ-THIS-IS-IMPORTANT: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG dplug: examples/distort/dub.json(40:4): comment: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG dplug: examples/poly-alias-synth/dub.json(1:4): $schema: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG dplug: examples/poly-alias-synth/dub.json(17:4): comment-WARNING-READ-THIS-IS-IMPORTANT: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG dplug: examples/ms-encode/dub.json(1:4): $schema: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG dplug: examples/ms-encode/dub.json(17:4): comment-WARNING-READ-THIS-IS-IMPORTANT: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG memutils: dub.json(6:1): target: Key is not a valid member of this section. Did you mean: targetType, targetPath, targetName
Warning PKG optional: dub.json(22:12): configurations[2].buildType: Key is not a valid member of this section. Did you mean: buildOptions
Warning PKG optional: dub.json(29:12): configurations[3].buildType: Key is not a valid member of this section. Did you mean: buildOptions
Warning PKG poodinis-proper-d-injector: dub.json(26:3): configurations[2].description: Key is not a valid member of this section. There are 42 valid keys: name, platforms, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG cruddyorm: dub.json(13:2): type: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG jaypha-base: dub.json(7:2): srcPaths: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG w4d: dub.json(6:4): platforms: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG g4d: dub.json(8:4): platforms: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG sodium: wrapper/dub.json(10:1): version_identifiers_possible_one_of: Key is not a valid member of this section. Did you mean: version, versions, versionFilters
Warning PKG sodium: wrapper/dub.json(15:1): alternative_libname_if_no_dev_package_installed:_libs-linux: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG sodium: wrapper/dub.json(16:1): alternative_libname_if_no_dev_package_installed:_libs-osx: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG sodium: wrapper/dub.json(17:1): alternative_nonstandard_liblocation:_lflags-posix: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG sodium: deimos/dub.json(3:1): version_identifiers_possible_one_of: Key is not a valid member of this section. Did you mean: version, versions, versionFilters
Warning PKG sodium: deimos/dub.json(8:1): alternative_libname_if_no_dev_package_installed: libs-linux: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG sodium: deimos/dub.json(9:1): alternative_libname_if_no_dev_package_installed: libs-osx: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG sodium: deimos/dub.json(10:1): alternative_nonstandard_liblocation:_lflags-posix: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG riverd-x11: dub.json(12:1): platforms: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG d-profile-viewer: dub.json(7:1): versons: Key is not a valid member of this section. Did you mean: version, versions, versionFilters
Warning PKG cblas: examples/gemmTest/dub.json(5:4): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG commando: dub.json(11:4): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG commando: examples/find/dub.json(17:4): sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG zug-tap: examples/run_with_dub/dub.json(17:3): subPackages[0].sourcePath: Key is not a valid member of this section. Did you mean: sourceFiles, sourcePaths
Warning PKG storageclassutils: dub.json(5:4): soucePaths: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG karasux: dub.json(8:1): target: Key is not a valid member of this section. Did you mean: targetType, targetPath, targetName
Warning PKG rocksdb: dub.json(8:2): libraries: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG dinu: dub.json(4:1): targetFileName: Key is not a valid member of this section. Did you mean: targetType, targetPath, targetName
Warning PKG dinu: dub.json(13:1): includePaths: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG tanya: dub.json(18:1): dependencies-linux: Key is not a valid member of this section. Did you mean: dependencies
Warning PKG tanya: middle/dub.json(10:1): dependencies-linux: Key is not a valid member of this section. Did you mean: dependencies
Warning PKG libmemcached: dub.json(9:2): lib: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG subscribed: dub.json(7:2): type: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG bindbc-icu: testcases/betterc-build/dub.json(4:1): x-dflags: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG sqlite3: dub.json(8:1): hompage: Key is not a valid member of this section. Did you mean: homepage
Warning PKG glue-d: indexer/dub.json(20:1): todo: Key is not a valid member of this section. There are 53 valid keys: name, description, homepage, authors, copyright, license, toolchainRequirements, configurations, buildTypes, -ddoxFilterArgs, -ddoxTool, subPackages, version, dependencies, systemDependencies, targetType, targetPath, targetName, workingDirectory, mainSourceFile, subConfigurations, dflags, lflags, libs, sourceFiles, sourcePaths, excludedSourceFiles, injectSourceFiles, copyFiles, extraDependencyFiles, versions, debugVersions, versionFilters, debugVersionFilters, importPaths, stringImportPaths, preGenerateCommands, postGenerateCommands, preBuildCommands, postBuildCommands, preRunCommands, postRunCommands, environments, buildEnvironments, runEnvironments, preGenerateEnvironments, postGenerateEnvironments, preBuildEnvironments, postBuildEnvironments, preRunEnvironments, postRunEnvironments, buildRequirements, buildOptions
Warning PKG dco: dub.json(13:1): buildrequirements: Key is not a valid member of this section. Did you mean: buildRequirements
Warning PKG elfhook: dub.json(4:4): buildType: Key is not a valid member of this section. Did you mean: buildTypes, buildOptions
The special $schema variable is used in a bunch of projects, we should probably allow that one to be in dub.json. (configures the editor with some JSON schema)
The reason why the warnings here are important is that the public API changed so that people using DUB as a library without changing their code now get exceptions when the JSON has invalid keys, which it previously just allowed. I think it might be a good idea to make new overloads taking in a required StrictMode parameter and deprecating the ones without one (and make them use StrictMode.ignore)
Additionally quite a lot of packages used some kind of non-standard commenting, like "comment": "..." or "comment-...": "...", maybe we should support those as well if we change the default behavior to throw.
Some packages (e.g. dplug being an important one in the D ecosystem) currently contain dependencies-* platform specifiers, which aren't supported yet, but in the parser were before just read and acknoledged and merged into regular dependencies. For all the build settings JSON keys we should probably rather print out a warning that they don't support platform specifiers yet, but also keep the values, like was done before. Right now configy instead discards them.
IMO this is a blocker for this PR, because things like dependencies-* at least happened 9 times in DUB packages published, but might have occurred much more often in non-public projects. This could in the worst case be causing silent breakage as optional dependencies are simply not being pulled in, altering how the built program will run.
gonna do code review tomorrow.
This is amazing data, thanks !
A few things:
first of all I checked which packages break now on DUB:
prettyprint seems fine with my build, so does uim-server.
dxxx has some issues.
leveldb doesn't build:
geod24@geod24-symmetry ~/.dub/packages/leveldb-1.16.0/leveldb % ~/projects/dlang/dub/bin/dub build
Error Main package must not have target type "sourceLibrary". Cannot build.
2 geod24@geod24-symmetry ~/.dub/packages/leveldb-1.16.0/leveldb % dub build
Main package must not have target type "sourceLibrary". Cannot build.
dash takes forever but parsing dub.json works, e.g.:
source/dash/utility/data/yaml.d(4,15): Error: unable to read module `yaml`
source/dash/utility/data/yaml.d(4,15): Expected 'yaml.d' or 'yaml/package.d' in one of the following import paths:
I just randomly looked at a few, but it looks like the new configy thing does not like duplicate keys. Instead of throwing an exception, we should only warn (this is with StrictMode.warn)
It wouldn't surprise me, but randomly looking at them, I didn't encounter the problem. Can you point me to one package with the issue ?
The reason why the warnings here are important is that the public API changed so that people using DUB as a library without changing their code now get exceptions when the JSON has invalid keys, which it previously just allowed. I think it might be a good idea to make new overloads taking in a required StrictMode parameter and deprecating the ones without one (and make them use StrictMode.ignore)
Good point, will change.
The special
$schemavariable is used in a bunch of projects, we should probably allow that one to be in dub.json. (configures the editor with some JSON schema)
Can you point me to one use so I can add a test for it ?
Additionally quite a lot of packages used some kind of non-standard commenting [...]
I'm on the fence on this. Anything we come up with will be quite arbitrary.
Some packages (e.g. dplug being an important one in the D ecosystem) currently contain
dependencies-*platform specifiers, which aren't supported yet, but in the parser were before just read and acknoledged and merged into regular dependencies.
Wait what ? How does that work ? And does it work with master ? I'll dig in the parsing code...
IMO this is a blocker for this PR [...]
Yep. Looking into it.
prettyprint seems fine with my build, so does uim-server.
Trying just dub build in the prettyprint source code with your commit e6a35055 I get:
$ ~/dev/dub/bin/dub build
Error Duplicate key found in mapping
file /tmp/prettyprint/dub.json,line 42,column 3
$ dub build
Fetching unit-threaded 2.0.4 (getting selected version)...
Performing "debug" build using /usr/bin/dmd for x86_64.
prettyprint 1.0.8: building configuration "library"...
with uim-server I get:
$ ~/dev/dub/bin/dub build
Error Duplicate key found in mapping
file /tmp/uim-server/dub.json,line 21,column 2
$ dub build
Failed to find any versions for package uim-bootstrap-vue, referenced by uim-server 0.19.6-commit.1.gf1f1726
for the dub binary I simply ran dub build without any flags inside your dub repository
How do you reckon we should approach this? I'm thinking of using Configy and falling back to old JSON parsing if any Exception is thrown. But the behavior needs to be the same for a correctly parsed file, so that is dependent on figuring out dependencies-*...
platform specifications are only supported on build settings, so I would suggest we should just allow them everywhere there, but print a warning when it's not implemented
platform specifications are only supported on build settings, so I would suggest we should just allow them everywhere there, but print a warning when it's not implemented
That would force us to turn everything into an associative array though.