[openstack-dev] Bots and Their Effects: Gerrit, IRC, other

Chris Dent cdent+os at anticdent.org
Thu Mar 24 22:38:56 UTC 2016


On Thu, 24 Mar 2016, Jim Rollenhagen wrote:
> On Thu, Mar 24, 2016 at 09:56:16AM +0100, Thierry Carrez wrote:
>> So it feels like people write their own bot rather than contribute to the
>> already-existing infrastructure bots (statusbot and meetbot) -- is there a
>> reason for that, beyond avoiding the infra contribution process ?
>
> I tend to find that bots like this are a great little hackday project or
> a good way to pick up a new programming language, so maybe that's part
> of the reason. :)

That's certainly a factor: it's a way to do something that's
different, outside the norm or the routine. Flex the brain muscle.

But also I think there might be some other important reasons. I
state these a little bit tongue in cheek, but I think there's some
truth to it, and it's played a part in my thinking while putting
together purplerbot. To be clear, I have zero resistance to purplerbot
being run on openstack infrastructure if that's what people want[1],
I'm referring to it here because it seems a good foil for the issues
being discussed.

These are rules of thumb or cultural norms which sometimes feel
unfortunately alien in parts of OpenStack society:

* Technological monoliths are bad. Small tools that do one thing
   well are good. It's easier to keep the surface area of small
   things small, and as a result have strong and (human) memorable
   contracts.

   To use purplerbot as an example: it's a granular addressability
   and transclusion framework. That happens to be an IRC bot.

* Monocultures, centralisation and walled gardens are bad. There seems
   to be some kind of assumption that if there is a bot running in an
   openstack IRC channel it is an openstack thing and that its features
   should be added to existing infrastructure so that it can be considered
   reliable. Does that mean that the OpenStack project should run
   freenode? Manage its own IRC servers? Own the irc Python module?

   Again, using purplerbot as an example: The point of the bot is to
   allow and enable inter-channels transclusion (something "said" in
   channel A can be repeated by reference in channel B). Any channels
   that the bot listens to, not just openstack related ones[1]. It
   exists to traverse the boundaries between groups and media[2].

Sure there's the bus termination problem. If my server dies,
purplerbot dies. If that's a problem then we can put it on infra or
lots of people could run it (but [1]). Do we think there's a cost, in the
channel, to a few more bots that have very little output? Running
lots of redundant little things. Very cloud, that.

Up the thread Anita said "both meetbot and purplebot log channels
and host the archives in different locations". Given the light cost
of a bot being present, duplication of the log sounds like an added
benefit (safety in redundancy).

(Based on the early reactions from infra folk (in this thread[3]) I
hastily went ahead and fixed the code so that it can be installed from
pypi[4], can be reasonably run from configuration and is available
on github for forking, recording issues etc..)

So to summarize where I came from when I created a new bot:

* I had an idea to do a thing which I felt would address some
   problems I have in the OpenStack IRC environment. I threw
   an initial prototype together in a couple hours.

* I wouldn't have thought to add features to an existing bot. Given
   the lightweight process of both creating and running a bot it
   would never really occur to me to extend an existing one unless it
   was already clearly in the same domain.

* Since I have my own infra, it wouldn't occur to me to go to OpenStack
   infra to run my experiments until it was clear that it wasn't an
   experiment. All indicators are those folk have enough to do.

We want to enable these kinds of behaviors, don't we? Have itch, scratch
it, easily deploy it without needing to rely on or wait for the
administrators. That, to me, is kind of the whole point of OpenStack.
Are the technological and cultural monoliths that we've created making
it harder than it should be to do useful stuff?

[1] If the bot does eventually run on openstack infra, since presumably it
will only be running in openstack channels, I'll probably still run
my own version on my little pet because I want to use it to bridge
the several channels I live in, not just openstack ones.

[2] A transcluding IRC bot is just the start. The full blown version
of this idea is to also allow granular addressability on mailing
list archives and wiki pages, with transclusion from those static
media into IRC. Adding git commits would be pretty cool too.

[3] http://lists.openstack.org/pipermail/openstack-dev/2016-March/089509.html
[4] https://pypi.python.org/pypi/purpler
-- 
Chris Dent               (¨s¡ã¡õ¡ã)¨s¦à©ß©¥©ß            http://anticdent.org/
freenode: cdent                                         tw: @anticdent


More information about the OpenStack-dev mailing list