2012-02-16 28 views
15

Bilinen hatalara veya paketler için hata düzeltmelerine güncel tutmak için standart bir R topluluğu kaynağı var mı? Benim şu anki yaklaşımım daha elverişli. (Not: Bunu CRAN ile kısıtlıyorum - bkz. Not 1.)R paketlerinde bilinen hatalardan ve hata düzeltmelerinden nasıl haberdar olunur?

Kullanım durumum temel olarak hata gözetimi ve paket güncelleştirmeleri yönetimidir. Bir ay boyunca her ay birkaç hata keşfinin ortalamasını aldım (ki bunu usulüne göre yazarlara bildiriyorum ;-)). İşlerimin çoğu sanal makinelerle yapıldığı için, gerekli paketler için hata durumunun iyi bir şekilde ele alındığı durumlarda VM görüntülerini güncellemeye eğilimliyim. Bir sürü hata düzeltildiğinde, harika çözümlerimi kaldırabilirim ve görüntüleri güncelliyorum. Bir hata salgını keşfettiğimde, yeni bir görüntü oluşturmuyorum. paketler HABERLER dosyaları var, çoğu ama hepsi değil:

  • HABER dosyaları:

    İşte şu anda kullanıyorum kaynaklarıdır. Bunlar kesinlikle başlamak için yararlı bir yer.

  • Paket ana sayfası: Bazı paketler CRAN'da bir HABER dosyasına sahip değildir, ancak yazarın sitesinde ayrı bir değişiklik günlüğü yayınlar. paketleri paketleri
  • R proje barındırılan posta listeleri
  • Google Groups paket yazarlarla
  • Kişisel iletişim
  • Hata izleme (örneğin bir geliştirici Bugzilla'ya kullanabilir)

Olmak ayrı bir şey bir hata keşfeden ilk kişi (bu hataların hepimizin başına gelmesini sağlarım), ya bilinen ya da daha iyisi, zaten düzeltilmiş olan bir hatayı düzeltmek için başka bir şey. Her ikisi de kendi kodumu yavaşlatıyor, ancak daha iyi hata gözetimi (belki bir cdc4R paketine ihtiyacımız var :)) bu etkiyi önemli ölçüde azaltacaktır. Bir standart güncelleme uyarı sistemi (örneğin, hangi paketlerin güncellenebileceği ve neyin değiştiğine ilişkin bilgi ile ilgili bağlantıların rapor edildiği update.packages() numaralı bir uzantı) olmadan, bu bilgileri bulmak için kullanıcının görevidir.

Böyle bir kullanıcı olarak, bu bilgileri araştırmaya çalışmak, yukarıdaki listede yer alan bazı standart kaynaklar var mı? Örneğin, geliştiricilerin değişikliklerini ve hata düzeltmelerini yayınlamaları yaygın olan bir R posta listesi var mı? Veya bu tür mesajları bir araya getiren bir site var mı? (CRAN mesajları R CMD CHECK çıktı, görünüyor) veya başka bir geri bildirim veriyor mu? Başkalarının yararına diğer kaynaklar üzerinde


