Git, the D package manager

Vladimir Panteleev via Digitalmars-d digitalmars-d at puremagic.com
Thu Feb 5 09:35:08 PST 2015


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/peurhbfebwdskcballzk@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.


More information about the Digitalmars-d mailing list