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:


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)

Reply via email to