Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

recursive dub failure #649

Closed
John-Colvin opened this issue Aug 11, 2015 · 4 comments
Closed

recursive dub failure #649

John-Colvin opened this issue Aug 11, 2015 · 4 comments

Comments

@John-Colvin
Copy link
Contributor

OS X 10.11, dmd 2.068.0, dub HEAD (4fece3c)

Folder layout (no hidden files, no .dub/):

dubRec
├── dub.sdl
└── source
    └── app.d

dub.sdl:

name "dubrec"
description "A minimal D application."
copyright "Copyright © 2015, johncolvin"
authors "johncolvin"
dependency "ddox" version="0.10.9"
buildType "ddox2" {
    buildOptions "syntaxOnly"
    dflags "-c" "-Df__dummy.html" "-Xfdocs.json"
    postBuildCommands "echo hi" "rm -rf docs" "dub run ddox -- filter --min-protection=Protected --only-documented docs.json" "dub run ddox -- generate-html --navigation-type=ModuleTree docs.json docs"
}

output from dub build --build=ddox2 with a clean ~/.dub:

Fetching ddox 0.10.9 (getting selected version)...
Placing ddox 0.10.9 to /Users/johncolvin/.dub/packages/...
Fetching libevent 2.0.1+2.0.16 (getting selected version)...
Placing libevent 2.0.1+2.0.16 to /Users/johncolvin/.dub/packages/...
Fetching libev 5.0.0+4.04 (getting selected version)...
Placing libev 5.0.0+4.04 to /Users/johncolvin/.dub/packages/...
Fetching openssl 1.1.4+1.0.1g (getting selected version)...
Placing openssl 1.1.4+1.0.1g to /Users/johncolvin/.dub/packages/...
Fetching memutils 0.4.1 (getting selected version)...
Placing memutils 0.4.1 to /Users/johncolvin/.dub/packages/...
Fetching vibe-d 0.7.24 (getting selected version)...
Placing vibe-d 0.7.24 to /Users/johncolvin/.dub/packages/...
Fetching libasync 0.7.5 (getting selected version)...
Placing libasync 0.7.5 to /Users/johncolvin/.dub/packages/...
Performing "ddox2" build using dmd for x86_64.
vibe-d 0.7.24: building configuration "libevent"...
../../.dub/packages/vibe-d-0.7.24/source/vibe/core/concurrency.d(1127,30): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/crypto/cryptorand.d(30,7): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/crypto/passwordhash.d(63,6): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/data/json.d(1960,6): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/http/form.d(130,6): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/codegen.d(52,1): Warning: Ddoc: function declaration has no parameter 'T'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/codegen.d(300,7): Warning: Ddoc: function declaration has no parameter 'Func'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/codegen.d(300,7): Warning: Ddoc: function declaration has no parameter 'body_'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/codegen.d(300,7): Warning: Ddoc: function declaration has no parameter 'keepUDA'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/codegen.d(300,7): Warning: Ddoc: function declaration has no parameter 'identifier'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/codegen.d(386,7): Warning: Ddoc: function declaration has no parameter 'Func'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/codegen.d(386,7): Warning: Ddoc: function declaration has no parameter 'keepUDA'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/codegen.d(386,7): Warning: Ddoc: function declaration has no parameter 'identifier'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/funcattr.d(99,6): Warning: Ddoc: function declaration has no parameter 'Hook'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/funcattr.d(99,6): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/traits.d(96,1): Warning: Ddoc: function declaration has no parameter 'T'
../../.dub/packages/vibe-d-0.7.24/source/vibe/stream/counting.d(34,2): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/web/common.d(484,19): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/web/common.d(507,19): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/web/common.d(531,19): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/web/i18n.d(112,7): Warning: Ddoc: function declaration has no parameter 'FILENAME'
Running post-build commands...
hi
Building package ddox in /Users/johncolvin/.dub/packages/ddox-0.10.9/
Performing "$DFLAGS" build using dmd for x86_64.
vibe-d 0.7.24: building configuration "libevent"...
../../.dub/packages/vibe-d-0.7.24/source/vibe/core/concurrency.d(1127,30): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/crypto/cryptorand.d(30,7): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/crypto/passwordhash.d(63,6): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/data/json.d(1960,6): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/http/form.d(130,6): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/codegen.d(52,1): Warning: Ddoc: function declaration has no parameter 'T'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/codegen.d(300,7): Warning: Ddoc: function declaration has no parameter 'Func'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/codegen.d(300,7): Warning: Ddoc: function declaration has no parameter 'body_'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/codegen.d(300,7): Warning: Ddoc: function declaration has no parameter 'keepUDA'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/codegen.d(300,7): Warning: Ddoc: function declaration has no parameter 'identifier'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/codegen.d(386,7): Warning: Ddoc: function declaration has no parameter 'Func'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/codegen.d(386,7): Warning: Ddoc: function declaration has no parameter 'keepUDA'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/codegen.d(386,7): Warning: Ddoc: function declaration has no parameter 'identifier'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/funcattr.d(99,6): Warning: Ddoc: function declaration has no parameter 'Hook'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/funcattr.d(99,6): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/traits.d(96,1): Warning: Ddoc: function declaration has no parameter 'T'
../../.dub/packages/vibe-d-0.7.24/source/vibe/stream/counting.d(34,2): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/web/common.d(484,19): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/web/common.d(507,19): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/web/common.d(531,19): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/web/i18n.d(112,7): Warning: Ddoc: function declaration has no parameter 'FILENAME'
ddox 0.10.9: building configuration "application"...
Compiling diet template 'ddox.overview.dt'...
Compiling diet template 'ddox.module.dt'...
Compiling diet template 'ddox.docpage.dt'...
Linking...
Running ../../.dub/packages/ddox-0.10.9/ddox filter --min-protection=Protected --only-documented docs.json
Reading doc file...
Parsing JSON...
Filtering modules...
Writing filtered docs...
Building package ddox in /Users/johncolvin/.dub/packages/ddox-0.10.9/
Performing "$DFLAGS" build using dmd for x86_64.
vibe-d 0.7.24: target for configuration "libevent" is up to date.
ddox 0.10.9: target for configuration "application" is up to date.
To force a rebuild of up-to-date targets, run again with --force.
Running ../../.dub/packages/ddox-0.10.9/ddox generate-html --navigation-type=ModuleTree docs.json docs
Reading doc file...
Parsing JSON...
Parsing docs...
Finished parsing docs.
Generating module: ddox.parsers.dparse
Generating module: ddox.parsers.jsonparser
Generating module: ddox.parsers.jsonparser_old
Generating module: ddox.processors.eptemplates
Generating module: ddox.processors.inherit
Generating module: ddox.processors.sort
Generating module: ddox.processors.split
Generating module: ddox.api
Generating module: ddox.ddoc
Generating module: ddox.ddox
Generating module: ddox.entities
Generating module: ddox.htmlgenerator
Generating module: ddox.htmlserver
Generating module: ddox.settings
Generating module: vibe.appmain
ddox 0.10.9: building configuration "library"...
Compiling diet template 'ddox.overview.dt'...
Compiling diet template 'ddox.module.dt'...
Compiling diet template 'ddox.docpage.dt'...
Running post-build commands...
hi
Building package ddox in /Users/johncolvin/.dub/packages/ddox-0.10.9/
Performing "$DFLAGS" build using dmd for x86_64.
vibe-d 0.7.24: building configuration "libevent"...
../../.dub/packages/vibe-d-0.7.24/source/vibe/core/concurrency.d(1127,30): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/crypto/cryptorand.d(30,7): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/crypto/passwordhash.d(63,6): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/data/json.d(1960,6): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/http/form.d(130,6): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/codegen.d(52,1): Warning: Ddoc: function declaration has no parameter 'T'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/codegen.d(300,7): Warning: Ddoc: function declaration has no parameter 'Func'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/codegen.d(300,7): Warning: Ddoc: function declaration has no parameter 'body_'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/codegen.d(300,7): Warning: Ddoc: function declaration has no parameter 'keepUDA'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/codegen.d(300,7): Warning: Ddoc: function declaration has no parameter 'identifier'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/codegen.d(386,7): Warning: Ddoc: function declaration has no parameter 'Func'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/codegen.d(386,7): Warning: Ddoc: function declaration has no parameter 'keepUDA'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/codegen.d(386,7): Warning: Ddoc: function declaration has no parameter 'identifier'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/funcattr.d(99,6): Warning: Ddoc: function declaration has no parameter 'Hook'
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/funcattr.d(99,6): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/internal/meta/traits.d(96,1): Warning: Ddoc: function declaration has no parameter 'T'
../../.dub/packages/vibe-d-0.7.24/source/vibe/stream/counting.d(34,2): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/web/common.d(484,19): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/web/common.d(507,19): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/web/common.d(531,19): Warning: Ddoc: parameter count mismatch
../../.dub/packages/vibe-d-0.7.24/source/vibe/web/i18n.d(112,7): Warning: Ddoc: function declaration has no parameter 'FILENAME'
ddox 0.10.9: building configuration "application"...
Compiling diet template 'ddox.overview.dt'...
Compiling diet template 'ddox.module.dt'...
Compiling diet template 'ddox.docpage.dt'...
Linking...
Running ../../.dub/packages/ddox-0.10.9/ddox filter --min-protection=Protected --only-documented docs.json
Reading doc file...
Parsing JSON...
Filtering modules...
Writing filtered docs...
Building package ddox in /Users/johncolvin/.dub/packages/ddox-0.10.9/
Performing "$DFLAGS" build using dmd for x86_64.
vibe-d 0.7.24: target for configuration "libevent" is up to date.
ddox 0.10.9: target for configuration "application" is up to date.
To force a rebuild of up-to-date targets, run again with --force.
Running ../../.dub/packages/ddox-0.10.9/ddox generate-html --navigation-type=ModuleTree docs.json docs
Reading doc file...
Parsing JSON...
Parsing docs...
Finished parsing docs.
Generating module: ddox.parsers.dparse
Generating module: ddox.parsers.jsonparser
Generating module: ddox.parsers.jsonparser_old
Generating module: ddox.processors.eptemplates
Generating module: ddox.processors.inherit
Generating module: ddox.processors.sort
Generating module: ddox.processors.split
Generating module: ddox.api
Generating module: ddox.ddoc
Generating module: ddox.ddox
Generating module: ddox.entities
Generating module: ddox.htmlgenerator
Generating module: ddox.htmlserver
Generating module: ddox.settings
Generating module: vibe.appmain
hi
Building package ddox in /Users/johncolvin/.dub/packages/ddox-0.10.9/
Performing "$DFLAGS" build using dmd for x86_64.
vibe-d 0.7.24: target for configuration "libevent" is up to date.
ddox 0.10.9: target for configuration "application" is up to date.
To force a rebuild of up-to-date targets, run again with --force.
Running ../../.dub/packages/ddox-0.10.9/ddox filter --min-protection=Protected --only-documented docs.json
Reading doc file...
Parsing JSON...
Filtering modules...
Writing filtered docs...
Building package ddox in /Users/johncolvin/.dub/packages/ddox-0.10.9/
Performing "$DFLAGS" build using dmd for x86_64.
vibe-d 0.7.24: target for configuration "libevent" is up to date.
ddox 0.10.9: target for configuration "application" is up to date.
To force a rebuild of up-to-date targets, run again with --force.
Running ../../.dub/packages/ddox-0.10.9/ddox generate-html --navigation-type=ModuleTree docs.json docs
Reading doc file...
Parsing JSON...
Parsing docs...
Finished parsing docs.
Generating module: ddox.parsers.dparse
Generating module: ddox.parsers.jsonparser
Generating module: ddox.parsers.jsonparser_old
Generating module: ddox.processors.eptemplates
Generating module: ddox.processors.inherit
Generating module: ddox.processors.sort
Generating module: ddox.processors.split
Generating module: ddox.api
Generating module: ddox.ddoc
Generating module: ddox.ddox
Generating module: ddox.entities
Generating module: ddox.htmlgenerator
Generating module: ddox.htmlserver
Generating module: ddox.settings
Generating module: vibe.appmain
dubrec ~master: building configuration "application"...
../../.dub/packages/vibe-d-0.7.24/source/vibe/appmain.d(28,8): Error: static assert  "Error: -version=VibeDefaultMain is required to use vibe.d's default main(). Or use -version=VibeCustomMain to use your own main() instead. Please update your build scripts."
dmd failed with exit code 1.
@John-Colvin
Copy link
Contributor Author

So for a start: why is it repeating itself so many times?

I had the same problem with a larger project using dub.json that didn't end up with the vibe.d compile error, but just did the postBuildCommands 4 times in a row!

@Abscissa
Copy link
Contributor

It's probably #616/#633

@Abscissa
Copy link
Contributor

On second look, I don't think this is #616/#633 after all.

@WebFreak001
Copy link
Member

recursion has been fixed, the multi-output is a bug that I just opened here: #2598

A workaround against the multi-output in this particular case can be done by simply removing the dependency on ddox, as dub run will fetch it anyway.

However this is not a solution, as the reason what was broken was, that it would run the postBuildCommand in every dependency, recursively. I have opened that issue I mentioned above to track that, as it's a fatal issue for this kind of usage and spans all the way back from old legacy dub versions to current dub versions and master.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants