about summary refs log tree commit homepage
path: root/lib/PublicInbox/Config.pm
DateCommit message (Collapse)
2016-07-09view: add "infourl" for reply information
2016-07-09www: add configurable limiters
Currently only for git-http-backend use, this allows limiting the number of spawned processes per-inbox or by group, if there are multiple large inboxes amidst a sea of small ones. For example, a "big" repo limiter could be used for big inboxes: which would be shared between multiple repos: [limiter "big"] max = 4 [publicinbox "git"] address = git@vger.kernel.org mainrepo = /path/to/git.git ; shared limiter with giant: httpbackendmax = big [publicinbox "giant"] address = giant@project.org mainrepo = /path/to/giant.git ; shared limiter with git: httpbackendmax = big ; This is a tiny inbox, use the default limiter with 32 slots: [publicinbox "meta"] address = meta@public-inbox.org mainrepo = /path/to/meta.git
2016-07-02config: introduce each_inbox for iteration
This fills in the internal lookup hashes and simplifies callers.
2016-06-21spawn: improve error checking for fork failures
fork failures are unfortunately common when Xapian has gigabytes and gigabytes mmapped.
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-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.
2016-06-15drop dependency on File::Path::Expand
We still pull it in via Email::LocalDelivery, but that dependency will go away, soon.
2016-05-28remove redundant NewsGroup class
Most of its functionality is in the PublicInbox::Inbox class. While we're at it, we no longer auto-create newsgroup names based on the inbox name, since newsgroup names probably deserve some thought when it comes to hierarchy.
2016-05-28config: remove try_cat
It's moved into the Inbox module and we no longer use it in WWW
2016-05-27config: fix NewsWWW fallback for newsgroups in HTTP URLs
Oops, added a test to prevent regressions while we're at it.
2016-05-23config: use popen_rd when spawning `git config'
We may spawn this in a large server process, so be sure to take advantage of the optional vfork() support when for folks who set PERL_INLINE_DIRECTORY.
2016-05-21localize $/ in more places to avoid potential problems
This hopefully makes the intent of the code clearer, too. The the HTTP use of the numeric reference for getline caused problems in Git.pm, already.
2016-05-16config: allow taking an existing reference
This should make creating test cases easier and faster.
2016-05-16declare Inbox object for reusability
From the beginning, we've avoided objects here in favor of faster startup time; but it may not be worth it since a persistent httpd/nntpd is faster and -mda isn't hit as often.
2016-05-14rename most instances of "list" to "inbox"
A public-inbox is NOT necessarily a mailing list, but it could serve as an input point for zero, one, or infinite mailing lists :D
2016-02-29distinguish error messages intended for users vs developers
For error messages intended to show user error (e.g. giving invalid options), we add a newline ("\n") at the end to polluting the output with location information. However, for diagnosing non-user-triggered errors, we should show the location of where the error occured.
2016-02-28reduce calls to close unless error checks are needed
We can rely on timely auto-destruction based on reference counting; reducing the chance of redundant close(2) calls which may hit the wront FD. We do care about certain close calls (e.g. writing to a buffered IO handle) if we require error-checking for write-integrity. In other cases, let things go out-of-scope so it can be freed automatically after use.
2015-12-22config: hoist out common functions
These will be reused elsewhere.
2015-11-21config: allow underscore in section names
Apparently git allows them, and they're definitely alright in email addresses.
2015-11-20various internal documentation updates
Hopefully this gives new hackers a better overview of how the components relate to each other.
2015-10-03mda: support a 'filter=scrub' option for external lists
For list where we are not the primary archival entry point, defaulting to filter=scrub makes sense since their list conventions may be more tolerant of HTML and other crap than we are.
2015-09-06update copyright headers and email addresses
In the future, it should be possible to use this: git ls-files | UPDATE_COPYRIGHT_HOLDER='all contributors' \ UPDATE_COPYRIGHT_USE_INTERVALS=2 \ xargs /path/to/gnulib/build-aux/update-copyright
2014-04-30cgi: remove dependency on IPC::Run in CGI
We may not have PATH available on some servers (e.g. webrick) and must rely on the hardcoded system PATH. My installation of IPC::Run does not seem to work without PATH set in the env, however normal Perl "open" calls work fine.
2014-04-30config: avoid double-slash in expand_path output
It looks ugly in error messages to have redundant slashes.
2014-04-29config: use "git config --file" to avoid changing %ENV
%ENV changes do not propagate by default under a mod_perl2 environment, and we might as well work towards being thread-safe.
2014-04-21config: use description file for gitweb
Do not repeat ourselves, just use the same description file gitweb uses to avoid surprising users.
2014-04-14derive -primary_address in config
This may be useful for generating List-Id headers and HTML pages.
2014-04-11config: support multiple addresses for a inbox
This makes it possible to gradually migrate to new address in case of list name changes, and is one step closer to operating in "stealth hijack mode" :)
2014-04-09config: include listname on lookup
We will be using it when setting GIT_COMMITTER_NAME
2014-04-05remove failrepo config
We will just use the fallback in Email::Filter to reduce configuration knobs. Failed messages are failed messages, do not classify them beyond that.
2014-04-05config: add shortcut for retrieving elements
Hopefully this makes for less ad-hoc hash access in case our config format changes.
2014-04-05flesh out MDA and simplify config setup
We will be reusing the config parsing code for the CGI script, too.
2014-03-28config: revamp API and implement lookup
2014-02-07trivial config module for dumping config
We'll be using git config files after all...