Proposal: DPM, the D Package Manager

Kevin Kane kevin.kane at gmail.com
Mon Jul 8 13:46:16 PDT 2013


I don't know if this thread is dead but...

I have some comments/suggestions because I am considering 
implementing something as well and if you want some help I'd be 
willing.  My thought would be to model it on Perl's CPAN.  A 
package should be a bare bones gzip of the source, a makefile, 
some unit tests, a way to identify depends, a readme and some 
kind of license identifier.  A client side application 
(hopefully) (eventually) would be  packaged with the various D 
compilers would provide a shell/command line system for saying:

dpm install <package>, it fetches the latest gzip, and proceeds 
to compile for the architecture that you are on.  Installing it 
someplace local for you to import at a later time.

It would probably be nice if we could secure a 'contrib' 
namespace for this.  So individuals would go and submit their 
work to some repository of packages, next time people run dpm it 
would let them know that a new package list is available and 
using these packages in your D programs becomes as simple as 
doing this:

dpm install some.package
<bunch of downloading/compiling/installing happens>

then in your project where you want to use this thing you add:

import contrib.some.package; and voila its done.

What I like about this approach:
   1) its simple/easy/there is already a working pattern that this 
can be modeled after
   2) it actually helps different OSes maintainers create packages 
because you've already done a fair bit of work for them.
   3) it could provide a community supported repository of D code, 
that encourages contribution and puts useful things in a single 
place making D development that much better of an experience.
   4) its cross platform without having to really worry to much 
about it

Just some thoughts from a D newb who is really loving the 
language but wish I could just install user contributed modules 
from a repository and contribute back some of the things that I 
am working on.


More information about the Digitalmars-d mailing list