In his Oslo Elm Day keynote, Richard Feldman talked about reducing dependencies for long-term robustness.
I’m thinking, what if the package manager just stored packages in your project folder instead of a system folder, and you checked them into Git?
- Ensure old Elm apps can still be built from source 20+ years in the future
- Reduce Elm’s susceptibility to a “leftpad incident”
- Prevent package server outages from causing CI build failures
- Reduce the load on the package server from CI setups that don’t cache packages
- Since packages will only be downloaded once per project, even when switching computers or adding team members, maybe it would reduce to load enough that Elm wouldn’t need to rely on GitHub at all for hosting.
- Keeping everything in a single folder instead of storing packages in a system folder reduces potential access permission issues, and makes it easier for beginners to understand
- Increased repo size
- Increased package server load from people who create many apps
- I’m guessing the total load would still be less though. Also, Elm could still use a system wide cache in addition, if you really wanted to minimize server load.
- Noisy Git diffs when updating dependencies
- They’d be limited to the package folder though
- Could even be considered a pro that you get diffs of internal package code, if you want to check them.
People who for some reason don’t want this behavior could just add the package folder to .gitignore