Core Platform Team/Initiative/Reduce Extension Interface Surface Area/Epics, User Stories, and Requirements

< Reduce Extension Interface Surface Area

  • 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
  • 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