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

Will these plugins be rewritten to C for DNF5? #506

Closed
korpe1 opened this issue Sep 20, 2023 · 9 comments
Closed

Will these plugins be rewritten to C for DNF5? #506

korpe1 opened this issue Sep 20, 2023 · 9 comments
Assignees

Comments

@korpe1
Copy link

korpe1 commented Sep 20, 2023

DNF5 is becoming more widely adopted, so will these plugins be rewritten to C?

@kontura
Copy link
Contributor

kontura commented Sep 21, 2023

Yes, we already have some.

They might take the form of dnf5 plugins, libdnf5 plugins or they might be integrated differently but we want to preserve the functionality where it makes sense.

@j-mracek j-mracek self-assigned this Sep 27, 2023
@j-mracek
Copy link
Contributor

j-mracek commented Oct 2, 2023

There is a tracking issue - rpm-software-management/dnf5#389.

I am closing the issue as a resolve because there is a tracking issue in DNF5 project

@j-mracek j-mracek closed this as completed Oct 2, 2023
@korpe1
Copy link
Author

korpe1 commented Jan 7, 2024

Yes, we already have some.

They might take the form of dnf5 plugins, libdnf5 plugins or they might be integrated differently but we want to preserve the functionality where it makes sense.

How libdnf5 plugins works? Libdnf5 is library so, eh? 😅

@kontura
Copy link
Contributor

kontura commented Jan 8, 2024

We have a tutorial in the docs: https://dnf5.readthedocs.io/en/latest/tutorial/plugins/libdnf5-plugins.html or you can check the linked code.
Basically the library specifies several hooks like pre_base_setup, post_base_setup, pre_transaction... and you can trigger your own code at these points changing the library behavior.

@korpe1
Copy link
Author

korpe1 commented Jan 8, 2024

We have a tutorial in the docs: https://dnf5.readthedocs.io/en/latest/tutorial/plugins/libdnf5-plugins.html or you can check the linked code. Basically the library specifies several hooks like pre_base_setup, post_base_setup, pre_transaction... and you can trigger your own code at these points changing the library behavior.

Sorry the stupid question, but I think libraries are for borrowing code... so, what is the point of make plugins for them? Plugins makes sense for Firefox, Gedit, etc. applications, but what is point of plugins inside libraries?

@kontura
Copy link
Contributor

kontura commented Jan 8, 2024

The way I see it plugins for applications allow adding specific features and enable customization. In the same spirit you can add features and enable customization for a library. I think the important thing this enables is sharing these plugins among users of the library while they don't have to be part of the library.

@korpe1
Copy link
Author

korpe1 commented Jan 8, 2024

The way I see it plugins for applications allow adding specific features and enable customization. In the same spirit you can add features and enable customization for a library. I think the important thing this enables is sharing these plugins among users of the library while they don't have to be part of the library.

Hmm, maybe it makes sense, but is right to say that plugins are a niche thing in libraries? At the end, libraries are set of code snippets/functions for certain topic and usually you want to develop libraries directly instead develop plugins for it.

@kontura
Copy link
Contributor

kontura commented Jan 9, 2024

Hmm, maybe it makes sense, but is right to say that plugins are a niche thing in libraries?

Perhaps, right now I can think of only one more example: libpurple. However I am sure there is more.

@korpe1
Copy link
Author

korpe1 commented Jan 11, 2024

Hmm, maybe it makes sense, but is right to say that plugins are a niche thing in libraries?

Perhaps, right now I can think of only one more example: libpurple. However I am sure there is more.

Anyway, thank you for sharing thoughts with me :)

edit: And thank you (and others) for developing the best package manager in the world.

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

No branches or pull requests

3 participants