Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[5pt] Improve thamos output usability #1118

@codificat

Description

@codificat

Problem statement

The current output of thamos advise can be quite scary, with a lot of information.

For example, running an advice on the ps-nlp-pytorch stack produces almost 7000 lines of output in the standard output (!), plus 6 lines on stderr:

$ thamos advise --no-user-stack --force --no-static-analysis -r ps-nlp-pytorch > /tmp/advise.out 
2022-06-02 13:39:16,254 [39340] WARNING  thamos: Development dependencies will not be considered during the resolution process - see https://thoth-station.ninja/j/no_dev
2022-06-02 13:39:16,254 [39340] INFO     thamos.lib: Using Pipenv files to manage dependencies located in '/home/pep/github/thoth/ps-nlp/overlays/ps-nlp-pytorch'
2022-06-02 13:39:16,254 [39340] INFO     thamos.lib: Submitting Pipfile.lock as a base for user's stack scoring - see https://thoth-station.ninja/j/user_stack
2022-06-02 13:39:16,840 [39340] INFO     thamos.lib: Using 'latest' recommendation type - see https://thoth-station.ninja/recommendation-types/
2022-06-02 13:39:16,840 [39340] WARNING  thamos.lib: The user stack found in the lock file will not be supplied as requested
2022-06-02 13:39:17,907 [39340] INFO     thamos.lib: Successfully submitted advise analysis 'adviser-220602113917-78f5020cd764a885' to 'https://khemenu.thoth-station.ninja/api/v1'

$ grep -v 'Waiting for response from Thoth' /tmp/advise.out | wc -l
6971

This amount of output is very hard to consume and digest.

Can we make it better? Simpler? Easier to consume?

High-level Goals

The output of thamos advise is comparable, in complexity, to e.g. pipenv lock.

Then, there are ways to obtain all the details behind the received advice, in an easy to consume way.

Proposal description

  • To have thamos advise provide just the essential amount of output to let the user know the main outcome.
    • One of the output lines mentions how to get more information
  • An option to obtain more details of the advice. For example, a new thamos explain command.
  • Results are clustered / categorized for easy understanding and/or filtering. This is, beyond the severity level (INFO/WARNING/ERROR), there is the possibility of getting details about specific types of justifications or recommendations. For example, thamos explain --security

The output should more or less match the capabilities of the search UI.

Additional context

Acceptance Criteria

  • The output of thamos advise can be made to contain only a few essential lines (new option to hide full details)
  • Additional thamos command/option to enable easy ways to obtain all the advice details

Metadata

Metadata

Assignees

Labels

kind/featureCategorizes issue or PR as related to a new feature.priority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next release.sig/user-experienceIssues or PRs related to the User Experience of our Services, Tools, and Libraries.triage/acceptedIndicates an issue or PR is ready to be actively worked on.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions