thunderbird / thunderbird-android

K-9 Mail – Open Source Email App for Android

Home Page:https://k9mail.app/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[EPIC] Project Structure

wmontwe opened this issue · comments

This epic tracks the progress of implementing the decisions made in ADR-0007 introduced by #7829.

Overview

The ADR-0007 proposes a new project structure to improve maintainability and streamline development. The structure uses Gradle and consists of various module types such as app, app-common, feature, core, and library modules. This modular structure is designed to enable clear separation of concerns and ensure efficient dependency management. It also includes a plan for migrating legacy modules to the new structure over time.

Goals

  1. Setup the new modular structure as outlined in the ADR.
  2. Migrate existing code to the new structure.
  3. Update build scripts and CI/CD pipelines to accommodate the new structure.
  4. Update documentation to reflect the new project structure.

Tasks

  • Setup the new modular structure as outlined in the ADR.
    • Create app-thunderbird and app-k9mail modules.
    • Create app-common module.
    • Create feature:* modules as needed.
    • Create core:* modules as needed.
    • Create library:* modules as needed.
  • Migrate existing code to the new structure.
    • Identify features in the legacy code that can be moved to feature:* modules.
    • Identify core utilities in the legacy code that can be moved to core:* modules.
    • Identify libraries in the legacy code that can be moved to library:* modules.
  • Update build scripts to accommodate the new structure.
  • Update CI/CD pipelines to accommodate the new structure.
  • Update documentation to reflect the new project structure.