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.

Reply via email to