]> Sergey Matveev's repositories - public-inbox.git/blobdiff - HACKING
imap+nntp: share COMPRESS implementation
[public-inbox.git] / HACKING
diff --git a/HACKING b/HACKING
index 859745ef3151c642c22623b6ce31327f3f563e67..1070d3ff341fc6bc7f78e8a43078718f5e9a1094 100644 (file)
--- a/HACKING
+++ b/HACKING
@@ -4,7 +4,7 @@ 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
@@ -32,7 +32,7 @@ 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 repositories.
+remains supported for v1 inboxes.
 
 In general, we favor mature and well-tested old things rather than
 the shiny new.
@@ -40,8 +40,8 @@ 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
@@ -56,6 +56,54 @@ requirements.
 See design_www.txt and design_notes.txt in the Documentation/
 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
+---------------------------------------------
+
+Optional packages 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
+------------
+
+The `make test' target provided by MakeMaker does not run in
+parallel.  Our `make check' target supports parallel runs, and
+it also creates a `.prove' file to optimize `make check-run'.
+
+The prove(1) command (distributed with Perl) may also be used
+for finer-grained testing: prove -bvw t/foo.t
+
+If using a make(1) (e.g. GNU make) with `include' support, the
+`config.mak' Makefile snippet can be used to set environment
+variables such as PERL_INLINE_DIRECTORY and TMPDIR.
+
+With PERL_INLINE_DIRECTORY set to enable Inline::C support and
+TMPDIR pointed to a tmpfs(5) mount, `make check-run' takes 6-10s
+(load-dependent) on a busy workstation built in 2010.
+
 Perl notes
 ----------