add thoth-wheels to solver output#5110
add thoth-wheels to solver output#5110Gregory-Pereira wants to merge 4 commits intothoth-station:masterfrom
Conversation
|
/hold for permissions issue with |
thoth/solver/python/python.py
Outdated
|
|
||
| run_command("touch ./temp-requirements.txt") | ||
|
|
||
| for dependency in result["tree"]: |
There was a problem hiding this comment.
Thanks for digging into this. This is really low-level and hardcore part of the system.
The approach might require some more effort to have it slightly restructured. The thing is that solver is run thousands of times in the cluster and each artifact download costs us a lot of time. This change could eventually land in the code that does the actual dependency extraction to make sure the artifact is downloaded really just once and the corresponding data are extracted from it (per artifact). It might happen that two different builds can have different metadata which we should be aware of (hence this could land in a different part of the codebase). I'm open to discuss the approach on a call if you want. Thanks again for your contribution and time spent on this.
d6f59fa to
47e0dbb
Compare
9fc7562 to
6e1b7f7
Compare
95eaa7f to
5109358
Compare
f4cab2a to
bc18969
Compare
bc18969 to
85e5e60
Compare
|
I decided to add the index from which an artifact is retreived into thoth-wheels because the hash for an artifact is specific to where it comes from. Now it should be something like: That being said I came across an issue with testing this change against indexes that arent No Data: These commands all report: Gets Data: This is an issue because that would mean you need a different All that being said I am still getting an error for the command that gets data, for some reason: It seems that it is returning no data in |
|
The issue with It might be a good idea to slightly revisit the approach. The problem here is that these artifacts will be downloaded multiple times, which is unnecessary. This is a quite big change with a large impact in the system - there is a need to adjust also database schema and stuff like that to fully support artifact hashes. This task is not trivial and requires deep knowledge of the system - we can sync on a call if you want. |
|
What do we need to get this merged? /test aicoe-ci/prow/pytest |
|
@goern: The specified target(s) for
Use DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
|
@fridex has shared some things that need to be changed. I will update it as soon as I am done adding the f35-py310 solver overlay, should be updated by end of day. |
|
Might take a little longer, got caught up with the patch s2i patch for new f35-py310 image yesterday. In terms of visibility, the issues that I need to refactor in this before it gets merged:
|
|
Taking a new approach based on the comments about removing our reliance on the Instead of running I do have a question about balancing performance and functionality. If it is true that we want to know (from the client side) every artifact for which one's environment would work for, this solution would actually end up downloading each of those artifacts. It is possible to pass Any thoughts @fridex? |
|
POC has been pushed. Code isn't the cleanest but take a look at the general premise, provide feedback, and I can clean it up tomorrow. |
260605b to
60da103
Compare
9bdcd65 to
ee50656
Compare
|
Test passing ready for review / feedback. |
0538a67 to
1465644
Compare
1465644 to
a66ce3d
Compare
|
Changed variable names to match standard and linting extra spaces. Tests failed but did not run in the first place. |
|
@Gregory-Pereira: The DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
|
Issues go stale after 90d of inactivity. If this issue is safe to close now please do so with /lifecycle stale |
|
Stale issues rot after 30d of inactivity. If this issue is safe to close now please do so with /lifecycle rotten |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
@Gregory-Pereira: The following test failed, say
Full PR test history. Your PR dashboard. Please help us and open an issue when you hit one in your PR. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
Related Issues and Dependencies
Partially addresses Solver should report exact package hash that was used to install a package #5102 (1 of 3)
This introduces a breaking change
While the change is not breaking, this feature will not work until we begin storing these wheels in Thoth, and adviser is adjusted to query wheels first in construction of lock files.
This Pull Request implements
Store SHA's for artifact that is optimized / working with a given environment.
Description
Solver will grab all available
SHAs from PYPI or other index, and then will create a temporary requirements file with the dependency, dependency version and hash attempted for that dependency/version combination. It will then attempt to install that package, and if it succeeds it knows that the artifact associated with thatSHAworks for the given environment. It will then upload theseSHAs within thethoth-wheelsdict.Currently uses brute force.
Holding for other corresponding PRs in other repos.