birkaç ek not:

  • ben CRANberries benim için yeni olan paketler üzerinde kısa ve özlü bir diff özetini sahip olduğunu görüyoruz. (bug veya fix için bir grep'i diff çıkışında dikkate almak için ilham aldım.) R içinde
  • bug.report(), R Core'a veya bir paketin sağlayıcısının e-posta adresine mesaj göndermenin iyi bir yoludur.
  • Dikkate değer birkaç test paketi şunlardır: testthat, RUnit ve svUnit.
  • Kişisel "hızlı testim", çok büyük nesnelerin eşitliğini test etmek zorunda kalmadan, sonuçların eşleştiğini doğrulamak için digest'u kullanmaktır.

Not 1: Bu tüm R paketlerinin evreni yönetmek imkansız çünkü bu etiketleme ediyorum. Tek bir paket yazarı için, istediği yerde bir paket dağıtılabilir, istedikleri posta listesini veya hata izleme sistemini kullanabilirler. Ancak, bunun için "mainstream" in dışında. Bir paket yayınlamak ve kullanıcıları uyarmak için değişiklikler, hatalar, hata düzeltmeleri, CRAN + HABER + Bugzilla + Google Grupları + R-Forge (ve/veya RForge) vb. ile giderdim, ancak bu listeden eksik olan başka bir standart raporlama mekanizması var mı?

Bazı durumlarda, bu not, geliştiricilerin kullanmaya teşvik edildiği bir mekanizma olup olmadığını sormaya da yarar. Standart olmayan bir şey olduğundan şüpheleniyorum, çünkü R Core üyeleri tarafından paketler, hata ve değişiklik raporlaması ile ilgili birçok farklı şey yapıyor gibi görünüyor.

Not 2: 'u ekliyorum (başka bir şey daha fazla apropos olabilir), çünkü bu aynı zamanda R'nin uygulanması ile de ilgilidir. Tekrar üretilebilirlik için, paketlerin uygulanması oldukça önemlidir; Birden fazla kullanıcı veya daha fazla hareketli parça olduğunda, hataların ve düzeltmelerin farkında olmak, yönetimsel bir görev haline gelir ve ayrıca dış paketlere bağlı geliştirme için önemli bir düşünceye dönüşür. Başka bir etiket, ör. daha uygun, bir değişikliğe açığım.

+1

Bu bir şekilde bir CRAN özelliği olmalı, olmamalı mıydı? CRAN güncellemeleri bilmek zorundadır, bu yüzden onlar için bazı RSS kanallarının olması gerektiğini hissediyorum! Özellik isteğini CRAN'a yerleştirin! Ya da güncellemenin hata düzeltmeleri içerip içermediğini ayırt etme sorunu mu var? – TMS

+0

@Tomas Böceklerle ilgileniyorum; Paketlerin güncellendiğini kontrol etmek kolaydır. Hatalar farklı bir konudur ve dikkat gerektirir: Daha yeni bir sürüme güncelleyebilir, daha önceki bir sürüme dönebilir veya çalışmamı etkilerlerse, etraflarında çalışabilirim. Performans veya arabirim değişiklikleri gibi koddaki diğer değişiklikler zaten çalışan bir sistemde daha az dikkat gerektirmektedir. – Iterator

+0

Büyük bir şey kaçırdığınızı sanmıyorum. Tüm paketlerim için github kullanıyorum, bu yüzden NEWS + github sorunları, bakılacak en iyi yerlerdir. – hadley

cevap

3

Tam bir cevap değil ama burada bazı düşünceler var.

data.table durumunda, hataları (ve özellik isteklerini) on R-Forge here izleriz. R-Forge'un izleyicisini (programlı olarak) orada barındırılan tüm paketler için sorgulayabileceğinizi hayal ediyorum. Yine de listenize eklemek için. Bu web izleyici, bug.report(package="data.table")'un işaret ettiği yerdir (yalnızca bir e-posta adresi değil). Ayrıca, R-Forge'daki her proje için birleşik bir fark ve taahhüt mesajı (taahhüt anında) almak için herhangi bir <pkgname>[email protected] posta listesine abone olan herkes de abone olabilir. Yine de, herhangi bir R-Forge projesine bağlılık içeren genel bir mail listesinin farkında değilim.

?data.table'un en üstünde up to the minute NEWS bağlantısı vardır. Bu, en son sürümde (ve geliştirmede) yükseltme yapan kullanıcılar için nasıl iletişim kurabildiğimizdir. Bu bağlantı gerçek zamanlı olarak güncellenir; yani "dakikaya kadar" tam anlamıyla ifade edilir. Ancak, orada kontrol etmek zorundalar!

+0

Komutlar e-postalar proje tarafından etkinleştirilmeli, hayır? Her bir R-Forge projesi için açık olduğunu sanmıyorum. Ama belki de bu değişti ... –

+0

@Dirk Düşündüm -commits varsayılan olarak oluşturulur ama proje yöneticisi onu kapatabilir (yanlış olabilir). Yönetici olsa bile, hiç kimsenin buna otomatik olarak abone olmadığını düşünüyorum.Bu nedenle, belki de hiç kimsenin abone olmadığı projelerde, herhangi bir mesaj göndermez ve böylece arşiv, ilk abonelikten sonraki ilk işleme kadar birikmez. Sadece tahmin ediyorum. –

+0

Öneriler için teşekkürler! 'Data.table' gelişimini ve raporlama ve değişikliklerin yönetimini mükemmel ve çok takdir ediyoruz. Kullandığım raporlama ve izleme olanaklarıyla birlikte bağlı olduğum paketlerden biri. Diğer kaynaklarda aynı kaynaklara sahip olmadığımı farkettim ve bununla nasıl başa çıkabileceğimi merak ettim. – Iterator