diff --git a/README.md b/README.md index 323881f..9f0163f 100644 --- a/README.md +++ b/README.md @@ -1,43 +1,29 @@ -dub package manager -=================== +# dub package manager [![Build Status](https://travis-ci.org/D-Programming-Language/dub.png)](https://travis-ci.org/D-Programming-Language/dub) Package and build manager for [D](http://dlang.org/) applications and libraries. There is a central [package registry](https://github.com/D-Programming-Language/dub-registry/) located at . -[![Build Status](https://travis-ci.org/D-Programming-Language/dub.png)](https://travis-ci.org/D-Programming-Language/dub) - -Introduction ------------- +## Introduction DUB emerged as a more general replacement for [vibe.d's](http://vibed.org/) package manager. It does not imply a dependecy to vibe.d for packages and was extended to not only directly build projects, but also to generate project files (currently [VisualD](https://github.com/rainers/visuald)). [Mono-D](http://mono-d.alexanderbothe.com/) also support the use of dub.json (dub's package description) as project file. The project's philosophy is to keep things as simple as possible. All that is needed to make a project a dub package is to write a short [dub.json](http://code.dlang.org/publish) file and put the source code into a `source` subfolder. It *can* then be registered on the public [package registry](http://code.dlang.org) to be made available for everyone. Any dependencies specified in `dub.json` are automatically downloaded and made available to the project during the build process. - -Key features ------------- +## Key features - Simple package and build description not getting in your way - - Integrated with Git, avoiding maintainance tasks such as incrementing version numbers or uploading new project releases - - Generates VisualD project/solution files, integrated into MonoD - - Support for DMD, GDC and LDC (common DMD flags are translated automatically) - - Supports development workflows by optionally using local directories as a package source - -Future direction ----------------- +## Future direction To make things as flexible as they need to be for certain projects, it is planned to gradually add more options to the [package file format](http://code.dlang.org/package-format) and eventually to add the possibility to specify an external build tool along with the path of it's output files. The idea is that DUB provides a convenient build management that suffices for 99% of projects, but is also usable as a bare package manager that doesn't get in your way if needed. - -Installation ------------- +## Installation DUB comes [precompiled](http://code.dlang.org/download) for Windows, Mac OS, Linux and FreeBSD. It needs to have libcurl with SSL support installed (except on Windows). @@ -58,8 +44,10 @@ Chris Molozian has added DUB to [Homebrew](http://mxcl.github.io/homebrew/). Use `brew install dub` or `brew install dub --HEAD` to install the stable or the git HEAD version respectively. +### Windows -Using DUB as a library ----------------------- +Daniel Jost maintains a dub package on [chocolatey](https://chocolatey.org/packages/dub). Use `cinst dub` or `cinst dub -version #.#.#` to install stable or a custom version respectively. + +## Using DUB as a library The [DUB package of DUB](http://code.dlang.org/packages/dub) can be used as a library to load or manipulate packages, or to resemble any functionality of the command line tool. The former task can be achieved by using the [Package class](https://github.com/D-Programming-Language/dub/blob/master/source/dub/package_.d#L40). For examples on how to replicate the command line functionality, see [commandline.d](https://github.com/D-Programming-Language/dub/blob/master/source/dub/commandline.d).