Jump to content

Ircstream

From Wikitech

Ircstream is an IRC service for broadcasting recent changes events from Wikimedia wikis. It was created in 2024 as new backend for irc.wikimedia.org and is developed by Faidon at https://github.com/paravoid/ircstream

Service

The service is currently hosted on irc1003.wikimedia.org and irc2003.wikimedia.org. Events are broadcasted from Wikikube pods (and a handful of remaining baremetal MediaWiki appservers) via UDP packets sent to port 9390. The ircstream.wikimedia.org CNAME points to the currently active server.

Administration

Adding/removing hosts

Two steps are needed to add/remove ircstream servers in the Mediawiki Wikikube config:

  1. The network policies for wikikube need to be updated to, e.g. https://gerrit.wikimedia.org/r/c/operations/deployment-charts/+/1076730
  2. The mediawiki-config needs to be updated to reference the nodes, e.g. https://gerrit.wikimedia.org/r/c/operations/mediawiki-config/+/1050261

Updating the Debian package

The upstream repository includes a debian/ directory, so it's a simple rebuild of what's shipped there.

Use

We now have a a vastly superior EventStreams service providing machine-readable push notifications over HTTP in JSON format at https://stream.wikimedia.org/v2/stream/recentchange, but until the key consumers of the IRC recent changes feed have migrated, this old service remains vital. No new services should use this service.

Bots still using the legacy setup

Overview of legacy setup bots
Bot name Description Homepage Confirmed to actively consume the IRC feed If so, bug for eventstream port
ClueBot ClueBot NG is an anti-vandalism bot that tries to detect and revert vandalism quickly and automatically https://github.com/cluebotng/bot/ and https://github.com/cluebotng/bot/
COIBot COIBot is a bot that tries to track edits that are made by users who may have a conflict of interest https://meta.wikimedia.org/wiki/User:COIBot/COIBot
CVNBot CVNBot (previously known as SWMTBot) is the main IRC bot software used by the Countervandalism Network to interpret recent changes streams and provide a feed on IRC for patrollers to work from m:CVNBot (gerrit) (phab) Yes, ~30 bots with some number of active users Part of phab:T327136, unlikely to be done anytime soon given that it requires a complete rewrite.
EarwigBot EarwigBot is a Python bot that edits Wikipedia and interacts over IRC https://github.com/earwig/earwigbot
EstadoEdita Bot which publishes Wikipedia edits from the State of Chile to Twitter, apparently defunct since no posts after May 2023 https://github.com/jsajuria/estadoedita/ seems defunct n/a
EyeInTheSkyBot This is a stalk bot for edits on Wikipedia. It uses the RC IRC feed on irc.wikimedia.org to look for edits, and reports stalked edits in ##eyeinthesky on irc.libera.chat https://github.com/stwalkerster/eyeinthesky yes https://github.com/stwalkerster/eyeinthesky/issues/61
FinlandEdit Bot which publishes Wikipedia edits from different Finnish Government IPs to Twitter (defunct since July 2023) and Mastodon https://github.com/duukkis/finlandedits https://github.com/edsu/anon/issues/144
KrdBot The bot is written in Perl and based on the MediaWiki::Bot-Module. It runs continuously automatically or manually assisted at specified intervals, depending on tasks (see below). It normally does not more than one edit per minute on the same task https://commons.wikimedia.org/wiki/User:Krdbot
OverheidsEdits This Twitter bot warns you when the Dutch government anonymously edits Wikipedia articles. Seems defunct, no posts to Twitter since July 2023 and the listed Mastodon URL is dead too seems defunct
Huggle Huggle is a diff browser intended for dealing with vandalism and other unconstructive edits on Wikimedia projects, written in C++ using the Qt framework. Huggle is a desktop tool, not a bot, but it uses IRC as one of three RC sources (alongside the often-unreliable XmlRcs and RecentChanges polling). IRC has been recently preferred by users due to its reliability (compared to XmlRcs) and speed (compared to the polling API). m:Huggle (GitHub) (Phab) yes none
WikiMon Watch the RecentChanges IRC feed with Python. Support for various WikiMedia projects and languages. At the moment, WikiMon's primary usage pattern is broadcasting changes over WebSocket https://github.com/hatnote/wikimon Yes, actively used by http://listen.hatnote.com/ none
Pastilles Watch the RecentChanges IRC feed with https://fr.wikipedia.org/wiki/Utilisateur:PastilleBot yes none

See also