Skip to content

feat: Migrate to Room 3.0 and update related documentation and tracks#4865

Merged
jamesarich merged 13 commits intomainfrom
feat/room3
Mar 20, 2026
Merged

feat: Migrate to Room 3.0 and update related documentation and tracks#4865
jamesarich merged 13 commits intomainfrom
feat/room3

Conversation

@jamesarich
Copy link
Copy Markdown
Collaborator

This pull request completes the migration of the project’s database infrastructure to Room 3, enabling full Kotlin Multiplatform (KMP) support for Android, Desktop, and iOS. It also documents and archives two major code extraction tracks: moving DatabaseManager and RadioInterfaceService logic into commonMain for true multiplatform parity. Key changes include updating dependencies and build logic, refactoring tests, and adding detailed documentation and implementation plans for these architectural improvements.

Room 3 Migration and KMP Database Modernization

  • Updated all Room-related imports and usages from androidx.room to androidx.room3 throughout the codebase, including test files, to support Room 3 and KMP features. [1] [2] [3] [4] [5]
  • Refined Gradle build logic in AndroidRoomConventionPlugin.kt to use the new Room 3 plugin and best practices, ensuring compatibility with multiplatform targets.
  • Added new dependencies (androidx.datastore.preferences, okio) to core/database/build.gradle.kts for multiplatform file and preferences management.

Documentation and Track Archiving

  • Added comprehensive documentation for the "Extract DatabaseManager to KMP" and "Extract RadioInterfaceService to KMP" tracks, including specifications, implementation plans, metadata, and context. These documents outline the requirements, phases, and acceptance criteria for moving critical logic into commonMain and achieving platform parity. [1] [2] [3] [4] [5] [6] [7] [8]
  • Created and documented a new track for the Room 3 migration, detailing the migration plan, specification, and metadata for future reference. [1] [2] [3] [4]

Project and Tech Stack Updates

  • Updated project and tech stack documentation to reflect the adoption of Room 3 KMP and the bundled SQLite driver, clarifying the new architecture and supported platforms. [1] [2] [3]

Summary of Most Important Changes

Room 3 Migration (KMP Support)

  • Migrated all Room dependencies, imports, and usages to Room 3 (androidx.room3), enabling multiplatform database support and consistent behavior across Android, Desktop, and iOS. [1] [2] [3] [4] [5]
  • Updated Gradle build logic and dependencies for Room 3 and multiplatform file/datastore management. [1] [2]

Track Documentation and Architecture Improvements

  • Added detailed documentation and plans for extracting DatabaseManager and RadioInterfaceService logic to commonMain, ensuring feature parity and unified architecture across all targets. [1] [2] [3] [4] [5] [6] [7] [8]
  • Documented the Room 3 migration process, including specification, plan, and metadata for future maintainability. [1] [2] [3] [4]

Project Documentation

  • Updated architecture and tech stack docs to reflect the move to Room 3 KMP and the use of the bundled SQLite driver, clarifying the multiplatform approach. [1] [2] [3]

@github-actions github-actions bot added the enhancement New feature or request label Mar 20, 2026
@jamesarich jamesarich added this pull request to the merge queue Mar 20, 2026
Merged via the queue into main with commit c4087c2 Mar 20, 2026
8 checks passed
@jamesarich jamesarich deleted the feat/room3 branch March 20, 2026 21:50
@codecov
Copy link
Copy Markdown

codecov bot commented Mar 20, 2026

Codecov Report

❌ Patch coverage is 16.27907% with 144 lines in your changes missing coverage. Please review.
✅ Project coverage is 10.78%. Comparing base (6cdd10d) to head (ba66c4e).
⚠️ Report is 1 commits behind head on main.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
...tastic/core/service/SharedRadioInterfaceService.kt 0.00% 114 Missing ⚠️
...in/org/meshtastic/core/database/DatabaseManager.kt 48.27% 25 Missing and 5 partials ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main    #4865   +/-   ##
=======================================
  Coverage   10.78%   10.78%           
=======================================
  Files         550      550           
  Lines       18198    18161   -37     
  Branches     2718     2714    -4     
=======================================
- Hits         1962     1959    -3     
+ Misses      16037    16002   -35     
- Partials      199      200    +1     
Flag Coverage Δ
host-unit 10.78% <16.27%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant