I was upgrading 0.18 to 0.19, and got an updated elm.json.
Then, the plan was to start compiling the files bottom up, but that wasn't possible. Instead I got
The dependencies in your elm.json are not compatible.
Did you change them by hand? Try to change it back! It is much better to add
dependencies with elm install or the dependency management tool in elm reactor.Please ask for help on the Elm slack http://elmlang.herokuapp.com/ if you try
those paths and still cannot figure it out!
I followed the instructions, and got things working. At the end I compared the generate elm.js that was generated by the upgrade helper, and the final. The only difference was the line
, "AaronCZim/to-elm-format-string": "1.0.3"
which is a library not upgraded to 0.19. Logical.
I would have saved some time, if the original error message didn't just say that the "dependencies in your elm.json are not compatible.", but instead maybe complained about that specific line.
How to reproduce:
Only helpful advice I can give: elm-upgrade will warn for packages, that are not updated. Those are the packages to remove. E.g.:
WARNING: justinmimbs/elm-date-extra has not been upgraded to 0.19 yet!
WARNING: mgold/elm-date-format has not been upgraded to 0.19 yet!
You also run into this problem when upgrading packages, theres no way to automatically upgrade a package, so you are forced to edit the file by hand, and as no information is available about the incorrect dependency chain you're stuck guessing until you can find all the references to a package.
The verification throws E.BadDeps in 3 different cases. It would already be helpful if those lead to different error messages.
+1. Totally stuck on a package upgrade to 0.19 and elm-upgrade doesn't help since it demands obsolete Python. Error really needs to be clearer.
Most helpful comment
https://github.com/elm/compiler/blob/6086fd18f8be05cbd4be1938d258f167e650321d/builder/src/Deps/Verify.hs#L94-L136
The verification throws
E.BadDepsin 3 different cases. It would already be helpful if those lead to different error messages.