user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
* [PATCH 0/6] doc updates and such
@ 2020-01-01  9:57 Eric Wong
  2020-01-01  9:57 ` [PATCH 1/6] doc: allow NEWS file to be built without Plack::Util Eric Wong
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Eric Wong @ 2020-01-01  9:57 UTC (permalink / raw)
  To: meta

More frequent releases should be possible, now that we can just
let cgit serve our tar.gz.  Maybe Plack/PSGI can be totally
optional, even for WWW...  The closure purge certainly brought
us in that direction :>

Eric Wong (6):
  doc: allow NEWS file to be built without Plack::Util
  build: remove NEWS from dist-git target
  doc: release notes: set Date for 1.2.0, start 1.3.0
  doc/txt2pre: flush output before utime()
  build: fix xapian-* manpage generation
  doc: fix a few spelling errors in user-facing docs

 Documentation/RelNotes/v1.2.0.eml     |  9 +++++
 Documentation/RelNotes/v1.3.0.eml     | 50 +++++++++++++++++++++++++++
 Documentation/include.mk              | 23 ++++++------
 Documentation/mknews.perl             | 30 ++++++++++++----
 Documentation/public-inbox-config.pod |  2 +-
 Documentation/public-inbox-nntpd.pod  |  2 +-
 Documentation/txt2pre                 |  1 +
 MANIFEST                              |  1 +
 Makefile.PL                           |  3 +-
 lib/PublicInbox/Import.pm             |  2 +-
 10 files changed, 100 insertions(+), 23 deletions(-)
 create mode 100644 Documentation/RelNotes/v1.3.0.eml

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/6] doc: allow NEWS file to be built without Plack::Util
  2020-01-01  9:57 [PATCH 0/6] doc updates and such Eric Wong
@ 2020-01-01  9:57 ` Eric Wong
  2020-01-01  9:57 ` [PATCH 2/6] build: remove NEWS from dist-git target Eric Wong
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Eric Wong @ 2020-01-01  9:57 UTC (permalink / raw)
  To: meta

Plack pulls in a lot of dependencies which can be time-consuming
to install.  It should not be necessary for somebody who just
wants to run -mda/-watch and -nntpd and forego WWW.
---
 Documentation/mknews.perl | 30 +++++++++++++++++++++++-------
 1 file changed, 23 insertions(+), 7 deletions(-)

diff --git a/Documentation/mknews.perl b/Documentation/mknews.perl
index 5ede3696..3efabdb5 100755
--- a/Documentation/mknews.perl
+++ b/Documentation/mknews.perl
@@ -7,9 +7,9 @@
 use strict;
 use PublicInbox::MIME;
 use PublicInbox::View;
-use Plack::Util;
 use PublicInbox::MsgTime qw(msg_datestamp);
 use PublicInbox::MID qw(mids mid_escape);
+END { $INC{'Plack/Util.pm'} and warn "$0 should not have loaded Plack::Util\n" }
 my $dst = shift @ARGV or die "Usage: $0 <NEWS|NEWS.atom|NEWS.html>";
 
 # newest to oldest
@@ -34,11 +34,11 @@ if ($dst eq 'NEWS') {
 	}
 } elsif ($dst eq 'NEWS.atom' || $dst eq 'NEWS.html') {
 	open $out, '>', $tmp or die;
-	my $ibx = Plack::Util::inline_object(
-		description => sub { 'public-inbox releases' },
-		over => sub { undef },
-		search => sub { 1 }, # for WwwStream:_html_top
-		base_url => sub { "$base_url/" },
+	my $ibx = My::MockObject->new(
+		description => 'public-inbox releases',
+		over => undef,
+		search => 1, # for WwwStream:_html_top
+		base_url => "$base_url/",
 	);
 	$ibx->{-primary_address} = $addr;
 	my $ctx = {
@@ -102,7 +102,7 @@ sub mime2html {
 sub html_start {
 	my ($out, $ctx) = @_;
 	require PublicInbox::WwwStream;
-	$ctx->{www} = Plack::Util::inline_object(style => sub { '' });
+	$ctx->{www} = My::MockObject->new(style => '');
 	my $www_stream = PublicInbox::WwwStream->new($ctx);
 	print $out $www_stream->_html_top, '<pre>' or die;
 }
@@ -144,3 +144,19 @@ sub mime2atom  {
 		print $out $str or die;
 	}
 }
+package My::MockObject;
+use strict;
+our $AUTOLOAD;
+
+sub new {
+	my ($class, %values) = @_;
+	bless \%values, $class;
+}
+
+sub AUTOLOAD {
+	my ($self) = @_;
+	my $attr = (split(/::/, $AUTOLOAD))[-1];
+	$self->{$attr};
+}
+
+1;

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/6] build: remove NEWS from dist-git target
  2020-01-01  9:57 [PATCH 0/6] doc updates and such Eric Wong
  2020-01-01  9:57 ` [PATCH 1/6] doc: allow NEWS file to be built without Plack::Util Eric Wong
