The Python based plugin system is well established and documented. The downside is that it doesn't work with packagekit, or other tooling that directly interacts with libdnf (including dnf5 / microdnf)
I was originally going to supersede this code and project by doing a PR against libdnf. After more investigation I've found this isn't the right approach. While there is an example plugin in libdnf, it's not easily built. The expectation is that all libdnf plugins will be completely separate packages. To build said packages, you need libdnf-devel, but that's not provided on RHEL / CentOS today making this overly complex. You also need a distinct code base, so this repo continues to have purpose.
As the deadlines for Fedora 34 are looming, I will opt to do the following in the short term:
Establish a new package in rawhide called 'dnf-plugin-cow' with this code
Ship that. It will work with dnf as expected, and remains a limited, opt-in new feature for Fedora 34
Later I or someone else comes back around to this project, and re-implements it as a libdnf plugin. I think it's generally okay to call this project and package dnf-plugin-cow even if should really be called libdnf-plugin-cow. We can rename later if it's important.
The Python based plugin system is well established and documented. The downside is that it doesn't work with packagekit, or other tooling that directly interacts with libdnf (including dnf5 / microdnf)
I was originally going to supersede this code and project by doing a PR against libdnf. After more investigation I've found this isn't the right approach. While there is an example plugin in libdnf, it's not easily built. The expectation is that all libdnf plugins will be completely separate packages. To build said packages, you need libdnf-devel, but that's not provided on RHEL / CentOS today making this overly complex. You also need a distinct code base, so this repo continues to have purpose.
As the deadlines for Fedora 34 are looming, I will opt to do the following in the short term:
dnf-plugin-cow
even if should really be calledlibdnf-plugin-cow
. We can rename later if it's important.