The DUB package manager
deadalnix
deadalnix at gmail.com
Fri Feb 22 10:29:02 PST 2013
On Saturday, 16 February 2013 at 17:10:33 UTC, Sönke Ludwig wrote:
> With the recent talk about Orbit, I thought it is time to also
> announce
> the package manager that we have been working out based on the
> simple
> VPM system that has always been in vibe.d. I don't really like
> stepping
> into competition with Jacob here (*), but the approach is
> different
> enough that I think it should be put on the table.
>
> Some may already have noticed it as it's mentioned already on
> the vibe.d
> website and is currently hosted on the same domain as the old
> VPM registry:
>
> http://registry.vibed.org/
>
>
> DUB has two important development goals:
>
> - Simplicity:
>
> Making a DUB package, as well as using one as a dependency
> should be
> as simple as possible to facilitate broad usage, also and
> especially
> among language newcomers. Procedural build scripts often
> scare away
> people, although their added complexity doesn't matter for
> bigger
> projects. I think they should be left as an option rather
> than the
> default.
>
> Turning a library/application into a DUB package can be as
> simple as
> adding a package.json file with the following content
> (mysql-native
> is automatically made available during the build in this
> example):
>
> {
> "name": "my-library",
> "dependencies": {"mysql-native": ">=0.0.7"}
> }
>
> If the project is hosted on GitHub, it can be directly
> registered on
> the registry site and is then available for anyone to use as
> a
> dependency. Alternatively, it is also possible to use a local
> directory as the source for a particular package (e.g. for
> closed
> source projects or when working on both the main project and
> the
> dependency at the same time).
>
> - Full IDE support:
>
> Rather than focusing on performing the build by itself or
> tying a
> package to a particular build tool, DUB translates a general
> build receipt to any supported project format (it can also
> build
> by itself). Right now VisualD and MonoD are supported as
> targets and
> rdmd is used for simple command line builds. Especially the
> IDE
> support is really important to not simply lock out people
> who prefer
> them.
>
>
> Apart from that we have tried to be as flexible as possible
> regarding
> the way people can organize their projects (although by default
> it
> assumes source code to be in "source/" and string imports in
> "views/",
> if those folders exist).
>
> There are still a number of missing features, but apart from
> those it is
> fully usable and tested on Windows, Linux, and Mac OS.
>
>
> GitHub repository:
> https://github.com/rejectedsoftware/dub
> https://github.com/rejectedsoftware/dub-registry
>
> Preliminary package format documentation:
> http://registry.vibed.org/package-format
>
>
> (*) Originally I looked into using Orbit as the package manager
> for
> vibe.d packages, but it just wasn't far enough at the time and
> had some
> traits that I wasn't fully comfortable with.
So I'm sorry if that appears completely stupid, but . . .
DUB sounds kind of like dumb. As Orbit sounds very nice,
especially since libraries are satellites of mars, so it make
sense to see other libs as artificial satellites :D
That is very poor, and have nothing to do with the actual
capabilities of each of them.
BTW, it's be great is we could avoid some king of phobos/tango
split on that subject and settle on one package manager.
More information about the Digitalmars-d
mailing list