Sönke Ludwig via Digitalmars-d-announce
2014-09-22 09:33:53 UTC
package and build manager is finally ready. This is a major milestone
with some important changes in the way dependency versions are handled,
making it more robust for a rapidly growing ecosystem. The number of
available packages is now well above the 300 mark and keeps growing
But even more important, I'm pleased to announce that DUB is now
officially developed as part of the D language ecosystem! Based on the
decision back during this year's DConf, the repository has been migrated
to the D-Programming-Language organization on GitHub , and we are now
working towards a 1.0.0 milestone  that is supposed to be ready for
inclusion into the official DMD installation package.
If you can think of any potentially important and especially
backwards-incompatible changes/additions, please mention them (ideally
as GitHub tickets), so that we can include them before the 1.0.0 release.
Major changes and additions in 0.9.22 include:
- Improved dependency version handling scheme. Version upgrades are
now explicit, with the current snapshot being stored in the
"dub.selections.json" file. This is similar to how other popular
systems, such as Bundler , work, but built into the core system.
Committing "dub.selections.json" to the repository ensures that
everyone gets the same (working) combination of dependency versions.
- Branch based dependencies (e.g. "~master") have been deprecated due
to their destructive influence on the package ecosystem. See the
wiki  for more information, including on the alternative
approaches that are now supported.
- Simple DustMite  integration. Using the "dub dustmite" command it
is now possible to reduce bugs in DUB packages with ease, even in
complex package hierarchies. The condition used for reduction can be
specified in terms of exit code or as a regular expression on the
output of either the compiler, linker, or final executable.
- Added BASH and FISH shell completion scripts.
- Added general support for single-file compilation mode, as well as
separate compile/link mode for GDC.
- Platform detection now also works when cross-compiling.
- Added the "*" version specifier to match any version, and path based
dependencies don't need to specify an explicit version anymore.
As always, find the full list of changes in the change log  and