You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
OS Platform and distribution: ArchLinux 6.6.8-zen1-1-zen
compiler version v2.106.0
Bug Description
DUB documentation specifies the two version specifications ~>a.b and ~>a.b.c, where the former accepts any minor and patch release since a.b.0, and the latter accepts any patch release since a.b.c. The documentation does not define any behavior for specification ~>a like ~>5.
DUB appears to incorrectly reformat any version specification following the ~>a.b format, if the minor version is specified to be 0, to the ~>a format. Since behavior of this format is undocumented, it is unclear how it is to be understood — would ~>5 also include version 6.0.0 or not?
How to reproduce?
Add a dependency and set the version specification. For example:
{
"authors": [
"artha"
],
"dependencies": {
"raylib-d": "~>5.0"
},
"description": "A minimal D application.",
"license": "proprietary",
"name": "dubtest"
}
Add any other dependency with dub add, for example dub add fluid. The package will be reformatted, and the previously added dependency, which in this example is raylib-d, will have the "dot zero" part removed.
Expected Behavior
The version specifier should stay as is, with minor version preserved. DUB should reject the major-only specification ~>a as invalid.
Logs
Using dub registry url 'https://code.dlang.org/'
Note: Failed to determine version of package dubtest at .. Assuming ~master.
Version selection for dependency raylib-d (raylib-d) of dubtest is missing.
Missing dependency raylib-d ~>5 of dubtest
Adding dependency fluid >=0.6.0-alpha <0.7.0-0
The text was updated successfully, but these errors were encountered:
Dub was correct in outputting only the major version,
however this can lead to some confusion for users
as pointed out in dlang#2830. Accepting ~>5 but only exposing
two states (~>5.0 and ~>5.0.0) will hopefully make
things a bit more obvious.
System information
6.6.8-zen1-1-zen
Bug Description
DUB documentation specifies the two version specifications
~>a.b
and~>a.b.c
, where the former accepts any minor and patch release sincea.b.0
, and the latter accepts any patch release sincea.b.c
. The documentation does not define any behavior for specification~>a
like~>5
.DUB appears to incorrectly reformat any version specification following the
~>a.b
format, if the minor version is specified to be0
, to the~>a
format. Since behavior of this format is undocumented, it is unclear how it is to be understood — would~>5
also include version6.0.0
or not?How to reproduce?
Add a dependency and set the version specification. For example:
Add any other dependency with
dub add
, for exampledub add fluid
. The package will be reformatted, and the previously added dependency, which in this example israylib-d
, will have the "dot zero" part removed.Expected Behavior
The version specifier should stay as is, with minor version preserved. DUB should reject the major-only specification
~>a
as invalid.Logs
The text was updated successfully, but these errors were encountered: