Thanks... after reading through that again, let me adjust my scenario: Package A's require:
julia 0.4 C 0.1 0.2- Package B's require: julia 0.4 C 0.3 What version of C is installed? Package A want any version 0.1.x, Package B wants any version 0.3.x or greater. Who "wins"? On Fri, Oct 30, 2015 at 10:28 AM, Yichao Yu <yyc1...@gmail.com> wrote: > On Fri, Oct 30, 2015 at 10:18 AM, Tom Breloff <t...@breloff.com> wrote: > > I'm very confused about how Pkg resolution works in 0.4, and I couldn't > find > > a definitive source of details. If package A has the REQUIRE file: > > > > julia 0.4 > > C 0.1 > > > > This means version 0.1 or higher for C > > > > > and package B has the REQUIRE file: > > > > julia 0.4 > > C 0.2 > > > > This means version 0.2 or higher for C > > > > > which version of C is installed? Does it change if you do a > Pkg.add("C")? > > What determines which package "wins"? > > The latest available that is compatible with everything else. > > Note to specify the upper bound, use `C lower_version upper_version` > > > > > Bonus question: can someone point me to documentation on exactly what the > > plus/minus mean? What's the difference between `0.1`, `0.1-`, and > `0.1+`? > > - and + are for prerelease and build > > ``` > julia> v"0.1-2+3".prerelease > (2,) > > julia> v"0.1-2+3".build > (3,) > ``` > > > > > Bonus question: how does the logic change with the new package manager? > (if > > at all) > > nothing > > > > > Bonus question: is there an open issue/PR that discusses potential future > > changes to METADATA and package management? > > > > Thanks! > > Ref > http://julia.readthedocs.org/en/latest/manual/packages/#require-speaks-for-itself >