Core Platform Team/Initiative/Reduce Extension Interface Surface Area/Epics, User Stories, and Requirements
This page is obsolete. It is being retained for archival purposes. It may document extensions or features that are obsolete and/or no longer supported. Do not rely on any information on this page. The Core Platform Team and its initiatives do not exist anymore. See MediaWiki Engineering Group instead since 2023. |
- Develop the product plan
- Analysis and Design:
- Action and filter hooks:
- Approve RFC for action and filter hooks
- Enumerate all current hook points, and analyze their usage in extensions
- Categorize current hooks as action and/or filter hooks and map parameters (identify any parameters that need to change/create new parameter types)
- Develop deprecation and migration plan
- Access to core:
- Define acceptable access to global state
- Analyze which core code is called by extensions
- Analyze what global state is accessed by extensions
- Analyze which core classes are subclassed by extensions
- Identify areas of core code that extensions should not access and identify alternatives
- For each area of improvement identified:
- Make proposal for improvement (possible RFC)
- Collect feedback from stakeholders
- Develop deprecation and migration plan
- Action and filter hooks:
- Create development plan
- Development:
- Implement the action and filter hook interfaces dictated in the RFC
- Provide developer facing documentation for migration of for new hooks
- Migrate extensions to new hooks
- Implement new core interfaces per each proposal for improvement
- Mark core code that is internal and may not be accessed by extensions (may require tool support)
- Mark core classes that may be subclassed by extensions (may require tool support)
- Provide developer facing documentation for migration to new core interfaces
- Migrate extensions to new core interfaces
- Deprecate then remove old hooks and interfaces