Relax all pins using compatible version operator and re-freeze#5824
Conversation
CrystalPea
left a comment
There was a problem hiding this comment.
It will automatically update patch versions, not minor versions, on refreeze, right?
|
So we get version |
|
@quis ohh, so we actually do do minor version bumps on re-freeze. Doesn't that make us vulnerable to supply-chain attacks, like the one in npm ecosystem recently? |
|
There’s nothing stopping a supply chain attack being shipped in a patch version. At least with the re-freezing strategy we can choose to not to do a re-freeze at the time we know there is a supply chain attack in the wild. |
|
@quis true that! |
|
@quis still it's a change I wouldn't do in a hurry - maybe we could discuss it on the tech catch up before we merge it? |
|
We could discuss it again, but this sort of caution is essentially how we end up very far behind on dependencies and functionally ends up being the same thing as not maintaining our dependencies. |
|
🤷 we've got to try it sometime. |
72a6a43 to
faec8bc
Compare
Add and run a
|
Using the compatible release operator means we can update our requirements by re-freezing, rather than manually updating quite arbitrary exact pins.
Note that the new version of `humanize` now rounds to the nearesrt delta rather than rounding down. This is more accurate, but means updating a couple of our tests. The change is https://github.com/python-humanize/humanize/pull/272/files
0934589 to
59e9edf
Compare
This automates the process of refreezing our requirements, which updates dependencies which are either tranistory or not pinned to a specific version. Importantly it ignores versions which are less than 7 days old. This gives us a chance to avoid newly-released dependencies which have supply chain attacks, before they’ve been identified by security scanning tools. It would be better to go for a longer time period than 7 days. However at the moment this would mean downgrading dependencies to versions which have known vulnerabilities, which I think is the worse of two evils.
59e9edf to
1f87b25
Compare
Using the compatible release operator means we can update our requirements by re-freezing, rather than manually updating quite arbitrary exact pins.
By setting the operator to only give us minor version updates we minimise the chance of introducing breaking changes when re-freezing.
Note that the new version of
humanizenow rounds to the nearest delta rather than always rounding down.This is more accurate, but means updating a couple of our tests.
The change is the result of python-humanize/humanize#272