DUB will try to get the latest version number for each of these dependencies from code.dlang.org and automatically add them to the dependencies section of dub.json
The previous syntax where the argument to dub init is the project type instead of a dependency list is preserved, but deprecated - use the --type= switch instead
Added a project generator for Sublime Text (by Nicholas Londey) - pull #461
Added a project generator for CMake files (by Steven Dwy) - pull #489
Added support for dub test and modules where the path doesn't match the module name (by Szabo Bogdan) - pull #344
Added dub --version option to output the program version and build date - pull #513
Improved "copyFiles" support
Added support for glob matches (by Colden Cullen) - pull #407
Added support for copying directories (by Vadim Lopatin) - pull #471
Files are now hard linked into the target directory instead of making a real copy
Avoids to hard link "copyFiles" that have not changed in the source directory on Windows - issue #511
DUB now searches the PATH for installed compilers and chooses the default compiler as appropriate - issue #480, pull #506
--build-mode=singleFile can now build several files in parallel using the --parallel switch - issue #498
Improved the JSON error diagnostic format to file(line): Error: message for better IDE integration - issue #317
Bug fixes
Fixed determining module names from empty modules for dub test (by Szabo Bogdan) - pull #458
Fixed generating VisualStudio solution files on Win64 (by Nicholas Londey) - pull #455
Fixed erroneously adding "executable" dependencies to the list of link dependencies (by Михаил Страшун aka Dicebot) - pull #474
Fixed overriding the default source paths with "sourcePaths" - issue #483
Added a spell checker for the -c/--config flag (by Andrej Mitrovic) - pull #313
Added support for $ROOT_PACKAGE_DIR and $<dependency>_PACKAGE_DIR variables
Generalized the --local/--system flags to --cache=<location>, which is now available for all commands (by Colden Cullen) - pull #306
Added a --build-mode switch to choose between combined build and separate compile/link for DMD
When building a static library, its dependencies are not built anymore - issue #316
Displaying the line number where parsing a JSON document fails - see issue #317
Added a shorthand syntax for sub packages (":subpack" instead of "parent:subpack") - issue #315
Replace all "package.json" files/mentions with "dub.json" and clean up white space throughout the code base (by James Clarke aka jrtc27) - pull #337, pull #338, pull #339
dub describe not outputs all source/import files of all configurations and platforms - issue #185
Added basic support for the new human readable "systemDependencies" field
Added a --temp-build switch to force building in a temporary folder - issue #294
Using executeShell when invoking tools to enable more flexible use of shell features - issue #356
dub init now creates a default .gitignore file
An exit code of -9 for a tool now triggers a short message with a possible cause (out of memory)
The information about possible package upgrades is now cached for one day, resulting in less online queries to the package registry
Implemented separate compile/link mode for GDC (by Mathias Lang aka Geod24) - pull #367
.def files are now passed to the linking stage when doing separate compile/link building
Only "main.d"/"app.d" or "packname/main.d"/"packname/app.d" are now automatically treated as "mainSourceFile" for executable targets and none for library targets
Excessive/unknown command line arguments now result in an error
The "checking dependencies" message on startup is now a diagnostic message
A "dflags" entry of the form -defaultlib=* for DMD is now passed to the linking stage for separate compilation
Added simple support for --arch=x86 and --arch=x86_64 and LDC
The order of source files as passed to the compiler is now sorted by name to avoid random triggering of order dependent compiler issues
Bug fixes
Fixed a malformed log message for files with modification times in the future
Fixed handling of absolute working directories
Fixed a segmentation fault on OS X when doing dub upgrade - issue #179
Fixed extraction of prerelease SemVer versions from the "git describe" output
Fixed handling of paths with spaces in generated VisualD projects
Fixed DUB binaries compiled with GDC/LDC to work around a crash issue in std.net.curl - issue #109, issue #135
Fixed iterating over directories containing invalid symbols links (e.g. when searching a directory for packages)
Fixed the path separators used for $DUBPATH (':' on Posix and ';' on Windows)
Fixed using custom registries in the global DUB configuration file - issue #186
Fixed assertions triggering when $HOME is a relative path (by Ognjen Ivkovic) - pull #192
Fixed the VisualD project generator to enforce build requirements
Fixed build requirements to also affect comipler options of the selected build
Fixed configuration resolution for complex dependency graphs (it could happen that configurations were picked that can't work on the selected platform)
Fixed dub build -b ddox to only copy resource files from DDOX if they are newer than existing files on Posix
Fixed storing sub packages when the modified package description is written after fetching a package
Fixed a bogus "conflicting references" error when referencing sub packages issue #214
Fixed a null pointer dereference for locally registered package directories that had been deleted
Fixed determining the version of the root package (previously, ~master was always assumed)
Fixed parsing of ==~master style dependencies (equivalent to just ~master)
Fixed handling of packages with upper case letters in their name (which is not allowed)
Fixed running applications on Windows with relative paths (.\ gets prepended now)
v0.9.20 - 2013-11-29
Features and improvements
Compiles on DMD 2.064 without warnings - issue #116
Builds are cached now by default in the ".dub/" sub folder of each package
An explicit "dub upgrade --prerelease" is now necessary to upgrade to pre-release versions of dependencies
"dub describe" and generated VisualD projects now also contain pure import and string import files
"dub run" now only builds in "/tmp" or "%TEMP%" if the package folder is write protected - issue #82
"dub init" can not take an optional project template name (currently "minimal" or "vibe.d")
Renamed "dub install" to "dub fetch" to avoid giving the impression of actual system installation (by Михаил Страшун aka Dicebot) - pull #150
Added support for "dub describe (package name)" and "dub describe --root=(path to package)" to describe packages outside of the CWD
The version string in the HTTP "User-Agent" field is now formatted according to SemVer
Fixed bogus warnings about "dflags" that are confised with flags that are a prefix of those
Fixed the VisualD generator to use the build settings and dependencies of the selected build configuration
Fixed the VisualD generator to enable the proper command line flags for each build type
Generated VisualD projects don't clean up JSON files on clean/rebuild anymore
Fixed building of packages with sub-packages when the main package is registered to DUB - issue #87
Fixed adhering to the specified global target type for library packages that have no explicit build configurations - issue #92
Fixed building of static libraries which have external library dependencies ("libs") - issue #91
Fixed error message for references to unknown sub-packages
Fixed handling of packages that are referenced multiple times using an explicit path - issue #98
v0.9.16 - 2013-06-29
Bug fixes
Fixed fetching of all recursive dependencies in one go
Fixed handling of paths with spaces when using "dub build"
Fixed upwards inheritance of version identifiers in generated VisualD projects
v0.9.15 - 2013-06-19
Features and improvements
Added "targetType": "none" for packages which don't contain sources and don't generate a binary output
Added build settings to the "dub describe" output
Bug fixes
Fixed fetching of "main:sub" style dependencies from the registry
Remove half-broken support for sub-packages defined in sub-directories (needs to be determined if this feature is worth the trade-offs)
Fixed bogus re-installations of packages referenced by a sub-package
Fixed handling of dependencies of header-only (or target type "none") dependencies in the VisualD generator
Fixed the reported version of sub-packages in the output of "dub describe"
v0.9.14 - 2013-06-18
Features and improvements
Implemented support for multiple packages per directory and accessing sub-packages as dependencies - issue #67
Dependencies can now be specified per-configuration in addition to globally
Version numbers are now handled according to SemVer ("~master" style branch specifiers are independent of this and work as before)
Library packages are now only built when running "dub" instead of trying to execute them - partially pull #66 by Vadim Lopatin and issue #53
Add support for optional dependencies (picked up only if already installed) - issue #5
Compiles on DMD 2.063
The build script now directly calls the compiler instead of relying an rdmd and supports ldmd and gdmd in addition to dmd (automatically detected)
Outputs a warning for package names with upper-case letters and treats package names case insensitive
Added "buildRequirements": ["noDefaultFlags"] for testing manual sets of command line flags - issue #68
Errors and diagnostic messages are now written to stderr instead of stdout
Added "dub describe" to output a build description of the whole dependency tree for external tools given a configuration/compiler/platform combination
Removed the -property switch and deprecated "buildRequirements": ["relaxProperties"]
Added support for a DUBPATH environment variable and support for adding a directory with multiple packages using "dub add-local" to search for dependencies in local directories other than the predefined ones
Replaced --list-locals/--list-user/--list-system with a single --list-installed switch
The version of DUB is now inferred using "git describe" and output on the help screen and in the user agent string of HTTP requests
Added some minimal example projects for several use cases
Temporarily disabled automatic package upgrading (was only working for the now removed project locally installed packages)
Bug fixes
Fixed recursive inferring of configurations
Fixed including debug information for separate compile/link builds
Fixed VisualD generator for x64 builds and avoid building header-only dependencies
Fixed handling of "-Wl" flags returned by pkg-config
Fixed LDC builds for projects with multiple modules of the same name (but in different packages) using the -oq switch
Fixed the linker workaround in the build script to work on non-Ubuntu systems - issue #71
Fixed handling of Windows UNC paths (by Lutger Blijdestijn) - pull #75
Fixed handling of multiple compiler/linker arguments with the same content (e.g. "--framework A --framework B" on OS X)
v0.9.13 - 2013-04-16
Features and improvements
Implemented "buildRequirements" to allow packages to specify certain build requirements (e.g. avoiding function inlining or warnings)
Experimental support to specify flags to pass to "ddox filter" for --build=ddox
Configurations inherit the global "targetType" by default now
Import paths in VisualD projects are now relative
Cleaner console output for -v (no thread/fiber ID is printed anymore)
Build settings for VisualD projects are tuned to avoid common linker/compiler bugs by default
Generated VisualD projects put intermediate files to ".dub/obj/<projectname>" now
Bug fixes
Fixed upgrading of branch based dependencies - issue #55
Fixed wording and repetition of the reserved compiler flag warning message - issue #54
Fixed erroneous inclusion of .d files in the import libraries field of generated VisualD projects
Fixed passing "package.json" to the compiler in generated Mono-D projects - issue #60
Fixed the Mono-D and VisualD generators to properly copy "copyFiles" - issue #58
Fixed removing of temporary files in case of unexpected folder contents - issue #41
Fixed invocation of the linker on Windows in case of another "link.exe" being in PATH - issue #57
Fixed computation of build settings for VisualD projects (inheritance works only bottom to top now)
v0.9.12 - 2013-03-21
Features and improvements
Implemented separate compile/link building when using DMD
Optimized platform field matching (by Robert Klotzner) - pull #47
Added build types for coverage analysis - issue #45
Wrong use of "dflags" now triggers a warning with suggestion for an alternative approach - issue #37
The "dub" binary is now in "bin/" instead of the root directory
Bug fixes
Fixed an assertion that triggered when appending an absolute path
Fixed --build=ddox when DDOX was not yet installed/built - issue #42
Fixed the build script to work on Ubuntu
Fixed building in a project directory that contains no "package.json" file
Fixed the error message for non-existent dependency versions - issue #44
Fixed matching of (only) D source files (by Robert Klotzner) - pull #46
Fixed "targetName" and "targetPath" fields - issue #48
v0.9.11 - 2013-03-05
Features and improvements
Configurations are now "shallow", meaning that configurations of dependencies can be selected by a package, but stay invisible to users of the package itself - [issue #33]
Target type selection is now supported (executable, static lib, dynamic lib etc.) - issue #26
Target name and path can be configured now
Added a possibility to exclude certain files from the build
The package description files is now added to IDE projects - issue #35
Using a response file to handle large compiler command lines - issue #19
Bug fixes
Fixed spurious loading of the package during dub install - issue #25
v0.9.10 - 2013-03-04
Features and improvements
Added direct support for generating HTML documentation using DDOC or DDOX
Added support for pre/post generate/build commands
dub install does not add a dependency anymore (reverted to old behavior)
Bug fixes
dub uninstall actually works now
The Windows installer also installs the needed DLLs
Fixed Windows paths on non-Windows systems emitted by the Mono-D generator - issue #32
v0.9.9 - 2013-02-28
Features and improvements
Adds a Windows installer (by Brad Anderson aka eco) - pull #27
Support for branches other than "~master"
The MonoD generator now generates a pretty source hierarchy for dependencies
The "sourcePath" field has been changed to "sourcePaths" to support multiple paths (by Nathan M. Swan aka carlor) - pull #28
Bug fixes
"dub init" with no arguments uses the current directory name as the project name - issue #16
The tilde character is not used for path names anymore - issue #23