[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
- Setup the new modular structure as outlined in the ADR.
- Migrate existing code to the new structure.
- Update build scripts and CI/CD pipelines to accommodate the new structure.
- Update documentation to reflect the new project structure.
Tasks
- Setup the new modular structure as outlined in the ADR.
- Create
app-thunderbird
andapp-k9mail
modules. - Create
app-common
module. - Create
feature:*
modules as needed. - Create
core:*
modules as needed. - Create
library:*
modules as needed.
- Create
- 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.
- Identify features in the legacy code that can be moved to
- 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.