CIA.vc shuts down
CIA didn't seem important until it was gone. For developers and users on IRC networks like Freenode, CIA was just there in the background, relaying commit messages into the channels of thousands of projects in real time—until recently.
CIA.vc was a central clearinghouse for commit messages sent to it from ten thousand or more version control repositories. There were CIA hooks for subversion, git, bzr, etc, so a project just had to install such a hook into their repository and register on the CIA website. CIA handled the rest, collecting the commit messages as they came in and announcing them on appropriate channels via its swarm of IRC bots. Here is an example from the #commits channel from April:
<CIA-93> OpenWrt: [packages] fwknop: update to 2.0, use new startup commands
<CIA-93> vlc: Pierre Ynard master * r31b5fbdb6d vlc/modules/lua/libs/equalizer.c:
lua: fix memory and object leak and reset locale on error path
<CIA-93> FreeBSD: rakuco * ports/graphics/autoq3d/files/
(patch-src__cmds__cmds.cpp . patch-src__fgui__cadform.cpp):
<CIA-93> FreeBSD: Make the port build with gcc 4.6 (and possibly other compilers).
<CIA-93> gentoo: robbat2 * gentoo/xml/htdocs/proj/en/perl/outdated-cpan-packages.xml:
Automated update of outdated-cpan-packages.xml
<CIA-93> compiz-fusion: a.j.buxton master * /fusion/plugins-main/src/ezoom/ezoom.c:
For a decade, the CIA bots were part of the infrastructure of many projects, which, along with their bug tracker, mailing lists, wiki, and version control system, helped tie communities together. Eric S. Raymond described the effect of the CIA service as follows:
That stream of notifications dried up on September 26th, when CIA.vc was shut down, due to a miscommunication with a hosting provider. It seems there were no backups. It is unclear if CIA will return, but there are two possible replacements available now.
irker
Irker is a simple replacement for CIA, that was announced just three days later. Raymond was developing it even before CIA went down, and designed a much different architecture than the centralized CIA service.
Irker consists of two pieces: a server that acts as a simple relay to IRC and a client that sends messages to be relayed. The server has no knowledge of version control systems or commits, and could be used to relay any sort of content. All the version-control-specific code necessary to extract and format the message is in the client, which is run by a version control hook script.
The irker client and server typically both run on the same machine or LAN, so each project or hosting service is responsible for running its own service, rather than relying on a centralized service like CIA.
Irker has undergone heavy development since the announcement, and is now considered basically feature complete. Its simple and general design is likely to lead to other things being built on top of it. For example, there is a CIA to irker proxy for sites that want to retain their current CIA hooks.
KGB
Although irker made a splash when CIA died, another clone has quietly been overlooked for years. KGB was developed by Martín Ferrari and Damyan Ivanov of the Debian project and released in 2009. KGB is shipped in the current Debian stable release, as well as in Ubuntu universe, making it easy to deploy as a replacement for CIA.
KGB is, like irker, a decentralized client-server system. Unlike irker's content-agnostic server, the KGB server is responsible for formatting notifications from commit information it receives from its clients. Though a less flexible design, this does insulate the clients from some details of IRC, particularly from message length limits.
KGB has enjoyed a pronounced upswing in feature requests and development since CIA went down, gaining features such as web links to commits, url shortening, and the ability to broadcast all projects' notifications to a channel like #commits. Developer Martín Ferrari says:
Will CIA.vc return?
The CIA.vc website currently promises an attempt to revive the service. Any attempt to do so will surely face numerous challenges. Not least is the missing database, which configured much of CIA's behavior. Unless a recent backup of the database is found, any revived CIA.vc will certainly need much configuration to return it to its past functionality.
CIA's code base, while still available,
is large and complex with many moving parts written in
different languages, is reputedly difficult to install,
and has been neglected for years. Raymond's opinion is that
"CIA suffered a complexity collapse
", and
as he said:
"It is notoriously difficult to un-collapse a rubble pile
".
Even if CIA does eventually return, it seems likely that many projects will have moved away from it for good, deploying their own irker or KGB bots. The Apache Software Foundation, KDE project, and Debian's Alioth project hosting site have already deployed their own bots. If the larger hosting sites like Github, Sourceforge, and Savannah follow suit, any revived CIA may be reduced to being, at best, a third player.
Conclusion
CIA.vc was a centralized service, with code that is free software, but with a design and implementation that did not encourage reuse. The service was widely used by the community, which mostly seems to have put up with its instability, its UTF-8 display bugs, its odd formatting of git revision numbers, and its often crufty hook scripts.
According to CIA's author,
Micah Dowty, it never achieved a "critical mass of
involvement
" from contributors. Perhaps CIA was not seen as
important enough to work on. But with two replacements now being developed,
there is certainly evidence of interest. Or perhaps CIA did not present itself
as a free software project, and so was instead treated as simply the
service that
it appeared to be. CIA's website featured things like a commit leaderboard
and new project list, which certainly helped entice people to use it. (Your
author must confess to occasionally trying to fit enough commits into a day to
get to the top of that leader board.) But the website did not encourage
bugs or patches to be filed.
In a way, the story of CIA mirrors the story of the version control systems it reported on. When CIA began in 2003, centralized version control was the norm. The Linux kernel used distributed version control only thanks to the proprietary Bitkeeper, which itself ran a centralized commit publication service. These choices were entirely pragmatic, and the centralized CIA was perhaps in keeping with the times.
Much as happened with version control, the community has gone from being reliant on a centralized service, to having a choice of decentralized alternatives. As a result, new features are rapidly emerging in both KGB and irker that CIA never provided. This is certainly a healthy response to CIA's closure, but it also seems that our many years of reliance on the centralized service held us back from exploring the space that CIA occupied.
| Index entries for this article | |
|---|---|
| GuestArticles | Hess, Joey |
Posted Oct 11, 2012 1:26 UTC (Thu)
by Comet (subscriber, #11646)
[Link]
Services like GitHub may not be open source, but are used by a number of projects, and their admin panel lets you not just post GH's native format to an arbitrary endpoint you specify, but has a large library of pre-canned end-points, where the content is massaged automatically and the repo owner just needs to provide a couple of variables.
Using GitHub as an example again, there's already native IRC support for posting commit events to a channel. The hooks themselves are open source.
Ideally, we'd be able to have pushes from our main repo, which get auto-synced to GitHub, trigger the hooks, so we wouldn't even need to switch to GitHub as the main repository, but just use it as part of a pipeline for notification. At present, I think the pushes need to be done directly to GitHub.
Posted Oct 11, 2012 7:45 UTC (Thu)
by jnareb (subscriber, #46500)
[Link]
Posted Oct 11, 2012 8:40 UTC (Thu)
by djc (subscriber, #56880)
[Link] (6 responses)
Posted Oct 11, 2012 10:34 UTC (Thu)
by jnareb (subscriber, #46500)
[Link] (4 responses)
Nb. CIA.vc used XML-RPC, which is not much better. irker uses JSON.
Posted Oct 11, 2012 10:41 UTC (Thu)
by djc (subscriber, #56880)
[Link] (3 responses)
Posted Oct 12, 2012 3:15 UTC (Fri)
by bronson (subscriber, #4806)
[Link] (2 responses)
http://wanderingbarque.com/nonintersecting/2006/11/15/the...
Posted Oct 12, 2012 11:49 UTC (Fri)
by njwhite (guest, #51848)
[Link] (1 responses)
Posted Oct 18, 2012 13:17 UTC (Thu)
by gvy (guest, #11981)
[Link]
Posted Oct 11, 2012 15:37 UTC (Thu)
by joey (guest, #328)
[Link]
Posted Oct 18, 2012 8:07 UTC (Thu)
by ledow (guest, #11753)
[Link]
Having a horrendous codebase is a problem that will only hurt those people who maintain it. Having no backups hurts every user of the system, and is easily and quickly resolved at zero cost (i.e. primary developer takes the opportunity once a month to run fsarchiver or similar and dump the whole machine image to his personal PC - hey presto, backup! Not enterprise scale but a damn sight better than "we have nothing").
CIA.vc shuts down
CIA.vc code
CIA.vc shuts down
CIA.vc shuts down
CIA.vc shuts down
CIA.vc shuts down
CIA.vc shuts down
It's not just silliness, it's worse than failure...
...simple.
CIA.vc shuts down
CIA.vc shuts down
