about summary refs log tree commit homepage
path: root/lib
DateCommit message (Collapse)
2016-06-23view: update git-send-email URL
I've setup my own mirror on https://git-htmldocs.bogomips.org/ since kernel.org is no longer updated, and I don't believe in endorsing commercial hosting sites or interests. Unfortunately, it still contains JavaScript and CSS, but it's generated by AsciiDoc. Oh well, it's all Free Software, at least. Junio C Hamano writes: > On Wed, Jun 22, 2016 at 12:00 PM, Eric Wong <e@80x24.org> wrote: > > Just wondering, who updates > > https://kernel.org/pub/software/scm/git/docs/ > > and why hasn't it been updated in a while? > > (currently it says Last updated 2015-06-06 at the bottom) > > Nobody. It is too cumbersome to use their upload tool to update many > files (it is geared towards updating a handful of tarballs at a time). ref: http://mid.gmane.org/20160622190018.GA786@dcvr.yhbt.net/ http://mid.gmane.org/CAPc5daUiUv-EEv7ouQ=K+Q8S64QVV5wn4H6+TuF0wLeo123K5Q@mail.gmail.com http://mid.gmane.org/20160622214811.GA19633@dcvr.yhbt.net
2016-06-22view: allow thread generation to EOF on errors
We want to ensure the actual message gets shown, and less important info does not destroy things.
2016-06-22view: fix topic threading when ghosts are present
This fixes a bug where a message replying to a ghost would accidentally be added to the wrong topic in the index/topic view. Before commit 76d8f68dc273e54809ad69cfe49e141003f790ef ("view: avoid recursion in topic index"), we would refuse to indent a topic which started with a ghost which hid the problem. Now we inform the user the thread started elsewhere.
2016-06-21view: support non-existent Subjects for permalink titles
Showing "(no subject)" seems like a common fallback for messages without a Subject header.
2016-06-21search: support Subject:-less messages
Some mailing lists allow empty Subject headers and we shall support searching and indexing them.
2016-06-21daemon: disable SIGWINCH unless explicitly daemonized
Checking stdin/stdout/stderr is not sufficient as the daemon without setsid can still be under the control of a terminal. Unfortunately this means systemd users cannot use SIGWINCH, either.
2016-06-21searchidx: merge old thread id from ghosts
We failed to discard old thread IDs when vivifying ghosts due to out-of-order message arrival. This rectifies the failure and will trigger a re-index.
2016-06-21searchidx: simplify ghost creation
Remove some worthless parameters and redundant no-ops to make the next (important) patch easier-to-review.
2016-06-21view: common thread walking interface
Since we have a common pattern, for walking threads, extract it into a function and reduce the amount of code we haev. This will make it easier to switch to an event-driven interface for getline, too.
2016-06-21view: avoid recursion in topic index
Recursion can cause problems, so do our best to avoid it even in the topic index.
2016-06-21searchview: remove recursion from thread view
As before, recursion can cause problems sooner than unshifting objects into the head of a queue.
2016-06-21view: remove recursion from expanded thread view
This should let us generate HTML for arbitrarily deep threads without blowing the stack. How it renders on the client side is another matter...
2016-06-21view: remove recursion from thread skeleton dump
This should help prevent OOM errors from arbitrarily deep threads and will make our streaming interface easier-to-implement.
2016-06-21view: remove dst parameter from thread skeleton dump
We can stuff this into the state hash to reduce stack size and hopefully improve readability.
2016-06-21view: remove upfx parameter from thread skeleton dump
This makes the string creation somewhat simpler hopefully makes the code easier-to-reason with.
2016-06-21spawn: improve error checking for fork failures
fork failures are unfortunately common when Xapian has gigabytes and gigabytes mmapped.
2016-06-20searchview: use inbox->msg_by_mid
This abstracts out the path lookup logic and and allow us potentially allow different heads in the same repository. We may also bypass slow tree name lookups in the future by storing the raw blob ID in the Xapian document. Followup-to: 4b313dc74bc9 ("feed: various object-orientation cleanups")
2016-06-20searchview: fix Atom dump
Ugh, and I will still need to write better tests for this (and a billion other things :x) Fixes: 4b313dc74bc9 ("feed: various object-orientation cleanups")
2016-06-20nntp: use lookup_mail instead of lookup_message
lookup_mail is safer since it won't inadvertently load ghosts.
2016-06-20www: improve topic view by scanning for ghosts
This should help avoid having too many fake top-level messages in the topic view since we only have a partial window for threading results.
2016-06-20address: remove quotes around names
They're needless for actual display once outside of email headers. But we will still show them when displaying mock headers in the permalink view.
2016-06-20inbox: move field population logic to initializer
Inboxes are normally created by Config, but having the population logic in Inbox should make it easier to mock for testing.
2016-06-20feed: various object-orientation cleanups
Favor Inbox objects as our primary source of truth to simplify our code. This increases our coupling with PSGI to make it easier to write tests in the future. A lot of this code was originally designed to be usable standalone without PSGI or CGI at all; but that might increase development effort.
2016-06-20mbox: avoid write dependency for streaming
Prefer to return strings instead, so Content-Length can be calculated for caching and such.
2016-06-20mbox: remove feed dependency
We do not need feed options there (or anywhere, hopefully).
2016-06-20feed: remove dependence on fh->write for streaming
We'll be switching to a getline/close response body to give the HTTP server more control when dealing with slow clients.
2016-06-20feed: avoid needless method dispatches on 404
We overuse streaming, here. Allow Content-Length to be calculated in this case.
2016-06-19search: reopen and retry on updated databases
This seems like a nasty thing which breaks downloads of large mailboxes.
2016-06-19http: constrain getline/close responses by time
This allows us to yield control to other clients gracefully if getline takes too long to generate a chunk. This is more expensive but should not cost a syscall on modern 64-bit systems.
2016-06-19http: avoid recursion when hitting write count limit
Use the EvCleanup::asap handler to reschedule our writes after yielding to other clients.
2016-06-19mbox: set gzip timestamp to the Unix epoch
This allows consistency between different invocations from roughly the same period and is no worse for caching any any of our existing HTML and Atom feeds. We cannot set the timestamp to the end date since messages may be added to the repository while we are iterating (and this streaming mechanism will pick them up).
2016-06-19watch_maildir: tighten up path checks
Only mark seen messages as spam, otherwise it could be too aggressive and cause problems or over training. We wouldn't want a wayward FIFO ruining our day, either :)
2016-06-19import: allow messages without subject
Because our WatchMaildir module is liberal about what it accepts, we can potentially have messages without a subject.
2016-06-19watch_maildir: spam removal support
We can support spam removal by watching a special "spam" Maildir, too. We can run public-inbox-learn as a separate step, and that command will be improved to support auto-learning, too.
2016-06-18watch_maildir: add scan test
This should be portable despite the intended use of this directory being non-portable.
2016-06-18emergency: avoid needless mkpath dependency
Be more explicit and slightly speed up tests.
2016-06-18daemon: be less misleading about graceful shutdown
We do not need to count the httpd.async object against our running client count, that is tied to the socket of the actual client. This prevents misleading sysadmins about connected clients during shutdown.
2016-06-18spawn: try to keep signals blocked in spawned child
While we only want to stop our daemons and gracefully destroy subprocesses, it is common for 'Ctrl-C' from a terminal to kill the entire pgroup. Killing an entire pgroup nukes subprocesses like git-upload-pack breaks graceful shutdown on long clones. Make a best effort to ensure git-upload-pack processes are not broken when somebody signals an entire process group. Followup-to: commit 37bf2db81bbbe114d7fc5a00e30d3d5a6fa74de5 ("doc: systemd examples should only kill one process")
2016-06-18view: consolidate per-message newline handling
We don't want to blindly append a trailing newline if the message ends in quoted text leading to a <span>, as a newline is already added to a <span>...
2016-06-18view: minor tweaks to reduce long lines
Fold addressee fields to better delimit destinations, reduce horizontal rule <hr /> to reduce scrolling, and use spaces to indent "git send-email" example.
2016-06-18view: introduce WwwStream interface
This will allow us to commonalize HTML generation in the future and is the start of moving existing HTML generation to a "pull" streaming model (from the existing "push" one). Using the getline/close pull model is superior to the existing $fh->write streaming as it allows us to throttle response generation based on backpressure from slow clients.
2016-06-17feed: split out top-of-page generation
This will eventually allow us to reuse code to generate a common header.
2016-06-17www: undefined query string values are empty strings
We use very short query parameters for search, so "&r" without a '=' implies truth for 'r' (relevance).
2016-06-17filter/base: reject more types by default
Try to be descriptive for some of these.
2016-06-17www: escape HTML in footer description
This isn't a security vulnerability since $GIT_DIR/description is controlled by the admin; but it causes the footer to misrender.
2016-06-17import: auto-update index when done
This prevents multiple update processes from stepping over each other while called under the lock, and also allows the new -watch process to update the index iff indexing was desired.
2016-06-17watch: quiet down rejected header matches
People may use this directive because they prefer to merge several mailing lists into one local mailbox, so there may be many messages and we should not needlessly clutter logs for this.
2016-06-17address: no commas in email addresses
We only do loose parsing, here, and I don't think I've seen a comma in a valid email address, so lets not support them.
2016-06-17search: increase limit for thread search
Some threads are easily over 100 messages, so the 50 limit is not enough. It is likely that 1000 messages is not enough, either, and we will need to tune our threading to handle more messages and supply options for configurability.
2016-06-17watch: introduce watch directive
This will allow users to run importers off existing mail accounts where they may not have access to run -mda. Currently, we only support Maildirs, but IMAP ought to be doable.