diff options
Diffstat (limited to 'HACKING')
-rw-r--r-- | HACKING | 48 |
1 files changed, 36 insertions, 12 deletions
@@ -4,10 +4,10 @@ hacking public-inbox Send all patches and "git request-pull"-formatted emails to our self-hosting inbox at meta@public-inbox.org It is archived at: https://public-inbox.org/meta/ -and http://hjrcffqmbrq6wope.onion/meta/ (using Tor) +and http://4uok3hntl7oi7b4uf4rtfwefqeexfzil2w6kgk2jn5z2f764irre7byd.onion/meta/ (using Tor) Contributions are email-driven, just like contributing to git -itself or the Linux kernel; however anonymous and pseudonymous +itself or the Linux kernel; nevertheless, anonymous and pseudonymous contributions will always be welcome. Please consider our goals in mind: @@ -15,24 +15,23 @@ Please consider our goals in mind: Decentralization, Accessibility, Compatibility, Performance These goals apply to everyone: users viewing over the web or NNTP, -sysadmins running public-inbox, and other hackers working public-inbox. +sysadmins running public-inbox, and other hackers working on public-inbox. We will reject any feature which advocates or contributes to any -particular instance of a public-inbox becoming a single point of failure. +particular instance of public-inbox becoming a single point of failure. Things we've considered but rejected include: * exposing article serial numbers outside of NNTP * allowing readers to inject metadata (e.g. votes) We care about being accessible to folks with vision problems and/or -lack the computing resources to view so-called "modern" websites. +lacking the computing resources to view so-called "modern" websites. This includes folks on slow connections and ancient browsers which may be too difficult to upgrade due to resource demands. Only depend on Free Software packages which exist in the "main" -section of Debian "stable" distribution. That is Debian 9.x -("stretch") as of this writing, but "oldstable" (8.x, "jessie") -remains supported for v1 inboxes. +section of Debian "stable" distribution; but continue to support +any LTS distros within their support window. In general, we favor mature and well-tested old things rather than the shiny new. @@ -40,13 +39,13 @@ the shiny new. Avoid relying on compiled modules too much. Even if it is Free, compiled code makes packages more expensive to audit, build, distribute and verify. public-inbox itself will only be implemented -in scripting languages (currently Perl 5) and optional JIT-compiled C -(via Inline::C) +in scripting languages (currently Perl 5) and optional +Just-Ahead-of-Time-compiled C (via Inline::C) Do not recurse on user-supplied data. Neither Perl or C handle deep recursion gracefully. See lib/PublicInbox/SearchThread.pm and lib/PublicInbox/MsgIter.pm for examples of non-recursive -alternatives to previously-recursive algorithms. +alternatives to previously recursive algorithms. Performance should be reasonably good for server administrators, too, and we will sacrifice features to achieve predictable performance. @@ -59,6 +58,31 @@ directory for design decisions made during development. See Documentation/technical/ in the source tree for more details on specific topics, in particular data_structures.txt +Optional packages for testing and development +--------------------------------------------- + +- Plack::Test deb: libplack-test-perl + pkg: p5-Plack + rpm: perl-Plack-Test + +- Plack::Test::ExternalServer deb: libplack-test-externalserver-perl + pkg: p5-Plack-Test-ExternalServer + +- Test::Simple deb: perl-modules-5.$MINOR + pkg: perl5 + rpm: perl-Test-Simple + +- XML::TreePP deb: libxml-treepp-perl + pkg: p5-XML-TreePP + rpm: perl-XML-TreePP + +Email::MIME is optional as of public-inbox v1.5.0 but still +used for maintainer comparison tests: + +* Email::MIME deb: libemail-mime-perl + pkg: p5-Email-MIME + rpm: perl-Email-MIME + Faster tests ------------ @@ -81,6 +105,6 @@ Perl notes ---------- * \w, \s, \d character classes all match Unicode characters; - so write out class ranges (e.g "[0-9]") if you only intend to + so write out class ranges (e.g., "[0-9]") if you only intend to match ASCII. Do not use the "/a" (ASCII) modifier, that requires Perl 5.14 and we're only depending on 5.10.1 at the moment. |