Difference between revisions of "User:Nathan M. Swan/DPM Proposal"

From D Wiki
Jump to: navigation, search
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 four main UXs:
+
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 for an executable
+
* Install a package
* Install a package for a library
+
* Create a package
* Create a package for an executable
 
* Create a package for a library
 
  
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).
  
=== Package from Executable ===
+
=== Installing packages ===
This command:
+
You enter the command:
   
 
    dpm install https://github.com/carlor/rwg.git
 
  
Would:
+
    $ dpm install <repository> [<options>]
* clone the repository
+
 
* build the exec
+
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.
* move it to <code>/usr/bin</code> or ...
+
 
 +
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