thunderbird / thunderbird/thunderbird-android

Global Database 0.1.11 - Cut over legacy mail storage to the global database

Open
#11,468 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

tb-team type: enhancement
Dominant language
Kotlin
Stars
14k
Forks
2.8k
Avg merge
3d 3h
Merged PRs (30d)
57

Description

Implement the production transition from legacy per-account mail storage to the global mail database. Import durable mail data, validate the result, and establish the durable cutover state that makes global storage authoritative.

Acceptance criteria
  • Import covers every mapping in the accepted legacy inventory.
  • Derived data, such as search indexes, is rebuilt before validation runs.
  • Validation covers imported data, relationships, queued operations, attachments, restart integrity, and search.
  • An attachment that fails to copy or validate is recorded in the migration result and fails the migration.
  • Before cutover, normal mail access cannot observe imported global data.
  • Failed migration leaves legacy storage authoritative.
  • Cutover removes legacy database and attachment artifacts.
  • After cutover, all mail access uses global storage and cleanup failure does not restore legacy authority.
  • If the migration fails due to insufficient storage, the system notifies the user to disable auto-updates and postpone manual version upgrades until sufficient space is cleared.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files or tests are named. Start by locating the legacy per-account and global mail-storage migration entry points and the accepted legacy inventory, then trace import, derived-data rebuilding, validation, cutover, rollback authority, cleanup, and storage-error handling. Done means every acceptance criterion is covered by the production migration and its validation.

Written by the indexing model from the issue text.

Assessment

Tech stack
kotlin
Domain
databases, mobile
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.