pip-compile can fail artifact update check with multiple inputs #29656
Unanswered
not7cd
asked this question in
Request Help
Replies: 1 comment 2 replies
-
@mbudnek, did you encounter similar glitches? I think we discussed something, but I'm not sure if there was a conclusion. |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
What would you like help with?
I think I found a bug
How are you running Renovate?
Self-hosted
If you're self-hosting Renovate, tell us which platform (GitHub, GitLab, etc) and which version of Renovate.
CircleCI
Please tell us more about your question or problem
Problem
Renovate will fail a check for artifact update. Even though it eventually succeeds in this update by running
pip-compile
more than once.Description
Given this requirement file hierarchy:
We can expect Renovate to run pip-compile more than once on a lock file. This is because all descending lock files are added to a package file, as introduced in #28052.
This indeed happens, but in an order that throws artifact update error for requirements-jupyter.txt.
The
pipCompile.updateArtifacts(requirements-jupyter.in->["requirements-jupyter.txt"])
will fail because it depends onrequirements.txt
which is not yet compiled. It also all happens within the context ofupdateArtifacts for nonUpdatedPackageFiles
Possible fix
Keep the package file order based on topological sort during
artifactUpdate
. I don't remember if this order was ever respected.Alternatively, remove
artifactErrors
if it succeds in anotherartifactUpdate
execution. This must happen outsidepip-compile
module.The fix may require looking into the whole
updateArtifacts
section in get-updated.renovate/lib/workers/repository/update/branch/get-updated.ts
Lines 298 to 394 in 7178da3
Logs (if relevant)
Logs
Beta Was this translation helpful? Give feedback.
All reactions