Bir yazılımcı 11 satır javascript koduyla nasıl Node, babel ve binlerce projeyi bozdu? Çeviri | 21 March 2016

NPM’de herkesin kullandığı kodlar çıkarıldı

Güncellendi: Salı günü birileri Javascript’in jenga kulesini devirdikten sonra yazılımcılar çalışmayan kodlara ve kurulmayan paketlere bakakaldılar.

Birkaç saat önce, Azer Koçulu, Javascript geliştiricilerinin projelerindeki bağımlılıkları kurmak için kullandığı popüler NPM’den 250’den fazla paketini geri çekti.

Koçulu kodlarını komple çıkardı çünkü, duyduğumuz kadarıyla, modüllerden birtanesinin adı Kik’ti ve bu da aynı isimli anlık mesajlaşma uygulamasının avukatlarının dikkatini çekti.

Koçulu’ya göre, Kik’in avukatları kendisinden modülün adını değiştirmelerini istediler, o kabul etmedi, böylece avukatlar NPM’in yöneticilerine giderek marka ihlali olduğunu iddia ettiler. NPM Kik paketini geliştiricinin elinden aldığında, o da çok kızdı ve NPM’deki tüm paketlerini yayından kaldırdı. ‘Bu durum da NPM’in kurumun insanlardan daha önemli olduğu ve başkasına ait bir özel bahçe olduğunu anlamamı sağladı, ve açık kaynağı seviyorum çünkü güç insanlarındır’ şeklinde blog yazdı.

Ne yazık ki, bu paketlerden bir tanesi de ‘left-pad’ adlı paketti. Kodu aşağıda. Yaptığı şey de string’lerin sol tarafına 0 veya boşuk karakteri koymak. Ve aralarında Node ve Babel’in de olduğu binlerce proje bu pakete gerek duyuyordu.

left-pad paketinin NPM’den kaldırılmasıyla bu uygulamalar ve açık kaynak yapılarının sıkça kullanılan kısımları bu gerekliliği edinemedi, böylece geliştirme ve sürüm çıkma aşamaları çakıldı. Binlercesi, dünya çapında. NPM’e göre Left-pad sadece son 1 ay içinde 2,486,696 kez indirilmişti. İşte o kadar popülerdi.

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;
}

Olayın akıbetinin bir kısmına şurada, şurada, şurada ve şurada görebilirsiniz.

İnterneti düzeltmek için, Laurie Voss, NPM’in kurucusu ve CTO’su, daha önce ‘eşi benzeri görüşmemiş’ bir adım atarak uygulamaların gerek duyduğu ve yayından kaldırılmış ‘left-pad 0.0.3’ paketini geri yükledi. Normalde, bir sürüm yayından kaldırığında tamamen gidiyordu ve geri yüklenemiyordu. Şimdi de NPM herkesin sürümlerinin beklendiği şekilde yüklenmesi ve çaşışması için bir paketin belli bir sürümünü geri yükledi.

Bozulmanın boyutunu göz önüne alarak yayından kaldırmayı-kaldırma bizim daha önce benzerini yapmadığımız bir aksiyondu ve hiç de hafif bir karar değildi, diye açıkladı Voss bir saat önce.

‘Bu aksiyon bir programcının keyfiyetine bağlı bırakılan NPM topluluğunun çoğunluğunun çıkarlarına göre yapılmıştır; çoğunluğun ihtiyaçlarına göre hareket ettik. Tüm bu durum çok kötü. Çıkan sorun ve soruları daha sonra dikkatlice değerlendirecek ve olay sonrası bir durum raporu yayınlayacağız’.

‘Bu arada, binlerce açık kaynak projesi tamir edildi ve bu akşam rahat bir uyku uyuyabileceğim’.

Yeni paketin sahibi, bir adım ileri atarak left-pad paketini sahipleyip NPM’de yayınlayan kişi, 0.0.3 sürümünün geri yüklenmesini istedi. Bu sırada, Oakland’de oturan Koçulu çalışmalarını GitHub‘da barındırmakta. Eğer kodlarınız left-pad paketinin geri yüklenmesiyle beraber yine de çalışmıyorsa, npm cache clear komutunu çalıştırarak son değişiklikleri edinin.

Ve işte 2016’da Javascript uygulama geliştirme böyle bir şey.

23 Mart 21:38 tarhi itibariyle güncelleme

Kik’te mesajlaşmanın başı Mike Roberts tarafından yayımlanan bir blog postu aracıylığıyla Kik’teki bir sözcü bizimle iletişime geçerek, kendi taraflarını belirtiler. Yaklaşık olarak 30 dakika önce yayınlandı.

Temelde, şirket yine Kik adı altında açık kaynak bir projeyi NPM’de yayınlayacaklarmış. Bu da Koçulu’nun Kik modülüyle çakışmış ve bu yüzden de kendisinden kendş yazılımının adının değiştirilmesini istemiş. Bildiğimiz gibi, Koçulu reddetmiş, ve bu da Salı günkü ‘cluster-fsck’ya sebebp olmuş.

Kik’in avukatlarından Koçulu’ya gönderilen e-postalar hakkında da Robert: Kullandığımız kelimeler ve üslubumuz mükemmel değildi. Adına çok iyi uyan ve üzerinde çalıştığımız bir açık kaynak projesinin adını kullanmak için kibar bir istekten daha fazlasını söylediğimiz izlenimini yarattığımız için özür dileriz.

Kaynak

http://www.theregister.co.uk/2016/03/23/npm_left_pad_chaos/