2024-08-01 Frontend Working Group Meeting Notes: Coverage, Default Theme, and frontend-base

 Date, time, location

 Discussion topic(s)

  • Strategy around coverage (@Brian Smith)

  • Indigo as the default theme (@Adolfo Brandes )

  • Review of the new frontend-base repository. (@David Joy)

🎥Recording

 Participants

Adolfo Brandes, Brayan Cerón, Brian Smith, David Joy, Fox Piacenti, Jason Wesson, Juan Carlos Iasenza (Aulasneo), Milad Emami

🤖 Summary

1. Strategies Around Coverage in Frontends (Presented by Brian Smith)

  • Context:

    • Discussion started in the Paragon working group about adding types to Paragon.

    • Moving away from prop types to using Typescript for type coverage.

    • Integrating type coverage into CI without relying on external services.

    • Aiming for a holistic strategy covering code coverage, type coverage, bundle size monitoring, etc.

  • Issues with Current Approach:

    • Dependence on external services like Codecov can cause CI workflow interruptions.

    • Maintenance burden due to external service changes.

  • Proposal:

    • Run coverage reporting within GitHub actions to avoid reliance on external services.

    • Ensure the system is robust and does not add complexity to developers' workflows.

  • Discussion Points:

    • Need to identify tools that provide similar benefits to current services.

    • Importance of understanding the details provided by services like Codecov (e.g., identifying uncovered lines).

  • Actions:

    • Investigate alternatives that integrate seamlessly with GitHub actions.

    • Possibly open an issue to continue the discussion and gather more input.

2. Deprecating the Current Default Theme of Open edX (Presented by Adolfo Brandes)

  • Context:

    • Product working group proposed deprecating the current default theme.

    • Aim to unify the user experience across the platform by adopting a consistent default theme.

  • Current Situation:

    • Various themes exist: default theme in edx-platform, Paragon's defaults, and Tutor Indigo.

    • Tutor Indigo is often the de facto default due to its use in Tutor installations.

  • Proposal:

    • Integrate Tutor Indigo’s defaults into Open edX as the official default theme.

    • Move the integration upstream, ensuring it is maintained and tested by the community.

  • Discussion Points:

    • Importance of having a clear, cohesive default theme.

    • Ensuring the theme is accessible and does not introduce opinionated styles that conflict with customization.

    • Potentially keep Paragon’s base styles minimal and accessible while offering Indigo as a more feature-rich default.

  • Actions:

    • Adopt Tutor Indigo as the default theme, ensuring it is part of the Open edX organization.

    • Maintain clear documentation and examples to help users customize their themes.

3. Frontend Base Initiative (Presented by David Joy)

  • Context:

    • Introduction of frontend-base, a unified library to replace multiple core frontend libraries.

    • Supports OEP-65 for module federation, enabling runtime composition of MFEs.

  • Current Architecture:

    • MFEs currently rely on multiple separate libraries (frontend-platform, frontend-build, frontend-component, etc.).

    • Complexity in building and deploying MFEs, with many environment-specific configurations.

  • New Architecture:

    • frontend-base will include:

      • Runtime library (replacing frontend-platform and plugin framework).

      • Configurations (webpack, eslint, typescript).

      • CLI for streamlined development and build processes.

      • Shell for initializing and managing MFEs.

  • Benefits:

    • Simplifies MFE structure by consolidating dependencies.

    • Improves maintainability and iteration speed by centralizing initialization and configuration.

    • Supports both current deployment mechanisms and future module federation architecture.

  • Discussion Points:

    • Transition path from current MFEs to the new architecture.

    • Ensuring compatibility with existing deployment workflows.

    • Gradually introducing changes to avoid disruption.

  • Actions:

    • Continue developing frontend-base and testing with existing MFEs.

    • Create detailed migration guides and tools to assist developers in transitioning.

    • Engage with the community for feedback and refinement.


Next Steps:

  • Further investigation and discussion on replacing external CI services with self-hosted solutions.

  • Finalizing the decision to adopt Tutor Indigo as the default theme and planning the integration.

  • Continuing development on frontend-base and planning the transition path for existing MFEs.

Note:
David Joy will continue to post updates in the WG frontend and module federation Slack channels for those interested in following the progress of frontend-base.