Git, the D package manager
Vladimir Panteleev via Digitalmars-d
digitalmars-d at puremagic.com
Thu Feb 5 07:15:06 PST 2015
On Thursday, 5 February 2015 at 14:48:24 UTC, Sönke Ludwig wrote:
>> - restructure the directory layout of my library (breaking
>> change)
> Not true. Use "sourcePaths" and "importPaths" to configure the
> package as appropriate.
Right now this is necessary to maintain directory/package path
consistency.
>> - update all projects which use this library to use Dub instead
> Not true. Adding a dub.json will probably not break any
> dependent projects.
The problem is certainly not with the addition of dub.json, but
with the change in directory layout.
>> - give up quick syntax checking
> Not true. Use path based dependencies or "add-path"/"add-local"
> to reference dependencies wherever you want.
Ah, good idea.
>> - begin maintaining JSON configuration files
> Well, for most projects that would mean writing a tiny JSON
> file once and never touch it again. If you commit to it, you
> can of course stop maintaining a D build script, so I'm not
> sure how much of an argument this is.
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
For DFeed and a few small projects I use Makefiles and packaging
scripts, but they also do more complicated things such as signing
Windows executables, compressing/compiling resources, and
applying .manifest files.
In general, I've tried to make things work with rdmd alone.
>> - begin versioning libraries by hand
> A good thing, IMHO! Commit hashes alone have no semantical
> meaning, which is problematic for public libraries for many
> reasons. For private libraries things can be different and
> additionally supporting commit based dependencies may be good
> to have.
I can see how that is more practical for public libraries. Commit
granularity helps if you want reproducible builds, though.
More information about the Digitalmars-d
mailing list