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

Reply via email to