-
Notifications
You must be signed in to change notification settings - Fork 66
Move exact-dependencies.json out of elm-stuff #217
Comments
@evancz Would you be open to a Pull Request for this? If so, any pointers on what else I should fix? E.g., take a pass at all the docs in this org and update them accordingly? Anything else? |
I think small, focused PRs are a lot more likely to get accepted, I On Sat, May 28, 2016 at 9:32 AM, Chad Woolley notifications@github.com
|
Right, but I wouldn't want to make a change that leaves the docs (or tooling) inconsistent or wrong. |
Sorry, I misunderstood. Yeah, if it's updating the docs to match the new On Sat, May 28, 2016 at 9:49 AM, Chad Woolley notifications@github.com
|
I would love to see Elm get rid of a separation between dependencies and exact-dependencies. There isn't a world where I ever want to install a loosely versioned dependency, especially when sharing code with other developers. Too much can go wrong, and that's why we end up with shrinkwrap and Gemfile.lock. Let's just have the exact versions specified when we install them and save the extra effort. |
You can do this in your
|
@Warry that works in theory, but there's a bug/unintended side effect of
Hopefully this makes it clearer why this issue is important. |
@bbugh In theory that works, but in practice it means you have to manually specify and resolve your entire dependency tree (which is huge for big projects), when you only care about specifying your top-level dependencies. I know this firsthand, because I wrote and maintained the popular predecessor to Bundler, and ran into this exact problem with it. Then, Bundler came out and added the concept of the auto-generated So, |
Looking into this further, it appears that fixing #249 would be a prerequisite for this change. |
FYI for everyone, issues like this are data. I understand the root problem here. After 0.18, the big focus will be on package management stuff. The goal would be to address everyone's concerns in a comprehensive and coherent way. You can't do that in a one off way. |
In 0.19, your project metadata goes in a file called
That means that application developers no longer have a separate "lock file" that they must remember to check in. Checking in |
Hi,
(New to Elm but loving it so far! Good job!)
I always like to commit the file that specifies my entire exact dependency tree, so I can always see what changed in source control and revert if necessary. E.g. Gemfile.lock, npm-shrinkwrap.json.
So, I tried committing exact-dependencies.json in my Elm project, but since it was under elm-stuff, I had to .gitignore elm-stuff/packages and elm-stuff/build-artifacts so that I could commit it.
Which worked fine, but then I wanted to delete and regenerate /packages and /build-artifacts to debug something that looked like something was stale under those dirs.
However after deleting them but leaving elm-stuff there and empty except for exact-dependencies.json, I did
elm-package install
to recreate, but it didn't recreate ./packages! And of course things failed, because I didn't even have elm-core.I ended up having to delete the entire elm-stuff dir, then packaging worked fine.
That may be a separate bug, but even aside from that, I think it would be better to move exact-dependencies to the same level as elm-package.json, just like Gemfile + Gemfile.lock, and package.json+npm-shrinkwrap.json are next to each other.
What do you think?
Thanks!
-- Chad
The text was updated successfully, but these errors were encountered: