about summary refs log tree commit homepage
path: root/Documentation
DateCommit message (Collapse)
2021-10-26doc: tuning: additional notes for many inboxes
-extindex is the most important piece for dealing with many inboxes, so note it first. Also, frequent use of "git gc" is important for both loose object performance and reducing memory mappings.
2021-10-26lei p2q: document --uri, add examples
This is useful for users lacking in local storage. Also, referencing lei-add-external(1) seems to make less sense than referencing lei-q(1). We'll also start dropping years from the copyright statement to reduce future churn.
2021-10-23doc: lei-forget-search: fix option name in --prune description
Fixes: 6f8e16a266b30819 ("lei forget-search: support --prune=<local|remote>")
2021-10-22lei forget-search: support --prune=<local|remote>
Instead of: lei forget-search $OUTPUT && rm -r $OUTPUT we'll also allow a user to do: rm -r $OUTPUT && lei forget-search --prune This gives users flexibility to choose whatever flow is most natural to them.
2021-10-22doc: lei-overview: add CAVEATS section
IMAP and NNTP client performance absolutely sucks compared to what the read-only daemons are capable of...
2021-10-19doc: lei: describe lei-daemon-kill and upgrades
While we're at it, start dropping copyright years since it seems acceptable to not have them: https://www.linuxfoundation.org/blog/copyright-notices-in-open-source-software-projects/ Copyright years are also a noisy to update every year (maybe, just maybe, we'll make it to 2022...)
2021-10-19lei up: support --exclude=, --no-(external|remote|local)
These can be used to temporarily disable using certain externals in case of temporary network failure or mount point unavailability.
2021-10-16doc: lei: add manpages for remaining commands
At this point all of the current lei commands, aside from -help and -sucks, should be covered.
2021-10-16doc: lei: restore alphabetical order to some listings
Most the lei-related entries in txt2pre and Makefile.PL are in alphabetical order. Reorder the few that aren't. While at it, reflow the Makefile.PL entries in preparation for the entries that will be added in the next commit.
2021-10-16httpd/async: switch to level-triggered epoll
We'll save ourselves some code here and let the kernel do more work, instead.
2021-10-14lei: -d (--dir) and -O (only) shortcuts
`-d' seems like a non-brainer for --dir with inspect. I find myself using `--only' a bit, too, and `-O' seems like a reasonable shortcut for it.
2021-10-13fetch: support --try-remote/-T for alternate remote names
This allows -fetch to work out-of-the-box on using the grokmirror 2.x default of "_grokmirror".
2021-10-13doc: relnotes: note some recent improvements
2021-10-11doc: lei-refresh-mail-sync: drop repeated word
2021-10-09extindex: support --reindex --fast
This mode only checks history for missed/stale messages and doesn't attempt to reindex messages which are already indexed.
2021-10-05index: --reindex w/ --{since,until,before,after}
This lets administrators reindex specific time ranges according to git "approxidate" formats. These arguments are passed directly to underlying git-log(1) invocations and may still reach into old epochs. Since these options rely on git committer dates (which we infer from the most recent Received: header), they are not guaranteed to be strictly tied to git history and it's possible to over/under-reindex some messages. It's probably not a major problem in practice, though; reindexing a few extra messages is generally harmless aside from some extra device wear. Since this currently relies on git-log, these options do not affect -extindex, yet.
2021-10-02doc: lei-daemon: new manpage
In case users see "lei-daemon" in ps(1) or syslog and wonder. Helped-by: Kyle Meyer <kyle@kyleam.com>
2021-10-01doc: lei-security: some more updates
Virtual users will probably be used for read-write IMAP/JMAP support. The potential for various kernel/hardware bugs and attacks also needs to be highlighted.
2021-09-28doc: lei-rediff: grammar fixes for --drq and --dequote-only
2021-09-27lei rediff: add --drq and --dequote-only
More switches which can be useful for users who pipe from text editors. --drq can be helpful while writing patch review email replies, and perhaps --dequote-only, too.
2021-09-26net_reader: drop support for IgnoreSizeErrors option
Only the ->message_string method of Mail::IMAPClient uses it, and we have no intention of using ->message_string outside of tests.
2021-09-25doc: lei-rm: remove unnecessary -F values
-F is really only useful for distinguishing between mbox variants and single message/rfc822 files. URLs and directory-based formats can be auto-detected easily enough.
2021-09-25doc: lei: manpages for export-kw and refresh-mail-sync
Something is better than nothing.
2021-09-25doc: lei-index: remove --stdin, reword -F
lei-index really only works for Maildir, at the moment.
2021-09-25doc: lei-overview: implicit stdin, correct Inline::C notes
Implicit stdin based on standard input being a pipe or regular file is here to stay, so save users the trouble of typing '-' or '--stdin'. Inline::C is required as of commit 1d6e1f9a6a66 (lei: require Socket::MsgHdr or Inline::C, drop oneshot, 2021-05-26); but Socket::MsgHdr still gives a noticeable improvement in bash completion speed. Also, spell-out "MESSAGE-ID" since "MID" is actually not a common abbreviation ("MSGID" is used by RFC 3977 and several other RFCs, I recall).
2021-09-25doc: lei blob+rediff+p2q: add notes about git directory
Try to clarify these commands are intended to be useful for git-using (usually software) projects (and not the bare git repos we use internally). We'll also document some commonly useful git-diff switches in the lei-rediff man page to highlight the usefulness of the command.
2021-09-24clone|--mirror: support --epoch=RANGE for partial clones
Partial (v2) clones should be useful addition for users wanting to conserve storage while having fast access to recent messages. Continuing work started in 876e74283ff3 (fetch: ignore non-writable epoch dirs, 2021-09-17), this creates bare, read-only epoch git repos. These git repos have the remotes pre-configured, but does not fetch any objects. The goal is to allow users to set the writable bit on a previously-skipped epoch and start fetching it. Shell completion support may not be necessary given how short the epoch ranges are, here. Cc: Luis Chamberlain <mcgrof@kernel.org> Link: https://public-inbox.org/meta/20210917002204.GA13112@dcvr/T/#u
2021-09-21lei q: improve --limit behavior and progress
Avoid slurping gigantic (e.g. 100000) result sets into a single response if a giant limit is specified, and instead use 10000 as a window for the mset with a given offset. We'll also warn and hint towards about the --limit= switch when the estimated result set is larger than the default limit.
2021-09-21doc: lei-security: section for WIP auth methods
Lots of stuff out there that becomes a pain to setup configuration for and test...
2021-09-19doc: lei-config: document various knobs
It's still a work-in-progress, but the basic debug knob comes in handy for new users; as does proxy support.
2021-09-19doc: tuning: note git 2.33+, move libgit2 into Inline::C section
git 2.33+ contains important optimizations for the thousands-of-inboxes case. And combine the Inline::C stuff with libgit2, since our use of libgit2 requires Inline::C.
2021-09-18lei up: automatically use dt: for remote externals
Since we can't use maxuid for remote externals, automatically maintaining the last time we got results and appending a dt: range to the query will prevent HTTP(S) responses from getting too big. We could be using "rt:", but no stable release of public-inbox supports it, yet, so we'll use dt:, instead. By default, there's a two day fudge factor to account for MTA downtime and delays; which is hopefully enough. The fudge factor may be changed per-invocation with the --remote-fudge-factor=INTERVAL option Since different externals can have different message transport routes, "lastresult" entries are stored on a per-external basis.
2021-09-18doc: lei-lcat: document --stdin behavior
This is another feature I've found immensely useful, but I also wonder if I'm the only one who uses it.
2021-09-17doc: add lei-security(7) manpage
It seems like a good idea to have a manpage where somebody can quickly look up and address their concerns as to what to put on encrypted device/filesystem. And I probably would've designed lei around make(1) for parallelization if I didn't have to keep credentials off the FS :P
2021-09-17fetch: ignore non-writable epoch dirs
This will eventually be useful for maintaing partial mirrors. Keeping inline with the original public-inbox-fetch philosophy, there are no additional config files to manage: the user merely needs to remove write permissions to an $N.git directory to prevent it from being updated. Re-enabling updates just requires restoring write permission.
2021-09-16doc: glossary: add a reference for "epoch"
It comes up often enough and we need to ensure it's not confused with IMAP "slices".
2021-09-16doc: lei-mail-formats: add "eml" and expand on git things
While "eml" is not an output format, it seems worthy to document, here, since users are likely to have experience with *.patch files from "git format-patch".
2021-09-16www: support publicinbox.imapserver
This allows PublicInbox::WWW hosts to advertise the existence of IMAP servers in addition to NNTP servers.
2021-09-15fetch: support --exit-code switch
As noted in the new manpage entry, this is useful for avoiding public-inbox-index invocations when there's nothing to update. We use 127 to match "grok-pull", and also because it doesn't conflict with any of the current curl(1) exit codes.
2021-09-14doc: update authentication notes for lei
~/.netrc isn't used by default any more, and I'm not sure it's worthwhile to document the --netrc switch since it's rare for non-FTP clients to support. Followup-to: 9d11ed460ce113dd ("lei: do not read ~/.netrc by default") Reported-by: Konstantin Ryabitsev <konstantin@linuxfoundation.org>
2021-09-12new public-inbox-{clone,fetch} commands
Setting up and maintaining git-only mirrors of v2 inboxes is complex since multiple commands are required to clone and fetch into epochs. Unlike grokmirror, these commands do not require any configuration. Instead, they rely on existing git config files and work like "git clone --mirror" and "git fetch", respectively. Like grokmirror, they use manifest.js.gz, but only on a per-inbox basis so users won't have to clone every inbox of a large instance nor edit config files to include/exclude inboxes they're interested in.
2021-09-11lei q|lcat: support "-f reply" output format
When composing replies in "git format-patch" cover letters, I'd been relying on "lei q -f text ...", but that still requires several steps to make it suitable for composing a reply: * s/^/> / to quote the body * drop existing In-Reply-To+References * s/^Message-ID:/In-Reply-To:/; * add an attribute line ... "lei q -f reply" takes care of most of that and users will only have to trim "From " lines, unnecessary results and over-quoted text (and trimming is likely less error-prone than doing all the steps above manually). This should also be a good replacement for "git format-patch --in-reply-to=...", since copying long Message-IDs can be error-prone (and this lets you include quoted text in replies).
2021-09-10doc: lei-index manpage
It's a pretty incomplete command, so it's important to document its incompleteness.
2021-09-09lei-rm: add man page, support LeiInput args
-F/--in-format and --lock=TYPE(S) are easily supported by all classes using LeiInput.
2021-09-08doc: acknowledge the MMDF mailbox format
While I don't currently see a point in supporting MMDF, we'll still acknowledge it since mutt actually supports it. Expand a bit on MH while we're at it, since MH seems at least relevant.
2021-09-07doc: lei-*.pod: update to Tor v3 .onion address
We missed a few when new documentation came in, and there's no going back to v2 onions. Followup-to: 0b15dfc58ceaecdc ("treewide: update to v3 Tor onions")
2021-09-07lei up: support --all for IMAP folders
Since "lei up" is expected to be a heavily-used command, better support for IMAP seems like a reasonable idea. This is inefficient since we waste an IMAP(S) TCP connection since it dies when an auth-only LeiUp worker process dies, but it's better than not working at all, right now.
2021-09-01extindex: document --all and indexlevel=basic interaction
Cache is expensive, so help users save on storage by documenting this behavior.
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.