threads / discuss / 29727

Announcing nntpgit

Subject: Announcing nntpgit

## tl;dr

5 messages between Feb 24, 2012 and Feb 27, 2012.

replies: 4people: 4as markdown or json

Jonathan Corbet· Feb 24, 2012, 20:39 UTC · lore

When kernel.org went down, it took the mainline kernel commits list with it. That had a fairly serious and unfortunate effect on my workflow, which, among other things, depends on knowing what's being merged. I hacked up various workarounds, but none of them were as useful or efficient.

Eventually it occurred to me that what I *really* wanted was the commit stream as an NNTP feed so I could read it in gnus along with most of the other lists I follow. The result was nntpgit, a small Python3 program that tracks repository branches and makes new commits available as "articles" to all comers. I've been working with it for a few weeks now and I'm quite happy; it works better for me than the old list did.

Should anybody wish to experiment with it, they can do so in two ways. First, the code is available (GPLv2) from:

	git://git.lwn.net/nntpgit.git

Alternatively, it's running on port 8119 on git.lwn.net. There are currently two "newsgroups": lwn.mainline for mainline commits, and lwn.networking for davem's networking tree. I expect to add others over time.

Be warned that this is very early stage software! It does what I need it to do and little else. I've not tested it with any newsreaders other than gnus, so the chances of interoperability problems with others are significant. I'd be happy to accept bug reports, though, and even happier to take patches. I hope it's useful to somebody.

jon
Junio C Hamano· Feb 24, 2012, 21:38 UTC · re: Jonathan Corbet · lore

Re: Announcing nntpgit

Jonathan Corbet <corbet@lwn.net> writes:
Show 22 quoted lines
> When kernel.org went down, it took the mainline kernel commits list with
> it. That had a fairly serious and unfortunate effect on my workflow,
> which, among other things, depends on knowing what's being merged.  I
> hacked up various workarounds, but none of them were as useful or
> efficient.
>
> Eventually it occurred to me that what I *really* wanted was the commit
> stream as an NNTP feed so I could read it in gnus along with most of the
> other lists I follow.  The result was nntpgit, a small Python3 program
> that tracks repository branches and makes new commits available as
> "articles" to all comers.  I've been working with it for a few weeks now
> and I'm quite happy; it works better for me than the old list did.
>
> Should anybody wish to experiment with it, they can do so in two ways.
> First, the code is available (GPLv2) from:
>
> 	git://git.lwn.net/nntpgit.git
>
> Alternatively, it's running on port 8119 on git.lwn.net.  There are
> currently two "newsgroups": lwn.mainline for mainline commits, and
> lwn.networking for davem's networking tree.  I expect to add others over
> time.
Neat.

This is something I wanted to write (or see somebody write so that I can use it ;-)) even before I became the maintainer of this project, as I practically live inside GNUS, but never got around to go beyond the design phase.

How do you handle message threading (References: and In-Reply-To:)?

Would a commit on the "mainline" (a rough approximation of it would be "log --first-parent" starting from the tip) form the discussion starter article, and any side branch that fork from them would be a discussion thread starting at the commit?

Jonathan Corbet· Feb 24, 2012, 21:43 UTC · re: Junio C Hamano · lore

Re: Announcing nntpgit

On Fri, 24 Feb 2012 13:38:33 -0800 Junio C Hamano <gitster@pobox.com> wrote:

Show 6 quoted lines
> How do you handle message threading (References: and In-Reply-To:)?
> 
> Would a commit on the "mainline" (a rough approximation of it would be
> "log --first-parent" starting from the tip) form the discussion starter
> article, and any side branch that fork from them would be a discussion
> thread starting at the commit?

There's really no threading at all at this point; it's just a linear series of commits-as-messages as provided by a vanilla "git log". I could certainly see trying to do something fancier, if it were useful, but it's not something I've thought about much yet.

Like I said, it's really young stuff :)
jon
Michael Haggerty· Feb 27, 2012, 21:02 UTC · re: Junio C Hamano · lore

Re: Announcing nntpgit

On 02/24/2012 10:38 PM, Junio C Hamano wrote:
Show 11 quoted lines
> This is something I wanted to write (or see somebody write so that I can
> use it ;-)) even before I became the maintainer of this project, as I
> practically live inside GNUS, but never got around to go beyond the design
> phase.
> 
> How do you handle message threading (References: and In-Reply-To:)?
> 
> Would a commit on the "mainline" (a rough approximation of it would be
> "log --first-parent" starting from the tip) form the discussion starter
> article, and any side branch that fork from them would be a discussion
> thread starting at the commit?
>From contrib/hooks/post-receive-email I've locally derived a Python

version that sends one email message per commit. It generates a thread of messages for each reference that was pushed, starting with a summary of how the reference was changed, and one followup email for each new commit added to that reference. In a threaded mail reader, this groups all of the changes to a reference due to a particular push in a thread that can easily be expanded, collapsed, or deleted as a group. I find this a convenient workflow.

I believe that NNTP threading works much the same way as email threading, so probably the same style could be used there. My script is still not published, though.

Michael
-- 
Michael Haggerty
mhagger@alum.mit.edu
http://softwareswirl.blogspot.com/
Andreas Schwab· Feb 25, 2012, 00:58 UTC · re: Jonathan Corbet · lore

Re: Announcing nntpgit

How about generating an RSS/ATOM feed, that is converted to nntp through gwene? :-)

Andreas.
-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

← back to recent threads