elm-lang / elm-package

Command line tool to share Elm libraries
BSD 3-Clause "New" or "Revised" License
213 stars 66 forks source link

downstream package constraints do not cause version conflict #279

Open BrianHicks opened 7 years ago

BrianHicks commented 7 years ago

If a downstream package specifies a maximum version while elm-package.json specifies a version above that, the maximum downstream version will be selected rather than the explicitly set one.

The SSCCE below shows this with the interaction between elm-css and datetimepicker. This version of datetimepicker has a range for elm-css including < 9.0.0.

This doesn't seem to have been reported in this repo. If this is the wrong place for it, I can move the issue somewhere more relevant. :)

To Reproduce

{
    "version": "1.0.0",
    "summary": "helpful summary of your project, less than 80 characters",
    "repository": "https://github.com/user/project.git",
    "license": "BSD3",
    "source-directories": [
        "."
    ],
    "exposed-modules": [],
    "dependencies": {
        "abadi199/datetimepicker": "5.0.0 <= v <= 5.0.0",
        "elm-lang/core": "5.1.1 <= v < 6.0.0",
        "rtfeldman/elm-css": "9.1.0 <= v <= 9.1.0"
    },
    "elm-version": "0.18.0 <= v < 0.19.0"
}
  1. put the elm-package.json above in a directory
  2. run elm package install --yes
  3. check elm-stuff/exact-dependencies.json

expected: elm-css to be at version 9.1.0

actual: elm-css at version 8.2.0

process-bot commented 7 years ago

Thanks for the issue! Make sure it satisfies this checklist. My human colleagues will appreciate it!

Here is what to expect next, and if anyone wants to comment, keep these things in mind.

avh4 commented 7 years ago

Do you see the same behavior if you change

"rtfeldman/elm-css": "9.1.0 <= v <= 9.1.0"

to

"rtfeldman/elm-css": "9.1.0 <= v < 9.2.0"

(or to < 10.0.0) ?

BrianHicks commented 7 years ago

Both < 9.2.0 and < 10.0.0 give the same behavior.

Edit: … which is to install 8.2.0

chrislewispac commented 7 years ago

also experiencing this issue due to downstream package dependency in

Install: abadi199/elm-input-extra 5.2.0 Upgrade: elm-community/list-extra (6.1.0 => 4.0.0)

It forces me down the 4.0.0 instead of allowing me to keep my installed 6.1.0