[WIP]: Use class inheritance for plug-in API#784
Draft
paulrobertlloyd wants to merge 21 commits into
Draft
Conversation
paulrobertlloyd
force-pushed
the
feat/plugin-api
branch
14 times, most recently
from
March 2, 2025 22:27
246fb38 to
00c33a7
Compare
paulrobertlloyd
force-pushed
the
feat/plugin-api
branch
2 times, most recently
from
March 3, 2025 00:54
aa0535f to
d4c464e
Compare
paulrobertlloyd
force-pushed
the
feat/plugin-api
branch
from
March 8, 2025 22:39
d4c464e to
b3b755c
Compare
paulrobertlloyd
force-pushed
the
feat/plugin-api
branch
from
March 9, 2025 22:21
b3b755c to
ac7767a
Compare
paulrobertlloyd
force-pushed
the
main
branch
2 times, most recently
from
March 29, 2025 18:57
0d52664 to
7c5bb34
Compare
paulrobertlloyd
force-pushed
the
main
branch
4 times, most recently
from
April 13, 2025 00:08
cc2e089 to
04ad1f5
Compare
paulrobertlloyd
force-pushed
the
main
branch
2 times, most recently
from
December 7, 2025 14:57
2392677 to
58dba1d
Compare
paulrobertlloyd
force-pushed
the
main
branch
2 times, most recently
from
December 24, 2025 21:46
0533883 to
e09b3c4
Compare
paulrobertlloyd
force-pushed
the
main
branch
4 times, most recently
from
July 2, 2026 22:55
c7d60a7 to
2bd22fd
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
By using class inheritance with a base
IndiekitPluginclass with child classes for the different plug-in types, it becomes possible to orchestrate common functionality and centralise debugging and error handling.This becomes even more important if we want to use an event-based model with hooks, to allow multiple plugins (and of certain types) to perform functions at given points in the publishing lifecycle. The goal is to strike a balance between giving plug-ins flexibility to determine behaviour, but have a plug-in system that works in a reliable and consistent way.
We should try to keep largely to the existing plug-in API, but at least one required changed would be to have a plug-in inherit from a parent plugin class to continue working.
Todo
Later PRs
postTypesobject