@ 2020-01-01  9:57 ` Eric Wong
  2020-01-01  9:57 ` [PATCH 3/6] doc: release notes: set Date for 1.2.0, start 1.3.0 Eric Wong
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Eric Wong @ 2020-01-01  9:57 UTC (permalink / raw)
  To: meta

mknews doesn't require any optional dependencies a user wouldn't
normally have.  We can save storage and bandwidth costs by
letting cgit serve the exact tar.gz which "git archive | gzip -n"
generates.
---
 Documentation/include.mk | 23 +++++++++++------------
 1 file changed, 11 insertions(+), 12 deletions(-)

diff --git a/Documentation/include.mk b/Documentation/include.mk
index f2605346..0229bf40 100644
--- a/Documentation/include.mk
+++ b/Documentation/include.mk
@@ -109,15 +109,14 @@ clean-doc:
 clean :: clean-doc
 
 # No camel-cased tarballs or pathnames which MakeMaker creates,
-# this may not always be a Perl project.
-git-dist :: ver = $(shell git describe |sed -ne 's/v//p')
-git-dist :: pkgpfx := public-inbox-$(ver)
-git-dist :: NEWS
-	git archive --prefix=$(pkgpfx)/ --format=tar HEAD^{tree} >$(pkgpfx).tar
-	mkdir -p $(pkgpfx)
-	cp NEWS $(pkgpfx)/NEWS
-	$(TAR) rf $(pkgpfx).tar $(pkgpfx)/NEWS
-	$(RM) $(pkgpfx)/NEWS
-	rmdir $(pkgpfx)
-	gzip -9 $(pkgpfx).tar
-	@echo $(pkgpfx).tar.gz created
+# this may not always be a Perl project.  This should match what
+# cgit generate, since git maintainers ensure git-archive has
+# stable tar output
+DIST_TREE = HEAD^{tree}
+DIST_VER =
+git-dist :
+	ver=$$(git describe $(DIST_VER) | sed -ne s/v//p); \
+	pkgpfx=public-inbox-$$ver; \
+	git archive --prefix=$$pkgpfx/ --format=tar $(DIST_TREE) \
+		| gzip -n >$$pkgpfx.tar.gz; \
+	echo $$pkgpfx.tar.gz created

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 3/6] doc: release notes: set Date for 1.2.0, start 1.3.0
  2020-01-01  9:57 [PATCH 0/6] doc updates and such Eric Wong
  2020-01-01  9:57 ` [PATCH 1/6] doc: allow NEWS file to be built without Plack::Util Eric Wong
  2020-01-01  9:57 ` [PATCH 2/6] build: remove NEWS from dist-git target Eric Wong
@ 2020-01-01  9:57 ` Eric Wong
  2020-01-01  9:57 ` [PATCH 4/6] doc/txt2pre: flush output before utime() Eric Wong
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Eric Wong @ 2020-01-01  9:57 UTC (permalink / raw)
  To: meta

Seems like a lot's happened since 1.2, but it's mostly
internal stuff...
---
 Documentation/RelNotes/v1.2.0.eml |  9 ++++++
 Documentation/RelNotes/v1.3.0.eml | 50 +++++++++++++++++++++++++++++++
 MANIFEST                          |  1 +
 3 files changed, 60 insertions(+)
 create mode 100644 Documentation/RelNotes/v1.3.0.eml

diff --git a/Documentation/RelNotes/v1.2.0.eml b/Documentation/RelNotes/v1.2.0.eml
index 2eeb0de0..d8b8d2b6 100644
--- a/Documentation/RelNotes/v1.2.0.eml
+++ b/Documentation/RelNotes/v1.2.0.eml
@@ -1,3 +1,5 @@
+From e@80x24.org Sun Nov  3 03:12:41 2019
+Date: Sun, 3 Nov 2019 03:12:41 +0000
 From: Eric Wong <e@80x24.org>
 To: meta@public-inbox.org
 Subject: [ANNOUNCE] public-inbox 1.2.0
@@ -73,5 +75,12 @@ for their sponsorship and support over the past two years.
 
 https://public-inbox.org/releases/public-inbox-1.2.0.tar.gz
 
