elm-make icon indicating copy to clipboard operation
elm-make copied to clipboard

Unhelpful error if elm-stuff exists but elm-package.json doesn't

Open avh4 opened this issue 7 years ago • 3 comments

Running elm-make in a folder without an elm-package.json normally creates an elm-package.json for you. However, if an elm-stuff folder already exists, it instead gives an unhelpful error message: elm-make: elm-package.json: openBinaryFile: does not exist (No such file or directory)

I would proposed that elm-make should behave the same regarding the existence of elm-package.json regardless of whether elm-stuff exists. Alternatively, a more helpful message (something like "There is no elm-package.json file. If you want elm-make to create one for you, first delete the elm-stuff folder.")

To reproduce:

elm-make --yes
rm elm-package.json
elm-make
--> elm-make: elm-package.json: openBinaryFile: does not exist (No such file or directory)

avh4 avatar Jul 09 '17 03:07 avh4

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.

process-bot avatar Jul 09 '17 03:07 process-bot

Bump.

This also seems to happen when elm-stuff exists with exact-dependencies.json inside. Besides the error message not being helpful at all, this does not fit my current use-case of versioning exact-dependencies.json, to always download the exact same version of a package.

If there's another way to achieve this use-case please tell me, as I couldn't find how to always download the same package down to the PATCH level.

EDIT: As a workaround it seems to be needed to delete the whole elm-stuff directory, which also deletes exact-dependencies.json. Then upon rebuilding one must hope the downloaded packages will match the ones in the versioned exact-dependencies.json, which is less than ideal.

sashaafm avatar Feb 04 '18 22:02 sashaafm

You can manually add all the dependencies as found in exact-dependencies.json file to elm-package.json and restrict the version range to only allow a single version, e.g. 1.2.3 <= v < 1.2.4. The only version that could ever satisfy that constraint is 1.2.3 itself.

zwilias avatar Feb 04 '18 23:02 zwilias