X-Git-Url: http://www.git.stargrave.org/?a=blobdiff_plain;f=Documentation%2Fdesign_notes.txt;h=d7313cb6a60c7a895bc2724528feadfc62b531da;hb=6a414a4087a59ad8c62cbef30984632ea31ced23;hp=9666664cf9c94cf95e43236e5824882e710e3522;hpb=394558721dd0c27f71fc6605c009ea07d37ccee8;p=public-inbox.git diff --git a/Documentation/design_notes.txt b/Documentation/design_notes.txt index 9666664c..d7313cb6 100644 --- a/Documentation/design_notes.txt +++ b/Documentation/design_notes.txt @@ -1,5 +1,5 @@ -Design notes ------------- +public-inbox design notes +------------------------- Challenges to running normal mailing lists ------------------------------------------ @@ -14,7 +14,6 @@ confused users who cannot unsubscribe. Use existing infrastructure --------------------------- - * public-inbox can coexist with existing mailing lists, any subscriber to the existing mailing list can begin delivering messages to public-inbox-mda(1) @@ -35,7 +34,6 @@ Use existing infrastructure Why email? ---------- - * Freedom from proprietary services, tools and APIs. Communicating with developers and users of Free Software should not rely on proprietary tools or services. @@ -53,9 +51,9 @@ Why email? There is no need to ask the NSA for backups of your mail archives :) * git, one of the most widely-used version control systems, includes many - tools for for email: git-format-patch(1), git-send-email(1), git-am(1). - Furthermore, the development of git itself is based on the git mailing - list. + tools for for email, including: git-format-patch(1), git-send-email(1), + git-am(1), git-imap-send(1). Furthermore, the development of git itself + is based on the git mailing list. * Email is already the de-facto form of communication in many Free Software communities.. @@ -66,7 +64,6 @@ Why email? Why git? -------- - * git is distributed and robust while being both fast and space-efficient with text data. NNTP was considered, but does not support delta-compression and places no guarantees on data/transport @@ -76,8 +73,19 @@ Why git? developers. For non-developers it is packaged for all major GNU/Linux and *BSD distributions. NNTP is not as widely-used nowadays. +Why perl 5? +----------- +* Perl 5 is widely available on modern *nix systems with good a history + of backwards and forward compatibility. + +* git and SpamAssassin both use it, so it should be one less thing for + admins to install and waste disk space with. + Laziness -------- +* Stick to dependencies available in Debian main, this should make it + easier for potential users to install, and easier for distro + maintainers to pick up. * A list server being turned into an SMTP spam relay and being blacklisted while an admin is asleep is scary. @@ -98,11 +106,10 @@ Laziness * Avoids bikeshedding about web UI decisions, GUI-lovers can write their own GUI-friendly interfaces (HTML or native) based on public archives. - Maybe one day integrated MUAs will feature a built-in git protocol support! + Maybe one day integrated MUAs will feature built-in git protocol support! Web notes --------- - * Getting users to install/run ssoma (or any new tool) is difficult. The web views must be easily read/cache/mirror-able. @@ -115,6 +122,26 @@ Web notes * Raw text endpoint allows users to write client-side JS endpoints without hosting the data themselves (or on a different server). +What sucks about public-inbox +----------------------------- +* Lack of push notification. On the other hand, feeds seem popular. + +* some (mostly GUI) mail clients cannot set In-Reply-To headers + properly without the original message. + +Scalability notes +----------------- +Even with shallow clone, storing the history of large/busy mailing lists +may place much burden on subscribers and servers. However, having a +single (or few) refs representing the entire history of a list is good +for small lists since it's easier to lookup a message by Message-ID, so +we want to avoid splitting refs with independent histories. + +ssoma will likely grow its own builtin ref rotation system based on +message count (not rotating at fixed time intervals). This would +split the histories and require O(n) lookup time based on Message-ID, +where `n' is the number of history splits. + Copyright --------- Copyright 2013, Eric Wong and all contributors.