thunderbird / thunderbird/thunderbird-android
Changelog system replacement
Open
@shamim-emon is already working on this.
Since Jun 2, 2026.
- Dominant language
- Kotlin
- Stars
- 14k
- Forks
- 2.8k
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 57
Description
🎯 The objective
Replace the unmaintained ckChangeLog XML changelog system with a project-owned, schema-validated JSON changelog system for Thunderbird for Android and K-9 Mail.
This includes preserving the current Changelog screen and Recent Changes behavior, delivering validated JSON changelog assets for each app target, migrating the required historical data, updating release documentation, and removing the ckChangeLog dependency.
🎒 Resources
- RFC and technical design: #XXXX
scripts/ci/render-notes.pyfeature/changelog/internaldocs/release/RELEASE.md- thunderbird-notes
🦮 Rules of the Road
🟢 In Scope
- Generate schema-validated JSON changelog index and per-release files.
- Extend existing release-note tooling.
- Migrate required historical XML changelog data.
- Replace the changelog runtime reader with a feature-owned JSON reader.
- Preserve Changelog and Recent Changes UX.
- Add debug dummy JSON changelog assets.
- Remove
ckChangeLogand obsolete XML runtime references. - Update release documentation.
🔴 Out of Scope
- Runtime/network-delivered changelog data.
- Markdown rendering.
- Changelog screen redesign or new display fields.
- Inferring metadata from note text.
- Broad module restructuring.
🚧 Technical and/or Business Requirements
- Use schema version
1and JSON Schema draft2020-12. - Package one
changelog_index.jsonper app target and one JSON file per release. - Use
R.raw.changelog_index; do not scanres/raw. - Preserve release and note ordering.
- Match Recent Changes by full app version; daily builds also match date.
- Validate schemas, generation, migration, runtime mapping, and Recent Changes behavior.
- Resolve open questions: seen-state migration and required historical XML migration scope.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.