Added architecture x86_omf
for windows-dmd
On windows dmd the x86_omf architecture can now be used as platform specification using --arch=x86_omf
. This is currently equivalent to the previously existing --arch=x86
argument.
dub remove --non-interactive
will now remove all packages by default
When calling a command with a package name and no version specification, the latest version is usually assumed. While this behavior makes sense for dub fetch
or dub run
, it can come as a surprise when cleaning up local packages through dub remove, and so previous version would simply error out when more than one version was available. From this version, dub remove -n $PKGNAME
will just remove all cached versions of the package named $PKGNAME
, without asking you to use $PKGNAME@*
.
Running dub upgrade
on a package-less folder is now a no-op
Prior to this change, accidentally running dub upgrade
in a folder where no dub.json
/ dub.sdl
was present would leave you with a dub.selections.json
and, in some instances, an empty .dub
folder. This has been fixed and running dub upgrade
where one shouldn't will now only generate a friendly error message.
Support dependencies as git url with exact commit
Git repositories can be directly used by dub as dependencies.
dub.json
:
{
"name": "git-dependency",
"dependencies": {
"gitcompatibledubpackage": {
"repository": "git+https://github.com/dlang-community/gitcompatibledubpackage.git",
"version": "ccb31bf6a655437176ec02e04c2305a8c7c90d67"
}
}
}
All commands now support package[@<version-spec>]
, --version
is deprecated
dub commands had some disparity in their version handling. Most commands accepting a package name (e.g. dub fetch
or dub run
) supported either package[@version-spec]
, or supported only package and accepted an option --version=<version-spec>
. The latter form has now been deprecated and all commands now accept package[@<version-spec>]
. Note that the absence of @<package-spec>
still means "latest version" (except for remove).