DUB 0.9.21

Sönke Ludwig sludwig+dforum at outerproduct.org
Sat Feb 22 01:44:51 PST 2014


A new final release is ready. This one took a bit longer and has more 
changes than usual:

  - Finally properly obeys the difference between target types
    "library", "staticLibrary", "dynamicLibrary" and "sourceLibrary".
    By default, each "library" type dependency is now build as a static
    library. The building it combined with the parent package (as in
    previous versions) can be achieved using the --combined switch.

  - The preferred package description file name is now "dub.json"
    instead of the historically grown "package.json" to avoid
    ambiguities (NPM, for example, also uses "package.json").

  - A new "dub test" command can now be used to run the unit tests of
    any package. DUB will automatically replace the main() of the
    package with a custom one (if any, see also "mainSourceFile" [1]).

  - The "~>" "pessimistic" version operator as known from RubyGems [2] is
    now supported and recommended as the default operator to use.

  - Path based sub packages are now supported and recommended over the
    use of multiple sub packages per directory due to the potential
    pitfalls of overlapping import paths [3].

  - Revamped command line help - you can now run "dub <command> -h" to
    get more detailed, command specific help

  - All changes:
 
https://github.com/rejectedsoftware/dub/blob/master/CHANGELOG.md#v0921---2014-02-22

Download at http://code.dlang.org/download


Planned for the next release (which will be a much smaller one) is a 
major overhaul of how branch based (as opposed to tagged version based) 
dependencies are handled. Please see the corresponding thread and share 
your thoughts if you think anything should be improved [4].

The second feature planned is first class support for Dustmite - 
creating a reduced test case for an error in a multi-package project 
will then usually be as simple as invoking "dub dustmite" with a regular 
expression matched against the compiler/linker/program output. DUB will 
take care of copying together all sources and issuing the proper 
Dustmite command, calling itself in a special low overhead mode to speed 
up the process. This has already been used to great effect for reporting 
regressions during the DMD 2.065 beta phase, which would otherwise not 
have been possible due to a serious lack of time on my part (running 
Dustmite across multiple DUB packages otherwise requires some 
non-trivial preparation of of the source directory structure).


[1]: http://code.dlang.org/package-format#build-settings
[2]: http://robots.thoughtbot.com/rubys-pessimistic-operator
[3]: http://code.dlang.org/package-format#sub-packages
[4]: 
http://forum.rejectedsoftware.com/groups/rejectedsoftware.dub/thread/1020/

PS: The package registry now almost reached 200 available packages (191 
as of this writing)


More information about the Digitalmars-d-announce mailing list