3 ms·
The precise mechanism is that if your update mechanism involves a manual step per-dependency(You have manually copied and pasted things into your repo), then th
by eternityforest 3y ago
The precise mechanism is that if your update mechanism involves a manual step per-dependency(You have manually copied and pasted things into your repo), then the time needed to check for updates will scale with the number of dependencies.
Manually checking all of them to even see what has updates available will take at least 10 to 20 minutes searching one by one. Likely up to several hours, even at 30 seconds per manual check.
The odds that laziness or tight schedules will take over and nobody ever actually does this are higher.
If one does actually do this, then they will be wasting 20 minutes regularly.
- cxr 3y ago> The precise mechanism is that if your update mechanism involves a manual step per-dependency(You have manually copied and pasted things into your repo), then the time needed to check for updates will scale with the number of dependencies. I don't know what you're referring to. The resolution up for debate is "Dependencies belong in version control". You seem to be having a totally different conversation (where you "manually copied and pasted things into your repo"). What "Dependencies belong in version control" means is: - DO NOT add them to .gitignore. - DO `git add` them just like any other code. Updating things doesn't change; you update the packages that you depend on the same way you do if you aren't checking your dependencies in—e.g. by running `npm update` (or whatever).
- eternityforest 3y agoTrue, if the language tooling supports that kind of workflow well, and you do it right then it should indeed be a different case. Things like this SO thread seems to suggest manually copying dependencies is a somewhat common (bad ideaful) interpretation of the concept though: https://softwareengineering.stackexchange.com/questions/372444/why-prefer-a-package-manager-over-a-library-folder https://softwareengineering.stackexchange.com/questions/3724...
- cxr 3y agoYou don't need special language tooling support. `git add` works regardless of which language you're using; we're shedding excessive tooling here (read: disentangling it from places it shouldn't be). "Why prefer a package manager over a library folder?" is a false dichotomy. Package managers are still responsible for managing packages—when your dependencies are checked into the repo, the package manager just operates on the packages that are already on disk instead of fetching them in a separate step and/or at the very last minute and being intertwined with the build process.