Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[8pt][SPIKE]Use backtracking for "latest" recommendation types #2329

Open
fridex opened this issue Apr 29, 2022 · 9 comments
Open

[8pt][SPIKE]Use backtracking for "latest" recommendation types #2329

fridex opened this issue Apr 29, 2022 · 9 comments
Labels
kind/feature Categorizes issue or PR as related to a new feature. lifecycle/active Indicates that an issue or PR is actively being worked on by a contributor. priority/critical-urgent Highest priority. Must be actively worked on as someone's top priority right now. sig/stack-guidance Categorizes an issue or PR as relevant to SIG Stack Guidance.

Comments

@fridex
Copy link
Contributor

fridex commented Apr 29, 2022

Problem statement

Some requirements fail to be resolved from time to time even though a resolution for the given set of requirements exists. This is caused by the nature of the algorithm used when resolving "latest". It might be worth experimenting with other algorithms to have more deterministic resolution - the adviser could use backtracking if resolving "latest" versions of software packages similarly as pip does and leave the algorithm based on TD-learning solely when resolving other recommendation types. Otherwise, it might be worth checking if we can adjust the heuristics of the "latest" predictor for selecting a specific version.

@fridex fridex added the kind/feature Categorizes issue or PR as related to a new feature. label Apr 29, 2022
@mayaCostantini
Copy link
Contributor

/sig stack-guidance

@sesheta sesheta added the sig/stack-guidance Categorizes an issue or PR as relevant to SIG Stack Guidance. label Apr 29, 2022
@goern
Copy link
Member

goern commented May 17, 2022

/priority critical-urgent

@sesheta sesheta added the priority/critical-urgent Highest priority. Must be actively worked on as someone's top priority right now. label May 17, 2022
@mayaCostantini
Copy link
Contributor

@mayaCostantini
Copy link
Contributor

/assign @mayaCostantini

@mayaCostantini mayaCostantini self-assigned this May 30, 2022
@harshad16 harshad16 changed the title Use backtracking for "latest" recommendation types [8pt][SPIKE]Use backtracking for "latest" recommendation types Jul 5, 2022
@codificat codificat moved this to 🔖 Ready in Planning Board Jul 8, 2022
@harshad16
Copy link
Member

The documentation also has details on limitation
https://pip.pypa.io/en/stable/topics/dependency-resolution/#possible-ways-to-reduce-backtracking

Maybe we would have to use them for a smooth resolution report.

@mayaCostantini
Copy link
Contributor

/lifecycle active

@sesheta sesheta added the lifecycle/active Indicates that an issue or PR is actively being worked on by a contributor. label Jul 21, 2022
@codificat
Copy link
Member

For anecdotal evindence, just adding a couple of instances where I think the advice provided with latest looks strange / unexpected:

@codificat codificat moved this to 🏗 In progress in Planning Board Sep 24, 2022
@mayaCostantini mayaCostantini removed their assignment Dec 1, 2022
@mayaCostantini mayaCostantini moved this from 🏗 In progress to 🆕 New in Planning Board Dec 1, 2022
@KPostOffice
Copy link
Member

If we do decide to use backtracking, couldn't we use pip directly as it already does backtracking with latest versions? This makes me wonder what the benefit of adviser for someone who needs latest recommendations is. What benefit does latest advise offer over a simple pip install or pipenv install?

@harshad16
Copy link
Member

Great question. The reason could be to have advise report containing information if there is additional CVE, security concern, or any other information related to the latest stack. As this kinda information is not available from pip or pipenv, users might have to go over a varied number of places to gather this information.
Though it is valid on pip vs thamos on the latest the behavior is to get the latest package, if we don't have any information about the package version, then it is same as pip installed package, we should have consensus on this behaviour and which way to move towards.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature. lifecycle/active Indicates that an issue or PR is actively being worked on by a contributor. priority/critical-urgent Highest priority. Must be actively worked on as someone's top priority right now. sig/stack-guidance Categorizes an issue or PR as relevant to SIG Stack Guidance.
Projects
Status: 🆕 New
Development

No branches or pull requests

7 participants