DUB 0.9.22 released

Sönke Ludwig via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Mon Sep 22 02:33:53 PDT 2014


After again a longer-than-anticipated wait, the next release of the DUB 
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 
steadily:

http://vibed.org/temp/dub-packages.png


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 [1], and we are now 
working towards a 1.0.0 milestone [2] 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 [3], 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 [4] for more information, including on the alternative
    approaches that are now supported.

  - Simple DustMite [5] 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 [6] and 
download at:

http://code.dlang.org/download


[1]: https://github.com/D-Programming-Language/dub/
[2]: 
https://github.com/D-Programming-Language/dub/issues?q=is%3Aopen+is%3Aissue+milestone%3A1.0.0
[3]: http://bundler.io/
[4]: https://github.com/D-Programming-Language/dub/wiki/Version-management
[5]: https://github.com/CyberShadow/DustMite/wiki
[6]: https://github.com/D-Programming-Language/dub/blob/master/CHANGELOG.md


More information about the Digitalmars-d-announce mailing list