51 lines
2.3 KiB
Markdown
51 lines
2.3 KiB
Markdown
# Change Shared Modules package to `net.thunderbird`
|
||
|
||
- Issue: [#9012](https://github.com/thunderbird/thunderbird-android/issues/9012)
|
||
|
||
## Status
|
||
|
||
- **Accepted**
|
||
|
||
## Context
|
||
|
||
The Thunderbird Android project is a white-label version of K-9 Mail, and both apps — `app-thunderbird` and `app-kmail`
|
||
— coexist in the same repository. They have distinct application IDs and branding, but share a significant portion of
|
||
the code through common modules.
|
||
|
||
These shared modules currently use the `app.k9mail` or `com.fsck` package name, which are legacy artifacts from
|
||
K-9 Mail. While K-9 will remain available for some time, the project’s primary focus has shifted toward Thunderbird.
|
||
|
||
To reflect this shift, establish clearer ownership, and prepare for future development (including cross-platform code
|
||
integration), we will rename the packages in shared modules from `app.k9mail` and `com.fsck` to `net.thunderbird`.
|
||
The actual application IDs and package names of `app-thunderbird` and `app-k9mail` must remain **unchanged**.
|
||
|
||
## Decision
|
||
|
||
We decided to rename the base package in all shared modules from `app.k9mail` and `com.fsck` to `net.thunderbird`.
|
||
|
||
Specifically:
|
||
|
||
- All Kotlin/Java packages in shared modules will be refactored to use `net.thunderbird` as the base
|
||
- This must not affect the application IDs or packages of `app-thunderbird` or `app-kmail`, which will remain as-is
|
||
- All references, imports, and configuration references will be updated accordingly
|
||
- Tests, resources, and Gradle module settings will be adjusted to match the new package structure
|
||
|
||
This change will establish a clearer identity for the shared code, align with Thunderbird's branding, and prepare the
|
||
project for cross-platform development.
|
||
|
||
## Consequences
|
||
|
||
## Positive Consequences
|
||
|
||
- Shared code reflects Thunderbird branding and identity
|
||
- Reduces confusion when navigating codebase shared by both apps
|
||
- Sets the foundation for cross-platform compatibility and future modularization
|
||
- Helps reinforce long-term direction of the project toward Thunderbird
|
||
|
||
## Negative Consequences
|
||
|
||
- Large-scale refactoring required across multiple modules
|
||
- Risk of introducing regressions during package renaming
|
||
- Potential for disruption in local development setups (e.g., IDE caching, broken imports)
|
||
- Contributors familiar with the old structure may need time to adjust
|
||
|