[openstack-dev] Bots and Their Effects: Gerrit, IRC, other
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,
I'm referring to it here because it seems a good foil for the issues
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
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. It
exists to traverse the boundaries between groups and media.
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 ). 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) I
hastily went ahead and fixed the code so that it can be installed from
pypi, 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?
 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.
 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.
Chris Dent (¨s¡ã¡õ¡ã)¨s¦à©ß©¥©ß http://anticdent.org/
freenode: cdent tw: @anticdent
More information about the OpenStack-dev