User:Nathan M. Swan/DPM Proposal

From D Wiki
Jump to: navigation, search

WORK IN PROGRESS, IGNORE FOR NOW

This is a proposal for dpm, a D package manager. The eventual goal is to get this accepted into the standard distribution of D, so I don't want to start working on this until I get feedback from the community.

Scenarios

I want it to cover the largest range of use cases as possible, so it should be extendable, but the basic use case should be easy. These are the two main UXs:

  • Install a package
  • Create a package

Where will these "packages" be hosted? Sometime in the future, we would ideally have a central repository that hosts them like RubyGems, but for now we will rely on git repositories from anywhere (like Github).

Installing packages

You enter the command:

   $ dpm install <repository> [<options>]

The repository can be a "genuine" or "pseudo" package. A genuine package has been created with dpm, which means that it simply follows the instructions of the dpm configuration file.

Pseudo-packages are D code repositories that have yet to use dpm. This means that guesswork in how to run it will be involved, which includes:

  • Running a build.d, if it exists.
  • Running a makefile