]> Sergey Matveev's repositories - public-inbox.git/blobdiff - TODO
public-inbox 1.1.0-pre1
[public-inbox.git] / TODO
diff --git a/TODO b/TODO
index 3b6401f62062a2b88ff5b9c5b2b138b6ad3a5c01..c2727be44fba0665ddb6a9f80aaab5e7739f4280 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,22 +1,35 @@
 TODO items for public-inbox
 
-(Not in any particular order)
+(Not in any particular order, and
+performance, ease-of-setup, installation, maintainability, etc
+all need to be considered for everything we introduce)
+
+* general performance improvements, but without relying on
+  XS or compiled code any more than we currently do.
 
 * mailmap support (same as git) for remapping expired email addresses
 
 * 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.
+  Meaning users can run this without needing a full copy of the
+  archives in a git repository.
+
+* 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,
+  yet storing large amounts of data on computers without a
+  public IP behind a home Internet connection.
 
 * TLS support for various daemons (including STARTTLS for NNTP and POP3)
 
-* Unix socket support for HTTP and POP3 server for use behind reverse
-  proxies like nginx
+* NNTP COMPRESS extension (see innd)
+
+* Support more of RFC 3977 (NNTP)
 
 * Combined "super server" for NNTP/HTTP/POP3 to reduce memory overhead
 
-* Optional reply-to-list support for mirroring lists that want it :<
-  Reply-to-list encourages the existing list as a single-point-of-failure,
-  but having an extra mirror using public-inbox code is nice regardless.
+* Optional reply-to-nobody for dead lists.
 
 * Configurable linkification for per-inbox shorthands:
   "$gmane/123456" could be configured to expand to the
@@ -32,25 +45,45 @@ TODO items for public-inbox
   the links should point to an anchor tag within the same page,
   instead; giving the user options.
 
-* implement RFC 4685 (Atom message threading)
-
 * configurable constants (index limits, search results)
 
-* use tags as date-based skiplists for navigating history
-  (maybe not needed with Xapian support nowadays?)
+* handle messages with multiple Message-IDs (done for v2, doable for v1)
+
+* handle broken double-bracketed References properly (maybe)
+  and totally broken Message-IDs
+
+  cf.  https://public-inbox.org/git/20160814012706.GA18784@starla/
 
-* handle Xapian date range queries:
-  http://mid.gmane.org/20151005222157.GE5880@survex.com
+* portability to FreeBSD (and other Free Software *BSDs)
+  ugh... https://rt.cpan.org/Ticket/Display.html?id=116615
+  (IO::KQueue is broken with Danga::Socket)
 
-* Consider storing git blob ID in Xapian doc data to avoid ref
-  and tree lookups based on Message-Id.
+* EPOLLEXCLUSIVE for listen socket fairness across -httpd/nntpd
+  worker processes.
 
-* Allow in-place Xapian updates without clobbering the whole
-  index (versioning each doc data entry?) for big archives
+* improve documentation
+
+* linkify thread skeletons better
+  https://public-inbox.org/git/6E3699DEA672430CAEA6DEFEDE6918F4@PhilipOakley/
+
+* generate sample CSS for use with Stylish/dillo/etc
+
+* streaming 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...)
 
 * use REQUEST_URI properly for CGI / mod_perl2 compatibility
   with Message-IDs which include '%' (done?)
 
-* more test cases (use git fast-import to speed up creation)
+* more and better test cases (use git fast-import to speed up creation)
+
+* large mbox/Maildir/MH/NNTP spool import (see PublicInbox::Import)
+
+* Optionally allow indexing Xapian without positional information to
+  save space (but prevents "quoted phrase" searching).
+
+* Allow NNTP and more of PSGI code to work without Xapian
 
-* large mbox/Maildir/MH/NNTP spool import (use git fast-import)
+* Read-only WebDAV interface to the git repo so it can be mounted
+  via davfs2 or fusedav to avoid full clones.