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

Plugin functionality #250

Draft
wants to merge 2 commits into
base: main
Choose a base branch
from
Draft

Plugin functionality #250

wants to merge 2 commits into from

Conversation

LecrisUT
Copy link
Contributor

This PR tries to do two things:

  • Migrate (some of) the tmt plugin framework to fmf
  • Define a .fmf/plugins to define what plugins are needed for an fmf tree

The design is that fmf defines a FMFPlugin class that stores the entry-point, packages and environment variable that are used to define where fmf's plugins are read from. Then by subclassing FMFPlugin, e.g. TMTPlugin(FMFPlugin) and adding self to FMFPlugin it is possible to recursively load every plugin of the projects. This needs all of the plugin's packages to be pre-installed though.

This by itself is marginally useful, but when combined with an equivalent of requirements.txt that can be used to read an fmf tree's plugin packages, this makes it possible to install and load the plugins.

Other TODOs:

  • Tests
  • Documentation
  • Release notes
  • Commands to parse plugins status: list, list-all, show, missing
  • Equivalent tmt interace for the commands above. E.g. it should be able to change the PyPI requirements to python3dist(...) rpm texts
  • How to deal with the logger?
  • (Optional) Add interface to refresh plugins module

Closes #236

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 this pull request may close these issues.

Store plugin requirements
1 participant