+SHA256: dabc735a5cfe396f457ac721559de26ae38abbaaa74612eb786e9e2e1ca94269
+
+  Chances are: You don't know me and never will.  Everybody else
+  can verify the tarball and sign a reply saying they've
+  verified it, instead.  The more who do this, the better, but
+  don't trust the BOFH :P
+
 See archives at https://public-inbox.org/meta/ for all history.
 See https://public-inbox.org/TODO for what the future holds.
diff --git a/Documentation/RelNotes/v1.3.0.eml b/Documentation/RelNotes/v1.3.0.eml
new file mode 100644
index 00000000..11806ccd
--- /dev/null
+++ b/Documentation/RelNotes/v1.3.0.eml
@@ -0,0 +1,50 @@
+From: Eric Wong <e@80x24.org>
+To: meta@public-inbox.org
+Subject: [WIP] public-inbox 1.3.0
+Content-Type: text/plain; charset=utf-8
+
+Many internal improvements to improve the developer experience
+and long-term maintainability.
+
+Many of the internal improvements focused on being able to avoid
+Perl startup time in tests.  "make check" now runs about 50%
+faster than before, and the new "make check-run" can be around
+30% faster after being primed by "make check".
+
+Most closures (anonymous subroutines) are purged from the
+-nntpd, -httpd and WWW code paths to make checking for memory
+leaks easier.
+
+* documentation now builds on BSD make
+
+* Date::Parse (TimeDate CPAN distribution) is now optional, allowing
+  installation from OpenBSD systems via "pkg".
+
+* the work-in-progress Xapian.pm SWIG bindings are now supported
+  in addition to the traditional Search::Xapian XS bindings.
+  Only SWIG bindings are packaged for OpenBSD.
+
+* IPC::Run is no longer used in tests
+
+* improved internal error checking and reporting in numerous places
+  
+* PublicInbox::WWW
+  - "nested" search results page now shows relevancy percentages
+  - solver works on "-U0" patches using "git apply --unidiff-zero"
+  - raw HTML no longer shown inline in multipart/alternative messages
+    (v1.2.0 regression)
+
+* public-inbox-httpd / public-inbox-nntpd:
+  - MSG_MORE used consistently in long responses
+  - fixed IO::KQueue usage on *BSDs
+
+* public-inbox-watch
+  - avoid memory leak from cyclic reference on SIGHUP
+  - fix documentation of publicinboxwatch.watchspam
+
+Release tarballs will be available for download at
+
+	https://public-inbox.org/public-inbox.git
+
+See archives at https://public-inbox.org/meta/ for all history.
+See https://public-inbox.org/TODO for what the future holds.
diff --git a/MANIFEST b/MANIFEST
index f649bbef..59716adf 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -6,6 +6,7 @@ Documentation/.gitignore
 Documentation/RelNotes/v1.0.0.eml
 Documentation/RelNotes/v1.1.0-pre1.eml
 Documentation/RelNotes/v1.2.0.eml
+Documentation/RelNotes/v1.3.0.eml
 Documentation/dc-dlvr-spam-flow.txt
 Documentation/design_notes.txt
 Documentation/design_www.txt

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 4/6] doc/txt2pre: flush output before utime()
  2020-01-01  9:57 [PATCH 0/6] doc updates and such Eric Wong
                   ` (2 preceding siblings ...)
  2020-01-01  9:57 ` [PATCH 3/6] doc: release notes: set Date for 1.2.0, start 1.3.0 Eric Wong
