RejectedSoftware Forums

Sign up

Unable to build subpackage "Root package <subpackage> references unknown package <another subpackage>"

I can't seem to be able to set up dub so that I can build subpackages.

Do I have a mistake in the json configs?

What I have:

./dub.json:

{
	"name": "test",
	"authors": [
		"timoses"
	],
	"description": "A minimal D application.",
	"copyright": "Copyright © 2018, timoses",
	"license": "proprietary",

    "dependencies": {
        "test:dep"
    },

    "subPackages": [
        "dep",
        "dep2"
    ]
}

./dep/dub.json:

{
	"name": "dep",
	"authors": [
		"timoses"
	],
	"description": "A minimal D application.",
	"copyright": "Copyright © 2018, timoses",
	"license": "proprietary",

    "dependencies": {
        "test:dep2": "*"
    },

    "targetType": "library"
}

./dep2/dub.json:

{
	"name": "dep2",
	"authors": [
		"timoses"
	],
	"description": "A minimal D application.",
	"copyright": "Copyright © 2018, timoses",
	"license": "proprietary"
}

dub upgrade --vverbose yields (dub v1.6.0, though error is same for v1.7.2):

Using dub registry url 'http://code.dlang.org/'
Refreshing local packages (refresh existing: true)...
Looking for local package map at /var/lib/dub/packages/local-packages.json
Looking for local package map at /home/timoses/.dub/packages/local-packages.json
iterating dir /home/timoses/.dub/packages/
iterating dir /home/timoses/.dub/packages/ entry eventcore-0.8.29
iterating dir /home/timoses/.dub/packages/ entry vibe-d-0.8.3-rc.1
iterating dir /home/timoses/.dub/packages/ entry eventcore-0.8.28
iterating dir /home/timoses/.dub/packages/ entry diet-ng-1.4.3
iterating dir /home/timoses/.dub/packages/ entry stdx-allocator-2.77.0
iterating dir /home/timoses/.dub/packages/ entry arsd-official-1.2.2
iterating dir /home/timoses/.dub/packages/ entry diet-ng-1.4.4
iterating dir /home/timoses/.dub/packages/ entry vibe-core-1.0.0
iterating dir /home/timoses/.dub/packages/ entry botan-math-1.0.3
iterating dir /home/timoses/.dub/packages/ entry vibe-core-1.3.0
iterating dir /home/timoses/.dub/packages/ entry eventcore-0.8.27
iterating dir /home/timoses/.dub/packages/ entry libasync-0.8.3
iterating dir /home/timoses/.dub/packages/ entry dstep-0.2.3
iterating dir /home/timoses/.dub/packages/ entry htmld-0.3.1
iterating dir /home/timoses/.dub/packages/ entry memutils-0.4.10
iterating dir /home/timoses/.dub/packages/ entry taggedalgebraic-0.10.7
iterating dir /home/timoses/.dub/packages/ entry diet-ng-1.2.1
iterating dir /home/timoses/.dub/packages/ entry openssl-1.1.5_1.0.1g
iterating dir /home/timoses/.dub/packages/ entry vibe-d-0.7.31
iterating dir /home/timoses/.dub/packages/ entry vibe-d-0.8.3-alpha.4
iterating dir /home/timoses/.dub/packages/ entry memutils-0.4.9
iterating dir /home/timoses/.dub/packages/ entry vibe-d-0.8.2-rc.1
iterating dir /home/timoses/.dub/packages/ entry libdominator-1.1.6
iterating dir /home/timoses/.dub/packages/ entry kxml
Determined package version using GIT: kxml 1.0.1+commit.1.g337ff04
iterating dir /home/timoses/.dub/packages/ entry libevent-2.0.2_2.0.16
iterating dir /home/timoses/.dub/packages/ entry vibe-d-0.8.3-alpha.2
iterating dir /home/timoses/.dub/packages/ entry kxml-1.0.1
iterating dir /home/timoses/.dub/packages/ entry vibe-core-1.4.0-alpha.1
iterating dir /home/timoses/.dub/packages/ entry vibe-d-0.8.2
iterating dir /home/timoses/.dub/packages/ entry vibe-core-1.4.0-rc.1
iterating dir /home/timoses/.dub/packages/ entry vibe-d-0.7.32
iterating dir /home/timoses/.dub/packages/ entry vibe-core-1.3.0-rc.2
iterating dir /home/timoses/.dub/packages/ entry mysql-native-1.1.2
iterating dir /home/timoses/.dub/packages/ entry dproto-1.3.2
iterating dir /home/timoses/.dub/packages/ entry taggedalgebraic-0.10.9
iterating dir /home/timoses/.dub/packages/ entry openssl-1.1.6_1.0.1g
iterating dir /home/timoses/.dub/packages/ entry eventcore-0.8.25
iterating dir /home/timoses/.dub/packages/ entry botan-1.12.9
Note: Failed to determine version of package dep at .. Assuming ~master.
Refreshing local packages (refresh existing: false)...
Looking for local package map at /var/lib/dub/packages/local-packages.json
Looking for local package map at /home/timoses/.dub/packages/local-packages.json
iterating dir /home/timoses/.dub/packages/
iterating dir /home/timoses/.dub/packages/ entry eventcore-0.8.29
iterating dir /home/timoses/.dub/packages/ entry vibe-d-0.8.3-rc.1
iterating dir /home/timoses/.dub/packages/ entry eventcore-0.8.28
iterating dir /home/timoses/.dub/packages/ entry diet-ng-1.4.3
iterating dir /home/timoses/.dub/packages/ entry stdx-allocator-2.77.0
iterating dir /home/timoses/.dub/packages/ entry arsd-official-1.2.2
iterating dir /home/timoses/.dub/packages/ entry diet-ng-1.4.4
iterating dir /home/timoses/.dub/packages/ entry vibe-core-1.0.0
iterating dir /home/timoses/.dub/packages/ entry botan-math-1.0.3
iterating dir /home/timoses/.dub/packages/ entry vibe-core-1.3.0
iterating dir /home/timoses/.dub/packages/ entry eventcore-0.8.27
iterating dir /home/timoses/.dub/packages/ entry libasync-0.8.3
iterating dir /home/timoses/.dub/packages/ entry dstep-0.2.3
iterating dir /home/timoses/.dub/packages/ entry htmld-0.3.1
iterating dir /home/timoses/.dub/packages/ entry memutils-0.4.10
iterating dir /home/timoses/.dub/packages/ entry taggedalgebraic-0.10.7
iterating dir /home/timoses/.dub/packages/ entry diet-ng-1.2.1
iterating dir /home/timoses/.dub/packages/ entry openssl-1.1.5_1.0.1g
iterating dir /home/timoses/.dub/packages/ entry vibe-d-0.7.31
iterating dir /home/timoses/.dub/packages/ entry vibe-d-0.8.3-alpha.4
iterating dir /home/timoses/.dub/packages/ entry memutils-0.4.9
iterating dir /home/timoses/.dub/packages/ entry vibe-d-0.8.2-rc.1
iterating dir /home/timoses/.dub/packages/ entry libdominator-1.1.6
iterating dir /home/timoses/.dub/packages/ entry kxml
iterating dir /home/timoses/.dub/packages/ entry libevent-2.0.2_2.0.16
iterating dir /home/timoses/.dub/packages/ entry vibe-d-0.8.3-alpha.2
iterating dir /home/timoses/.dub/packages/ entry kxml-1.0.1
iterating dir /home/timoses/.dub/packages/ entry vibe-core-1.4.0-alpha.1
iterating dir /home/timoses/.dub/packages/ entry vibe-d-0.8.2
iterating dir /home/timoses/.dub/packages/ entry vibe-core-1.4.0-rc.1
iterating dir /home/timoses/.dub/packages/ entry vibe-d-0.7.32
iterating dir /home/timoses/.dub/packages/ entry vibe-core-1.3.0-rc.2
iterating dir /home/timoses/.dub/packages/ entry mysql-native-1.1.2
iterating dir /home/timoses/.dub/packages/ entry dproto-1.3.2
iterating dir /home/timoses/.dub/packages/ entry taggedalgebraic-0.10.9
iterating dir /home/timoses/.dub/packages/ entry openssl-1.1.6_1.0.1g
iterating dir /home/timoses/.dub/packages/ entry eventcore-0.8.25
iterating dir /home/timoses/.dub/packages/ entry botan-1.12.9
Collecting dependencies for dep
  Version selection for dependency test (test) of dep is missing.
  Missing dependency test >=0.0.0 of dep
