- Implemented building dependencies as separate libraries (use
--combined
to use - almost - the old behavior) - The preferred package description file name is now "dub.json" instead of "package.json" (which is still supported)
- Revamped command line help now shows detailed help for each command
- Added
dub test
to run the unit tests of a package using a custom main() function - Public sub packages can now (and are recommended to) reside in sub folders
--annotate
now works for all commands- Added a
"mainSourceFile"
field to better control how--rdmd
anddub test
work - The target binary (if any) is now automatically deleted after a linker error to avoid partially linked binaries
- Added
--force
todub build
anddub run
to force recompilation even if already up to date - Renamed the "debug_" and "release" build options to "debugMode" and "releaseMode" to avoid the D keyword clash
- Renamed the "noBoundsChecks" build option to "noBoundsCheck" to be consistent with the corresponding build requirement
dub init xxx vibe.d
now emits a-version=VibeDefaultMain
as required by the latest versions- Reimplemented the VisualD project generator to use the new compile target logic
- Instead of
dub generate visuald-combined
usedub generate visuald --combined
- Properly handles the explicit library target types (those other than
"targetType": "library"
)
- Instead of
- Added support for
dub add-local
without an explicit version argument (will be inferred using GIT) (by p0nce) - pull #194 - Added a new "release-nobounds" build type
- Improved the error message when "dub remove" fails because of a missing installation journal
- Removed the Mono-D project generator - use Mono-D's built in DUB support instead
- Added support for public sub packages in sub folders - this is the preferred way to use sub packages, see http://code.dlang.org/package-format#sub-packages
- 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
- 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)
- 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
"excludedSourceFiles"
now supports glob expressions (by Jacob Carlborg) - pull #155- "dub --build=ddox" now starts a local HTTP server and automatically opens the browser to display the documentation
- Environment variables can now be used inside path based fields in package.json (by Alexei Bykov) - pull #158
- "dub describe" now contains a
"targetFileName"
field that includes the file extension (e.g. ".exe" or ".so") - Removed the compatibility version of the new
std.process
as it lacks support forbrowse()
- Support using .obj/.lib/.res/.o/.a/.so/.dylib files to be specified as "sourceFiles", they will be bassed to the compiler at the linking stage
- Added a "library-nonet" configuration to the package description file to compile without a CURL dependency
- Added support for the "http_proxy" environment variable
- Fixed building of explicitly selected packages with custom configurations (using "dub build (package name)")
- Fixed running DUB from outside of a valid package directory when an explicit package name is given
- Fixed dependency calculation for dependencies referenced in configuration blocks - issue #137
- Fixed warnings to be enabled as errors by default again
- Fixed resolution of dependencies when sub packages are involved - issue #140
- Fixed handling of build options for GDC/LDC (by finalpatch) - pull #143
- Fixed emitting "-shared -fPIC" for DMD when building shared libraries - [issue #138][issue138]
- Fixed "dub --build=ddox" for target types other than "executable" - issue #142
- Fixed a crash when loading the main package failed - issue #145
- Fixed the error message for empty path strings in the
"sourcePaths"
field - see issue #149 - Fixed representing empty relative paths by "." instead of an empty string - issue #153
- Fixed running executables for projects outside of the CWD
- Fixed copying of DDOX resources on Posix for "--build=ddox" (by Martin Nowak) - pull #162
- Fixed ARM floating-point platform/version identifiers
- Fixed generating VisualD projects for shared library packages (by p0nce) - pull #173
- Fixed erroneous upgrading of packages that are not managed by DUB (for "dub upgrade") - issue #171
- Fixed erroneously fetching the same package multiple times when sub packages are used
- Fixed string representation of empty paths (fixes the target file name for generated VisualD projects)
- Added the possibility to build or run a specific package, inculding sub packages
- Implemented a new "--root=PATH" switch to let dub operate from a different directory than the current working directory
- "dub init" now always emits lower case DUB package names
- Improved diagnostic output for "dub add-local" and "dub remove-local"
- Using the static version of Phobos fro building DUB to improve platform independence on Linux
- Fixed erroneos "-debug" switches in non-debug builds
- Enabled again a warning when using "-debug=" flags in "dflags" instead of using "debugVersions"
- Fixed handling of paths with spaces for "--build=ddox"
- Fixed inclusion of multiple instances of the same package.json files in the "visuald-combined" generator (by p0nce) - pull #124
- Fixed response file output for LDC - issue #86
- Fixed response file output for GDC - issue #125
- Partially fixed working in paths with unicode characters by avoiding
std.stdio.File
- issue #130
- Added support for a "buildOptions" field to be able to specify compiler options in an abstract way
- Implemented a new configuration resolution algorithm that is able to handle complex dependency graphs
- Added support for a "debugVersions" field ("-debug=xyz")
- Added support for a "-debug=xyz" command line option to specify additional debug version specifiers
- The VisualD project generator doesn't specify redundant compiler flags for features that have dedicated checkboxes anymore
- Improved folder structure in generated "visuald-combined" projects (by p0nce) - pull #110
- Fixed handling of packages with no configurations (a global
null
configuration is now assumed in this case) - Fixed building of shared libraries (was missing the "-shared" flag)
- Fixed upgrading in conjunction with sub packages (was causing an infinite loop) - issue #100
- Fixed build of complex generated VisualD projects by avoiding redundant link dependencies
- Fixed upgrading of branch based dependencies
- Fixed inheriting of global build settings in configurations - issue #113
- Fixed inclusion of entry point files (e.g. "source/app.d") in pure library packages - issue #105
- Added support for custom build types using the "buildTypes" field - issue #78
- Added support for multiple and custom package registry URLs on the command line and as a configuration field - issue #22
- Added support for a "workingDirectory" field to control from which directory the generated executable is run - issue #84
- Added a new generator "visuald-combined", which combines the whole dependency tree into a single project
- Updated default package registry URL to http://code.dlang.org
- The default "unittest" and "unittest-cov" build types now issue the "-debug" flag
- Building packages without any "importPaths" entry now issue a warning message
- PARTIAL Fixed building with LDC - issue #86
- 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
- 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
- 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
- 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"
- 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 ofstdout
- 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)
- 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 a possible infinite update loop - issue #72
- Fixed handling of multiple compiler/linker arguments with the same content (e.g. "--framework A --framework B" on OS X)
- 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
- 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)
- 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
- 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
- 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
- Fixed spurious loading of the package during
dub install
- issue #25
- 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)
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
- 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