-
Notifications
You must be signed in to change notification settings - Fork 260
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement the jwz threading algorithm #3355
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ChristophWurst
requested review from
rullzer,
nickvergessen,
MorrisJobke,
jbtbnl,
ahstro,
kesselb and
GretaD
July 7, 2020 15:55
ChristophWurst
force-pushed
the
enhancement/jwt-threading
branch
from
July 7, 2020 17:37
6526d18
to
7bb0090
Compare
2 tasks
ChristophWurst
force-pushed
the
enhancement/jwt-threading
branch
2 times, most recently
from
July 8, 2020 08:22
0fd1cd7
to
fe96b73
Compare
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
ChristophWurst
force-pushed
the
enhancement/jwt-threading
branch
from
July 8, 2020 08:40
fe96b73
to
d68a894
Compare
nickvergessen
approved these changes
Jul 8, 2020
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🦈 The shark approves
GretaD
approved these changes
Jul 8, 2020
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
coool
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Extracted from #2125 to make the PR more reviewable.
This is basically an implementation of https://www.jwz.org/doc/threading.html but using a few tricks from https://tools.ietf.org/html/rfc5256 like the root container (as opposed to a list of root containers).
The algorithm here doesn't do anything yet, the integration will follow with #2125. All this patch is add the algorithm and a set of tests that ensure some basic cases work as expected. I would say we have to see if and how well it works and take a closer look once we have the real data. On paper it's a bit hard to reason about the correctness. But not crashing is already a good achievement I guess.
For those who really want to dig into it I left comments for the respective sections on https://www.jwz.org/doc/threading.html in each of the sections of the algorithm. On a high level there is one method that builds the threads and that splits the complexity in five private methods for each of the main steps.
Ref https://github.com/nextcloud/mail/projects/11#card-41435877