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