Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Message threading

オープン
#8 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
30/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
go
領域
backend, databases

調査の方向性

まず storage backend のコンテキストと、ORDEREDSUBJECT および REFERENCES のスレッド処理について説明している RFC 5256 のセクションを読みます。関係するメッセージとストレージのエントリポイントを特定し、メッセージが順不同で到着した場合でも message IDs を保持しながら、スレッドツリーとフラット化されたリストをどのように生成するかを定義します。

索引モデルが issue の本文から書いたものです。

説明

Message should be grouped into threads based on In-Reply-To, References Message-Id header fields. Message can belong to one or more threads. Storage layer should be able to produce thread tree (each message is linked directly to the message it is replying to) or flattened thread list (just list every message in thread).

Since each message belong to at least one thread and most threads don't have more than one message, we don't want to create a separate thread object for each message. Consider reusing message object as a thread object - each message contains two references - thread root message ID and thread parent message ID.

maddy-storage should support two threading algorithms (ORDEREDSUBJECT and REFERENCES) described in https://datatracker.ietf.org/doc/html/rfc5256. Note that go-imap v2 does not support THREAD extension server-side yet: https://github.com/emersion/go-imap/issues/533

For future JMAP compatibility, we don't merge threads if messages arrive out-of-order as this would require changing message IDs.

主要言語
Go
スター
3
フォーク
0
PR マージ指標
30日以内にマージされた PR はありません

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

foxcpp/maddy-storage のほかの issue

foxcpp/maddy-storage の issue をすべて見る

似ている issue

Go の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。