It all started with a request from the developers of a messaging application to an open source developer to change the name of a library. It ended with JavaScript developers around the world crying out in frustration as hundreds of projects suddenly stopped working—their code failing because of broken dependencies on modules that a developer removed from the repository over a policy dispute.
At the center of it all is npm, Inc., the Oakland startup behind the largest registry and repository of JavaScript tools and modules. Isaac Schlueter, npm's creator, said that the way the whole thing shook out was a testament to how well open source works—another developer replaced the missing link quickly. But many developers are less than elated by the fact that code they've become dependent on can be pulled out from under them without any notice.
The disruption caused by the wholesale unpublishing of code modules by their author Azer Koçulu was repaired in two hours, Schlueter told Ars, as other developers filled in the holes in the repository. The incident is, however, prompting Schlueter and the team at npm Inc. to take a look at how to prevent one developer from causing so much collateral damage.
To understand how one developer's rage-quit from a JavaScript code registry could suddenly cause all sorts of things across the Internet to begin to fail, you need to understand the strange nature of npm, which is inextricably tied to node.js—a popular open source tool that allows developers to write Internet server applications (as well as desktop and other types of applications) in JavaScript. Node.js uses npm as its default "package manager" for installing software, much as Linux distributions use apt-get.