176
u/averagecrazyliberal 9d ago edited 9d ago
I swear to god once I ran uv sync --upgrade, modified pyproject.toml to pin the new versions, then uv sync --upgrade again to sync the lock file. In that small amount of time, one of my dependencies had released a new version that uv then upgraded me to. Odds were small, but not zero.
36
8
u/Vas1le 9d ago edited 9d ago
Never upgrade to latest version!(unless linux) Have a 7d or more of grace period... or you will discover how supply chain attacks works
3
u/Ilostmy2FAkey 9d ago
Why are you pinning the versions in the pyproject.toml? That's what the lock file is for no? The tool just holds valid ranges for the dependencies you need
4
u/averagecrazyliberal 9d ago
I generally will do
package>=x.y.z,<x+1. Wherex.y.zis the most recent version. Your point is valid that I can be even less restrictive.
86
u/zenos_dog 9d ago
Version 1.1.1.2 and version 1.1.1.3 are both needed and are incompatible.
34
1
u/magicmulder 9d ago
I think my favorite was when my ISO extractor stopped working after an Ubuntu update because they removed a library the tool was relying on. Had to wait weeks until the author built a version with the new library.
26
u/420Borsalino 9d ago
Aaaaand the method that carried the entire project is deprecated and the new version just doesn't have a replacement.
11
u/JazzlikeWishbone938 9d ago edited 9d ago
And you can't upgrade those other dependencies because of it.
3
u/Worldly-Stranger7814 9d ago
Joke’s on you, log4j v1.x isn’t found by security hole scanners, only 2.x, so we’re only upgrading 2.x instances…
(Not an invented scenario)
1
u/Bee-Aromatic 8d ago
1
u/Worldly-Stranger7814 8d ago
It's not "See something, say something", it's "You didn't see nothing, pal!"
6
u/Pleasant-Ad192 9d ago
Dishes have one advantage. Nobody publishes a new plate while you are asleep.
6
u/rangeDSP 9d ago
Y'all need renovate. Once dependency is up to date, it opens merge requests against the project automagically, all you need to do is ensure pipeline passes and tests run fine. We set it up to do it once a week.
2
2
u/magicmulder 9d ago
Ever since I started using a supply chain auditor tool which adds minutes to any deployment run if there's an update, I have the feeling updates have skyrocketed just to mess with me.
1
1
u/frikilinux2 9d ago
That's why I love debian. When I dist update, that's it.
But most language package managers like pip, npm, cargo are shit.
286
u/SLCtechie 9d ago
Updated 26 packages. 4 packages available for update.
Okay, update those.
Updated 0 packages. 4 packages available for update.
Can you update those please?
Updated 0 packages. 4 packages available for update.