about summary refs log tree commit homepage
path: root/Documentation
DateCommit message (Collapse)
2021-08-19lei q: make --save the default
Since "lei up" is more often useful than not and incurs neglible overhead; enable --save by default and allow --no-save to work. This also fixes a long-standing when overwriting --output destinations with saved searches: dedupe data from previous searches are reset and no longer influences the new (changed) search, so results no longer go missing if two sequential invocations of "lei q --save" point to the same --output.
2021-07-25doc: lei-{p2q,rediff}: note implicit --stdin
lei actually uses implicit --stdin everywhere, but I thing these patch-related commands are the most common use of them.
2021-07-22init: allow arbitrary key-values via -c KEY=VALUE
This won't blindly append identical key=values, but allows specifying multiple, different key=value pairs as long as the values are different.
2021-07-22extsearch: support publicinbox.*.boost parameter
This behaves identically the lei external "boost" parameter in prioritizing raw messages for extindex. Relying exclusively on the config file order doesn't work well for mirrors since it's impossible to guarantee config file ordering via grokmirror hooks. Config file ordering remains the default if boost is unconfigured, or in case of ties. Note: I chose the name "boost" rather than "priority" or "rank" since I always get confused by whether higher or lower numbers take precedence when it comes to kernel scheduling. "weight" is also a part of Xapian API terminology, which we currently do not expose to configuration (but may in the future).
2021-07-20httpd: fix SIGHUP by invalidating cache on reload
Since we require separate PublicInbox::HTTPD instances for each listen socket address (in order to support {SERVER_<NAME|PORT>} for PSGI env), the old cache needed to be invalidated on rare app refreshes. SIGHUP has always been broken in -httpd (but not -imapd or -nntpd) due to this cache. Update the daemon documentation and 5.10.1-ize some bits while we're in the area.
2021-06-24doc: tuning: add a note about Linux sys.vm.max_map_count
git tends to die when mmap(2) fails on this limit, so let users know about it. Perhaps git could gracefully fallback.
2021-06-24favor git(1) rather than libgit2 for ExtSearch
While both git and libgit2 take around 16 minutes to load 100K alternates there's already a proposed patch to make git faster: <https://lore.kernel.org/git/20210624005806.12079-1-e@80x24.org/> It's also easier to patch and install git locally since the git.git build system defaults to prefix=$HOME and dealing with dynamic linking with libgit2 is more difficult for end users relying on Inline::C. libgit2 remains in use for the non-ALL.git case, but maybe it's not necessary (libgit2 is significantly slower than git in Debian 10 due to SHA-1 collision checking).
2021-05-17doc lei: update manpages with new options
2021-05-17doc lei: add manpages for new commands
[ew: MANIFEST: s/lei-cat/lei-lcat/]
2021-05-17doc lei: add manpage for convert
Link: https://public-inbox.org/meta/20210429015738.GA30172@dcvr/
2021-05-17doc lei q: add missing value for --lock
2021-05-17doc lei q: fix a typo
2021-05-17doc lei: resort lei-tag entries
The command was renamed in 54da988cfb049ea2 (lei tag: rename from "lei mark", 2021-03-30). Relocate its entries in txt2pre and Makefile.PL to restore alphabetical sorting.
2021-05-17doc lei blob: point to lei-q for shared options
lei-blob shares a good number of options with lei-q. Refer to lei-q's manpage rather than repeating the descriptions. Also, add lei-q to lei-blob's "see also" section. Link: https://public-inbox.org/meta/YGFImEcWX1mCJJwv@dcvr/
2021-05-17doc: split option variants into separate items
e226f18934eb7291 modified the lei-q manpage so that each variant of an option gets a dedicated =item to make L</--xyz> look nicer and to follow the Perl core documentation. Do the same for the other manpages. Note that this still leaves the variants of an option grouped in one scenario: when a list of options without descriptions is presented as a pointer to another location. Splitting the variants in that case would make it harder for the reader to tell what the distinct options are.
2021-05-17doc lei blob: avoid combined description of separate options
The next commit will update the manpages to split each option's variants into separate items. This change won't mix well with --oid-a, --path-a, and --path-b. These different options all share a single description, and, if each form is on its own line, the link between the variants of each option would no longer be clear. Use a dedicated description for each option to avoid confusion.
2021-05-04doc: ignore onion URLs for 80-column check
This failure was also passing under FreeBSD make + /bin/sh; so we also avoid the '&&' chain is avoided and use '>$@' as a separate line in the Makefile.
2021-05-04treewide: update to v3 Tor onions
v2 onions are insecure, deprecated and going away. v3 names are unfortunately longer and more difficult to remember, but should be more resistant to attack than v2 ones.
2021-04-30lei import: avoid IMAPTracker, use LeiMailSync more
IMAPTracker has a UNIQUE constraint on the `url' column, which may cause compatibility and/or rollback problems in attempting to deal with UIDVALIDITY changes. Having multiple sources of truth leads to confusion and bugs, so relying on LeiMailSync exclusively ought to simplify things. Furthermore, since LeiMailSync is only written to by LeiStore, it is safer in that it won't mark a UID or article as imported until git-fast-import has seen it, and the SQLite commit always happens after "done\n" is sent to fast-import. This mostly reverts recent commits to IMAPTracker to support lei, those are: 1) commit 7632d8f7590daf70c65d4270e750c36552fa9389 ("net_reader: restart on first UID when UIDVALIDITY changes") 2) commit 311a5d37ad275cd75b1e64d87827c4d13fe4bfab ("imap_tracker: prepare for use with lei"). This means public-inbox-watch will not change between 1.6 and 1.7: -watch stops synching a folder when UIDVALIDITY changes.
2021-04-28doc: lei q: split --output and --format, note "text"
I guess --format makes sense for stdout, after all; and I'm enjoying "-f text" quite a bit, so far.
2021-04-28doc: lei q: split =item aliases onto separate lines
It makes L</--augment> look nicer without resorting to L<--augment|/-a, --augment> and similarly verbose nastiness. Having each option as a separate =item (with a blank line in between each =item) seems to be the preferred style used within Perl core documentation (I used perlrun.pod as an example), so we'll follow Perl core style, here. This needs to be done for other manpages, at some point...
2021-04-28doc: lei: use /tmp for search results pathnames
This drives the point home about results being volatile and discardable.
2021-04-24doc: lei_design_notes: add a bit on WAL usage
2021-04-22lei import|convert: drop --no-kw aliases
Supporting --no-keywords and --no-flags aliases is harmful if users end up assuming "keywords:" and "flags:" are valid search prefixes (they're not).
2021-04-22lei import: --incremental default for NNTP and IMAP
No point in burning through bandwidth to import stuff we already saw. All this logic is shared with -watch but uses a different pathname for lei since it's tied to lei/store (and not a public-inbox).
2021-04-21doc: add lei_design_notes.txt and lei-store-format(5)
lei itself is a somewhat weird design, but lei/store is a fairly normal hybrid of extindex with v2-style storage.
2021-04-18doc config: mention obfuscation-related options
Obfuscation has been available since v1.0.0. Help those that want to use the feature figure out how.
2021-04-15doc: technical/whyperl: update w/ (good) news from PSC
It looks like stability and compatibility will prevail, after all.
2021-03-31doc: lei-overview: favor Maildir for mutt examples
mboxes are generally horrible for interactive read-write use due to locking. Describe our parallel behavior with mutt, since writing mail can take a long while and being able to read results as they're written is nice. We'll also use a gzipped mboxrd for the import example, since we can decompress gzipped mboxrds automatically, now.
2021-03-31doc: add lei-mail-formats(5) manpage
While plenty of online documentation exists, it's good to have a locally-available summary for users to look at offline. Fix a URL in Watch.pm while we're at it, too.
2021-03-30lei tag: rename from "lei mark"
I've decided "tag" is a better verb since it seems more widely-used term for associating metadata with data. Not only is it analogous to the "notmuch tag" command, but also makes sense when compared to tooling for manipulating metadata for non-mail data (e.g. audio metadata tags). There's even a Wikipedia entry for it: https://en.wikipedia.org/wiki/Tag_(metadata) whereas "mark" is used in the description, but has no entry of its own with regards to metadata.
2021-03-29doc: lei: update description, add warnings
Describing the design details and architecture doesn't seem appropriate for a section 1 manpage. We'll also add a warning about it being in the early stages.
2021-03-29doc: lei q: clarify default output as stdout
Seeing a plain "-" may be confusing, especially when we also support it for --stdin. Use the C<> POD directive to denote it as code, too.
2021-03-29doc: lei q: add warning for --output clobbering
The behavior matching mairix still frightens me a bit when it comes to supporting new users. On the other hand, I've rarely ever used --augment with mairix, so I still think the current (dangerous) behavior makes sense in the context of search results.
2021-03-29doc: lei q: drop NNTP from --output description
We only support NNTP as inputs for convert, import, and mark|tag. I'm not sure if supporting NNTP output is worth it, nor do we have a good way to test it.
2021-03-29doc config: don't render a to-do comment
In the public-inbox-config manpage, the match=domain item under publicinbox.wwwlisting has a to-do comment that gets rendered as "support showing cgit listing". That's potential confusing to readers, especially given that the "TODO" is dropped. Change the markup so that the comment isn't rendered.
2021-03-29doc lei overview: better explain routes into local store
2021-03-29doc lei overview: note that lei-init is usually unnecessary
cf. https://public-inbox.org/meta/20210325083207.GA30551@dcvr
2021-03-29doc lei: add manpages for new commands
2021-03-29doc lei: update manpages with new options
2021-03-29doc lei: don't render most to-do comments
The lei manpages have a number of to-dos, but with the exception of the lei-q's -tt warning, none of them seem worth displaying to the reader (and some might not be worth addressing at all).
2021-03-29doc lei: drop an unnecessary to-do comment
When a new command is implemented, it is probably clear that it should be added to lei.pod, but either way, having a to-do comment in lei.pod isn't likely to help.
2021-03-29doc lei: note --stdin shortcut in synopses
2021-03-29doc lei-q: fix typo in -tt description
2021-03-19doc: glossary: add missing over/back POD directives
Oops :x
2021-03-17lei_store: keywords => vmd (volatile metadata), prepare for labels
Since keywords and mailboxes (AKA labels) are separate things in JMAP; and only keywords can map reliably to Maildir and mbox; we'll keep them separate in our internal data representations, too. I initially wanted to call this just "meta" for "metadata", but that might be confused with our mailing list name. "metadata" is already used in Xapian's own API, to add another layer of confusion. "tags" was also considered, but probably confusing to notmuch users since our "labels" are analogous to "tags" in notmuch, and notmuch doesn't seem to cover "keywords" separately... So "vmd" it is, since we haven't used this particular three-letter-abbreviation anywhere before; and "volatile" seems like a good description of this metadata since everything else up to this point has been mostly WORM (write-once, read-many).
2021-03-11doc: update 1.7 release notes, tuning, TODO
Some stuff done, some stuff still needs doing.
2021-03-11doc: glossary: add information for dates and timestamps
These have been confusing to me in the past, too.
2021-03-10doc: start glossary for overlapping concepts
This is intended to keep track of concepts with different terms between NNTP, IMAP, config file, lei storage, and upcoming JMAP support.
2021-03-10doc: technical/data_structures: update for EOFpipe
ParentPipe no longer exists and was replaced by the more flexible EOFpipe.