Upgrading project in /media/sf_C_DRIVE/Users/funke_t1/Code/test/dep
Search for versions of test (1 package suppliers)
Downloading metadata for test
Getting from http://code.dlang.org/packages/test.json
Getting http://code.dlang.org/packages/test.json...
Package test not found at registry at http://code.dlang.org/ (404): HTTP request returned status code 404 (Not Found)
No versions for test for registry at http://code.dlang.org/ (fallback registry at https://code-mirror.dlang.io/)
Nothing found for test
Configurations used for dependency resolution:
  test (0, required): [invalid]
Root package dep references unknown package test
Full exception: object.Exception@source/dub/dependencyresolver.d(159): Root package dep references unknown package test
----------------
source/dub/dependencyresolver.d:159 long dub.dependencyresolver.DependencyResolver!(dub.dependency.Dependency, dub.dependency.Dependency).DependencyResolver.resolve(dub.dependencyresolver.DependencyResolver!(dub.dependency.Dependency, dub.dependency.Dependency).DependencyResolver.TreeNode, bool).validateConfigs(dub.dependencyresolver.DependencyResolver!(dub.dependency.Dependency, dub.dependency.Dependency).DependencyResolver.TreeNode, ref immutable(char)[]) [0x88b7bb]
source/dub/dependencyresolver.d:205 dub.dependency.Dependency[immutable(char)[]] dub.dependencyresolver.DependencyResolver!(dub.dependency.Dependency, dub.dependency.Dependency).DependencyResolver.resolve(dub.dependencyresolver.DependencyResolver!(dub.dependency.Dependency, dub.dependency.Dependency).DependencyResolver.TreeNode, bool) [0x88a7bd]
source/dub/dub.d:1249 dub.dependency.Dependency[immutable(char)[]] dub.dub.DependencyVersionResolver.resolve(dub.package_.Package, dub.project.SelectedVersions) [0x896c7e]
source/dub/dub.d:413 void dub.dub.Dub.upgrade(dub.dub.UpgradeOptions, immutable(char)[][]) [0x890d6b]
source/dub/commandline.d:1155 int dub.commandline.UpgradeCommand.execute(dub.dub.Dub, immutable(char)[][], immutable(char)[][]) [0x85937d]
source/dub/commandline.d:239 int dub.commandline.runDubCommandLine(immutable(char)[][]) [0x853647]
source/app.d:14 _Dmain [0x84fc27]

