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

Create ADR for avoiding use of plugin patterns where they are not needed #35898

Open
Tracked by #35144
robrap opened this issue Nov 20, 2024 · 1 comment
Open
Tracked by #35144

Comments

@robrap
Copy link
Contributor

robrap commented Nov 20, 2024

Note: See openedx/openedx-events#421 (comment) for @kdmccormick's initial comments on this topic.

Inside edx-platform, many apps make use of plugin patterns. For examples, see https://github.com/search?q=repo%3Aopenedx%2Fedx-platform+plugin_app&type=code.

Use of this pattern predate ADRs, but @kdmccormick's memory of the reasoning at the time was something like:

  • If we turn built-in edx-platform djangoapps into plugins, then it'll make them easier to extract.
  • If edx-platform repo developers dogfooded the django plugin system, they would learn it and contribute to it.
  • Built-in XBlocks are still XBlocks, so built-in Django apps should still be plugins.

From a comment in the linked ticket, @kdmccormick added:

I could write more about why I disagree with each of those, but to be brief, I think that building internal apps as django plugins has just led to a stranger, more-indirect codebase with a higher barrier to entry for new maintainers.

This issue is about writing an ADR in edx-platform for what we want, providing context of how things are, and helping stop the pattern and potentially clean-up from the use of this past pattern.

@robrap
Copy link
Contributor Author

robrap commented Nov 20, 2024

@kdmccormick: I know you didn't want the edx-platform roadmap issue to be an index into every possible ticket. We can discuss if this would be useful for making the platform more understandable.

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

1 participant