]> Sergey Matveev's repositories - public-inbox.git/blobdiff - TODO
init: use Import::run_die instead of system()
[public-inbox.git] / TODO
diff --git a/TODO b/TODO
index 93054bb3129b502abad1b77e315db6c761016450..611d623a9b1be1ad2b534190f0cb94ebcf2f7d29 100644 (file)
--- a/TODO
+++ b/TODO
@@ -6,9 +6,13 @@ all need to be considered for everything we introduce)
 
 * general performance improvements, but without relying on
   XS or pre-built modules any more than we currently do.
+  (Optional Inline::C and user-compiled re2c acceptable)
 
 * mailmap support (same as git) for remapping expired email addresses
 
+* support remapping of expired URLs similar to mailmap
+  (coordinate with git.git with this?)
+
 * POP3 server, since some webmail providers support external POP3:
   https://public-inbox.org/meta/20160411034104.GA7817@dcvr.yhbt.net/
   Perhaps make this depend solely the NNTP server and work as a proxy.
@@ -17,10 +21,16 @@ all need to be considered for everything we introduce)
 
 * HTTP and NNTP proxy support.  Allow us to be a frontend for
   firewalled off (or Tor-exclusive) instances.  The use case is
-  for offering a publically accessible IP with a cheap VPS,
+  for offering a publicly accessible IP with a cheap VPS,
   yet storing large amounts of data on computers without a
   public IP behind a home Internet connection.
 
+* support HTTP(S) CONNECT proxying to NNTP for users with
+  firewall problems
+
+* DHT (distributed hash table) for mapping Message-IDs to various
+  archive locations to avoid SPOF.
+
 * optional Cache::FastMmap support so production deployments won't
   need Varnish (Varnish doesn't protect NNTP, either)
 
@@ -37,7 +47,7 @@ all need to be considered for everything we introduce)
 
 * Configurable linkification for per-inbox shorthands:
   "$gmane/123456" could be configured to expand to the
-  appropriate link pointing to the gmane.org list archives,
+  appropriate link pointing to the gmane.io list archives,
   likewise "[Bug #123456]" could be configured to expand to
   point to some project's bug tracker at http://example.com/bug/123456
 
@@ -65,10 +75,9 @@ all need to be considered for everything we introduce)
 * linkify thread skeletons better
   https://public-inbox.org/git/6E3699DEA672430CAEA6DEFEDE6918F4@PhilipOakley/
 
-* streaming Email::MIME replacement: currently we generate many
+* low-memory Email::MIME replacement: currently we generate many
   allocations/strings for headers we never look at and slurp
-  entire message bodies into memory.
-  (this is pie-in-the-sky territory...)
+  entire message bodies into memory.  GMime+Inline::C could work.
 
 * use REQUEST_URI properly for CGI / mod_perl2 compatibility
   with Message-IDs which include '%' (done?)
@@ -101,10 +110,6 @@ all need to be considered for everything we introduce)
 * imperfect scraper importers for obfuscated list archives
   (e.g. obfuscated Mailman stuff, Google Groups, etc...)
 
-* consider using HTTP::Date instead of Date::Parse, since we need the
-  former is capable of parsing RFC822-ish dates, used by Plack, and
-  the latter is missing from OpenBSD and maybe other distros.
-
 * improve performance and avoid head-of-line blocking on slow storage
 
 * share "git cat-file --batch" processes across inboxes to avoid
@@ -115,3 +120,26 @@ all need to be considered for everything we introduce)
 
 * support searching based on `git-patch-id --stable` to improve
   bidirectional mapping of commits <=> emails
+
+* linter to check validity of config file
+
+* linter option and WWW endpoint to graph relationships and flows
+  between inboxes, addresses maildirs, coderepos, etc...
+
+* pygments support - via Python script similar to `git cat-file --batch'
+  to avoid startup penalty.  pygments.rb (Ruby) can be inspiration, too.
+
+* highlighting + linkification for "git format-patch --interdiff" output
+
+* highlighting + linkification for "git format-patch --range-diff" output
+  (requires mirroring of git repos)
+
+* parse and allow (semi)automatic-mirroring of "git request-pull" output
+  for coderepos
+
+* configurable diff output for solver-generated blobs
+
+* figure out how search for messages with multiple Date: headers
+  should work (some wacky examples out there...)
+
+* support UUCP addresses for legacy archives