Koçulu kreeg het kortgeleden aan de stok met de advocaten van het chatprogramma Kik. De ontwikkelaar had namelijk een module gemaakt met dezelfde naam. Hoewel de module niets te maken heeft met chatten, vonden de mensen achter Kik het nodig de ontwikkelaar te verzoeken de module te verwijderen.

Power tot the people!

Koçulu weigerde, maar dat weerhield de mensen van Kik er niet van juridische stappen te ondernemen. De admins van NPM werden gesommeerd de module te verwijderen en gaven daar gehoor aan. Dit maakte de ontwikkelaar zo kwaad dat hij besloot alle NPM-modules te verwijderen.

"De situatie deed mij realiseren dat NPM iemands privédomein is waar de 'rechtspersoon' sterker is dan het [normale] volk. En ik ben juist open source gaan doen wergens 'power to the people,'" schreef Koçulu in z'n blog.

Dependency hell

Het verwijderen van al z'n modules uit NPM had echter grote gevolgen. Veel (grote) JavaScript-projecten zijn afhankelijk van Koçulu's modules en door de afwezigheid van die modules zaten veel programmeurs met gebroken builds en gefaalde installaties.

Vooral de module left-pad wordt veel gebruikt en was de afgelopen maand alleen al ruim twee miljoen keer gedownload. Veel projecten werkten dus niet meer naar behoren en ontwikkelaars begonnen te klagen over de nieuwe dependency hell. Het is toch bijzonder dat een module van 11 regels groot, zoveel projecten op de knieën kan krijgen. De left-pad module ziet er zo uit:

module.exports = leftpad;

function leftpad (str, len, ch) {

str = String(str);

var i = -1;

if (!ch && ch !== 0) ch = ' ';

len = len - str.length;

while (++i < len) {

str = ch + str;

}

return str;

}

Ondanks de dependency-problemen waar veel ontwikkelaars nu mee kampen, is Koçulu niet van plan de modules terug te plaatsen op NPM. "NPM is niet langer een plek waar ik mijn open source werk nog zal delen en ik heb al mijn modules verwijderd."


Op de volgende pagina: Zo los je het dependency-probleem op

Koçulu biedt overigens wel zo'n excuses aan en benadrukt dat dit geen reflexmatige actie is. "Ik houd van open source en ik geloof dat de open source community uiteindelijk een écht vrij alternatief voor NPM zal creëren."

Ook laat de ontwikkelaar in z'n blog weten dat het gebruiken van de naam Kik geen bewuste actie was. "Toen ik begon met het programmeren van Kik, wist ik niet dat er een bedrijf bestond met dezelfde naam. Maar ik wil ook niet dat een bedrijf mij kan dwingen de naam [van deze module] te veranderen."

Twee oplossingen

Koçulu komt overigens wel zelf met een oplossing. "Je kan de dependency direct laten verwijzen naar (azer/dependency) of ik kan het eigendom overhevelen van alle modules in mijn Github."

Ondertussen heeft Laurie Voss, CTO en mede-oprichter van NPM het recht in eigen handen genomen en versie 0.0.3 van left-pad opnieuw beschikbaar gemaakt. Normaalgesproken kan een verwijderde versie niet meer worden teruggehaald, maar Voss heeft voor deze ene keer een uitzondering gemaakt zodat de vele projecten, die afhankelijk zijn van deze module, in elk geval normaal kunnen functioneren.

"Het terughalen van andermans verwijderde module is een ongehoorde actie. Maar aangezien dit een zeer wijdverspreid probleem is, hebben we het toch maar gedaan. De belangen van de community zijn in dit geval groter dan de wensen en eisen van de auteur," aldus Voss.

"Het is een zeer vervelende situatie en wij kijken hoe wij dit probleem kunnen oplossen. Ondertussen zijn er duizenden open source-projecten gerepareerd en zal ik vanavond lekker slapen."

Op dit moment is er een nieuwe maintainer die zich ontfermt over de 0.0.3 NPM-versie van left-pad maar Koçulu's versie kan, samen met al z'n andere modules ook nog worden gevonden op Github.