@ 2020-01-01  9:57 ` Eric Wong
  2020-01-01  9:57 ` [PATCH 5/6] build: fix xapian-* manpage generation Eric Wong
  2020-01-01  9:57 ` [PATCH 6/6] doc: fix a few spelling errors in user-facing docs Eric Wong
  5 siblings, 0 replies; 7+ messages in thread
From: Eric Wong @ 2020-01-01  9:57 UTC (permalink / raw)
  To: meta

Otherwise our utime() change is overridden when the flush
happens at exit.
---
 Documentation/txt2pre | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/txt2pre b/Documentation/txt2pre
index 7cab0fa2..cb6a7613 100755
--- a/Documentation/txt2pre
+++ b/Documentation/txt2pre
@@ -22,6 +22,7 @@ print '<html><head>',
   qq(<meta\nhttp-equiv="Content-Type"\ncontent="text/html; charset=utf-8"\n/>),
   "<title>$title</title>",
   "</head><body><pre>",  $str , '</pre></body></html>';
+STDOUT->flush;
 
 # keep mtime on website consistent so clients can cache
 if (-f STDIN && -f STDOUT) {

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 5/6] build: fix xapian-* manpage generation
  2020-01-01  9:57 [PATCH 0/6] doc updates and such Eric Wong
                   ` (3 preceding siblings ...)
  2020-01-01  9:57 ` [PATCH 4/6] doc/txt2pre: flush output before utime() Eric Wong
@ 2020-01-01  9:57 ` Eric Wong
  2020-01-01  9:57 ` [PATCH 6/6] doc: fix a few spelling errors in user-facing docs Eric Wong
  5 siblings, 0 replies; 7+ messages in thread
From: Eric Wong @ 2020-01-01  9:57 UTC (permalink / raw)
  To: meta

extman.perl requires the name of its target
---
 Makefile.PL | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/Makefile.PL b/Makefile.PL
index 0f50a658..e9e4e2ab 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -71,7 +71,8 @@ $v->{xdocs} = [ map { "Documentation/.x/.$_.txt" } @xman ];
 $v->{xdocs_html} = [ map { "Documentation/.x/.$_.html" } @xman ];
 for (@{$v->{xdocs}}) {
 	$t->{"$_ : | Documentation/.x"} = [
-		'$(PERL) -w Documentation/extman.perl >$@',
+		'$(PERL) -w Documentation/extman.perl $@ >$@+',
+		'mv $@+ $@'
 	];
 	my $html = $_;
 	$html =~ s/\.txt\z/.html/;

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 6/6] doc: fix a few spelling errors in user-facing docs
  2020-01-01  9:57 [PATCH 0/6] doc updates and such Eric Wong
                   ` (4 preceding siblings ...)
  2020-01-01  9:57 ` [PATCH 5/6] build: fix xapian-* manpage generation Eric Wong
@ 2020-01-01  9:57 ` Eric Wong
  5 siblings, 0 replies; 7+ messages in thread
From: Eric Wong @ 2020-01-01  9:57 UTC (permalink / raw)
  To: meta

Found by codespell, there's a few more in comments and some
debatable ones, but user-facing stuff is more important.
---
 Documentation/public-inbox-config.pod | 2 +-
 Documentation/public-inbox-nntpd.pod  | 2 +-
 lib/PublicInbox/Import.pm             | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/Documentation/public-inbox-config.pod b/Documentation/public-inbox-config.pod
index 1e7cb845..1825ce05 100644
--- a/Documentation/public-inbox-config.pod
+++ b/Documentation/public-inbox-config.pod
@@ -167,7 +167,7 @@ interface are displayed.
 
 A list of comma-delimited email addresses may be specified.
 This can be useful for dedicated inboxes for bot emails, but
-discussion happens on a seperate mailing list/inbox.
+discussion happens on a separate mailing list/inbox.
 
 Mirrors of existing centralized mailing lists may use ":list"
 here to redirect mail only to the configured inbox address.
diff --git a/Documentation/public-inbox-nntpd.pod b/Documentation/public-inbox-nntpd.pod
index 4214fd75..4757b691 100644
--- a/Documentation/public-inbox-nntpd.pod
+++ b/Documentation/public-inbox-nntpd.pod
@@ -49,7 +49,7 @@ automatically gets STARTTLS support.
 
 =item --key /path/to/key
 
-The default private TLS certicate key for optional STARTTLS and NNTPS
+The default private TLS certificate key for optional STARTTLS and NNTPS
 support if the C<key> option is not given with C<--listen>.  The private
 key may concatenated into the path used by C<--cert>, in which case this
 option is not needed.
diff --git a/lib/PublicInbox/Import.pm b/lib/PublicInbox/Import.pm
index 34f7d122..20669ab9 100644
--- a/lib/PublicInbox/Import.pm
+++ b/lib/PublicInbox/Import.pm
@@ -623,7 +623,7 @@ PublicInbox::Import - message importer for public-inbox v1 inboxes
 
 version 1.0
 
-=head1 SYNOPSYS
+=head1 SYNOPSIS
 
 	use Email::MIME;
 	use PublicInbox::Git;

^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-01-01  9:57 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-01  9:57 [PATCH 0/6] doc updates and such Eric Wong
2020-01-01  9:57 ` [PATCH 1/6] doc: allow NEWS file to be built without Plack::Util Eric Wong
2020-01-01  9:57 ` [PATCH 2/6] build: remove NEWS from dist-git target Eric Wong
2020-01-01  9:57 ` [PATCH 3/6] doc: release notes: set Date for 1.2.0, start 1.3.0 Eric Wong
2020-01-01  9:57 ` [PATCH 4/6] doc/txt2pre: flush output before utime() Eric Wong
2020-01-01  9:57 ` [PATCH 5/6] build: fix xapian-* manpage generation Eric Wong
2020-01-01  9:57 ` [PATCH 6/6] doc: fix a few spelling errors in user-facing docs Eric Wong

Code repositories for project(s) associated with this public inbox

	https://80x24.org/public-inbox.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).