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

Store plugin requirements #236

Open
LecrisUT opened this issue May 21, 2024 · 0 comments · May be fixed by #250
Open

Store plugin requirements #236

LecrisUT opened this issue May 21, 2024 · 0 comments · May be fixed by #250

Comments

@LecrisUT
Copy link
Contributor

LecrisUT commented May 21, 2024

This is primarily for tmt but it doesn't hurt to implement it as a standard here.

Issue: Similarly to how tmt expanda upon an fmf tree, the tree might not be fully valid depending on how it is parsed, e.g. w.r.t. schema validation.

Approach: Along with .fmf/version, a .fmf/plugins could be optionally parsed. The format would be similar to that of a requirements.txt, i.e. PEP508, and parsed via packaging.requirements. So it may look like:

tmt
tmt-cmake [cmake] @ git+https://github.com/LecrisUT/tmt-cmake@main

Fmf responsibility here would be just to:

  • Check that the plugin requirements are satisfied
    • name and specifier
    • maybe extras and marker
    • ignore url
  • Print out a requirements.txt of the unsatisfied plugins when executing cli
  • Print out all the .fmf/plugins as is (in case this will evolve later). Useful if the user would want to always install the plugins

Impact:

  • tmt consumers can install external tmt plugins before tmt command execution
  • fmf tree can be fully validated based on its syntax, e.g. is it a tmt-flavored tree, vanilla or something else?
@LecrisUT LecrisUT linked a pull request Jun 17, 2024 that will close this issue
9 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant