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