Difference between revisions of "User:Nathan M. Swan/DPM Proposal"
m (Nathan M. Swan moved page DPM Proposal to User:Nathan M. Swan/DPM Proposal: It's inappropriate for the main namespace) |
|||
Line 1: | Line 1: | ||
− | WORK IN PROGRESS | + | WORK IN PROGRESS, IGNORE FOR NOW |
This is a proposal for <code>'''dpm'''</code>, 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. | This is a proposal for <code>'''dpm'''</code>, 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 == | == 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 | + | 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 | + | * Install a package |
− | + | * Create 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 [http://www.rubygems.org RubyGems], but for now we will rely on <code>git</code> repositories. | + | Where will these "packages" be hosted? Sometime in the future, we would ideally have a central repository that hosts them like [http://www.rubygems.org RubyGems], but for now we will rely on <code>git</code> 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 <code>'''dpm'''</code>, 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 <code>build.d</code>, if it exists. | ||
+ | * Running a makefile |
Revision as of 01:25, 11 December 2012
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