Re: Unable to build subpackage "Root package <subpackage> references unknown package <another subpackage>"

Am 07.03.2018 um 13:05 schrieb Timoses:

I can't seem to be able to set up dub so that I can build subpackages.

(...)
./dep/dub.json:

(...)

     "dependencies": {
         "test:dep2": "*"
     },

     "targetType": "library"
}

The dependency above must be "test:dep2": {"path": ".."}, because a
sub package, apart from inheriting the prefix from its parent package,
behaves just like a normal package. In particular, when building from
the sub package directory, there is no knowledge about the parent package.

It may make sense to make some improvements in this area, though.

Re: Unable to build subpackage "Root package <subpackage> references unknown package <another subpackage>"

On Wed, 7 Mar 2018 16:27:37 +0100, Sönke Ludwig wrote:

Am 07.03.2018 um 13:05 schrieb Timoses:
[...]
The dependency above must be "test:dep2": {"path": ".."}, because a
sub package, apart from inheriting the prefix from its parent package,
behaves just like a normal package. In particular, when building from
the sub package directory, there is no knowledge about the parent package.

It may make sense to make some improvements in this area, though.

Ah, thank you for the explanation.

I used the vibe-d project as a reference. I suppose the subpackages there know the parent/other subpackages as they are accessible via the code mirror online.

Re: Unable to build subpackage "Root package <subpackage> references unknown package <another subpackage>"

Am 08.03.2018 um 11:54 schrieb Timoses:

On Wed, 7 Mar 2018 16:27:37 +0100, Sönke Ludwig wrote:

Am 07.03.2018 um 13:05 schrieb Timoses:
[...]
The dependency above must be "test:dep2": {"path": ".."}, because a
sub package, apart from inheriting the prefix from its parent package,
behaves just like a normal package. In particular, when building from
the sub package directory, there is no knowledge about the parent package.

It may make sense to make some improvements in this area, though.

Ah, thank you for the explanation.

I used the vibe-d project as a reference. I suppose the subpackages there know the parent/other subpackages as they are accessible via the code mirror online.

Good point, that may actually be the case, and those sub packages are in
fact wrongly specified. I'll have a look at them.