Skip to content
Compare
Choose a tag to compare

v1.23.0

Latest
@dlang-dub-bot dlang-dub-bot released this
v1.23.0
Compare
Choose a tag to compare

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).