Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains a few different bug fixes and refactorings.
I decided to propose them together, because the failing cases I was working with did not get fixed by applying only a subset of the fixes, but they need all of them to start creating sane PRs.
Break up of the different fixes is:
pip-compile
with--no-build-isolation
. This error was caused by Pip itself changing the error message, and just catches up with the change. 500455f--no-build-isolation
retry code into the file updater. Normally error detection only needs to happen in the update checker, since we fail early when detecting these errors and we don't need to check again in the file updater. We don't reach that far. However, in the case of these retries, if we succeed when retying, we keep going and need the same fallback when updating files. This could be improved by passing around whether--no-build-isolation
needs to be used or not from the update checker to the file updater, but for now I just copied the code to detect it. f4fa838fe5dd70aa2ed5eb5097a8f3990a80f9b2PyYAML < 6
is incompatible withCython 3
, which we use since last July. In that PR, this problem was actually surfaced by our specs, but we failed to notice that it was not a specs-only problem where we could upgrade ourselves to PyYAML 6, but a real world user issue. Generally we don't introduce this kind of workaround but in this case I believe it's very wide spread so it's worth introducing it and paying the cost of maintaining this extra code. bb3398a64624f29af16072c48385b8f7f4964496This is a reproducible example being fixed by this PR: