On Thursday, 5 February 2015 at 16:32:26 UTC, Sönke Ludwig wrote:
I think the only build script I had to write was for RABCDAsm,
which
probably can't be reimplemented as a dub.json file:
http://forum.dlang.org/post/peurhbfebwdskcbal...@forum.dlang.org
Okay, things like testing for DMD bugs and signing stuff would
indeed still have to be done outside of DUB using a separate
pre(Build/Generate)Command (a failing command should
automatically stop the build), but at least the dependency
management part (haveLZMA) should map fine to DUB packages.
The haveLZMA thing isn't needed to detect D packages, but the
presence of the C library, similar to what a ./configure script
does.
Fun fact: If you register a GIT working copy using "dub
add-path/add-local" and it doesn't have an exact tag checked
out, then any package that uses it, will have something like
this in its dub.selections.json file: '"vibe-d":
"0.7.22+commit.17.g75ecb6b"', where "0.7.22" is the latest
version tag on that branch and the suffix is the current commit
hash.
This information is currently not used to drive GIT and
automatically check out that same commit before building. But
we could of course implement that in one form or another to
have fully reproducible builds with commit granularity.
That's nice. Having the build system generate a file with the
dependencies' commits should work as well as git submodules, if
it can be expected that the build system will be invoked at least
once before committing.