Sönke Ludwig





Permalink Reply

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