2012-02-16 27 views
15

Czy istnieje standardowy zasób społeczności R, który umożliwia aktualizowanie znanych błędów i poprawek pakietów? Moje obecne podejście jest raczej ręczne. (Uwaga: ograniczam to do CRAN - patrz Uwaga 1.)Jak być na bieżąco ze znanymi błędami i poprawkami w pakietach R?

Mój przypadek użycia to w zasadzie nadzór błędów i zarządzanie aktualizacjami pakietów. Co miesiąc uśredniam kilka odkryć błędów (które zgłosiłem autorom ;-)). Ponieważ wiele pracy wykonuję na maszynach wirtualnych, staram się aktualizować obrazy maszyn wirtualnych, gdy mam dobrą obsługę statusu błędu dla potrzebnych pakietów. Po naprawieniu kilku błędów mogę usunąć moje obejścia, co jest świetne i aktualizuję obrazy. Kiedy odkrywam ognisko błędów, nie tworzę nowego obrazu.

Oto źródła obecnie używam:

  • NEWS pliki: Wiele, ale nie wszystkie pakiety mają pliki News. To z pewnością pomocne miejsce na rozpoczęcie.
  • Strona główna pakietu: Niektóre pakiety nie mają pliku NEWS w systemie CRAN, ale osobno publikują dziennik zmian na stronie autora.
  • R project gospodarzem listy mailingowe
  • Google Groups dla pakietów
  • osobista komunikacja z autorami pakietu
  • śledzenia błędów dla pakietów (np deweloper może korzystać Bugzilla)

Jest jedna rzecz, aby być pierwszy, który odkrył błąd (zapewniam, że błędy przytrafiają się nam wszystkim), to kolejny, który z opóźnieniem odkrywa błąd, który jest albo już znany, albo, jeszcze lepiej, już naprawiony. Oba spowalniają moje własne kodowanie, ale lepszy nadzór błędów (może potrzebujemy pakietu cdc4R :)) znacznie zmniejszyłby wpływ. Bez standardowego systemu powiadamiania o aktualizacjach (np. Rozszerzenie do update.packages(), które zgłasza, które pakiety mogą być aktualizowane, oraz linki do informacji o tym, co zostało zmienione), zadaniem użytkownika jest znalezienie tych informacji.

Jako użytkownik, starając się znaleźć tę informację, czy istnieje jakiś standardowy zasób, którego przeoczyłem na powyższej liście? Na przykład, czy istnieje lista mailingowa R, w której programiści często publikują swoje zmiany i poprawki błędów? A może jest strona, która agreguje takie posty, testy postów (wydaje się, że wydaje się komunikaty CRAN R CMD CHECK), lub które dają inne opinie?


Kilka dodatkowych notatek na innych zasobów, na rzecz innych osób:

  • widzę, że CRANberries ma zwięzłą diff podsumowanie na opakowaniach, co jest dla mnie nowe. (Jestem zainspirowany do rozważenia grep dla bug lub fix w wyjściu diff.)
  • bug.report() w R jest dobrym sposobem na wysłanie wiadomości do R Core lub adresu e-mail opiekuna pakietu.
  • Kilka pakietów testowych do rozważenia to: testthat, RUnit i svUnit.
  • Mój osobisty "szybki test" polega po prostu na użyciu digest, aby sprawdzić, czy wyniki są zgodne, bez konieczności testowania równości bardzo dużych obiektów.

Uwaga 1: jestem tagging to bo to niemożliwe, aby zarządzać wszechświat wszystkich pakietów R. Dla indywidualnego autora paczki można rozprowadzać paczkę w dowolnym miejscu, korzystać z dowolnej listy mailingowej lub systemu śledzenia błędów, który im się podoba, itp. Jednak poza "głównym nurtem" dla R. Zostałem zwolniony z pakietu i ostrzec użytkowników do zmian, błędów, poprawek, chodziłem z CRAN + NEWS + Bugzilla + Grupy Google + R-Forge (i/lub RForge), itp., ale czy istnieje inny standardowy mechanizm raportowania, którego brakuje na tej liście?

W pewnym sensie ta uwaga służy również zapytaniu, czy istnieje mechanizm zachęcający deweloperów do używania. Podejrzewam, że nie ma standardu, ponieważ pakiety członków R Core wydają się robić wiele różnych rzeczy dotyczących zgłaszania błędów i zmian.

Uwaga 2: Dodaję także (chociaż coś innego może być bardziej odpowiednie), ponieważ dotyczy to również podawania R. W celu zapewnienia powtarzalności podawanie opakowań jest bardzo ważne; gdy jest wielu użytkowników lub więcej ruchomych elementów, zachowanie błędów i poprawek staje się zadaniem administracyjnym, a także ważnym czynnikiem rozwoju, który zależy od pakietów zewnętrznych. Jeśli inny tag, np. jest bardziej odpowiedni, jestem otwarty na zmianę.

+1

to powinno być jakoś cechą CRAN, nie powinno być? CRAN musi wiedzieć o aktualizacjach, więc uważam, że powinien mieć dla nich kanał RSS! Umieść żądanie funkcji na CRAN! Czy też problemem jest rozróżnienie, czy aktualizacja zawiera poprawki błędów, czy nie? – TMS

+0

@ Tomek Jestem zainteresowany błędami; łatwo jest sprawdzić, czy pakiety zostały zaktualizowane. Błędy to inna sprawa i wymagają uwagi: mogę zaktualizować ją do nowszej wersji, powrócić do wcześniejszej wersji lub obejść je, jeśli wpłyną na moją pracę. Inne zmiany w kodzie, takie jak wydajność lub zmiany interfejsu, wymagają mniejszej uwagi w już działającym systemie. – Iterator

+0

Nie sądzę, że przegapiłeś coś ważnego. Używam github do wszystkich moich pakietów, więc problemy z NEWS + github są najlepszymi miejscami do patrzenia. – hadley

Odpowiedz

3

Nie jest to pełna odpowiedź, ale oto kilka myśli.

W przypadku data.table śledzimy błędy (i żądania funkcji) on R-Forge here. Wyobrażam sobie, że możesz przesłać zapytanie do trackera R-Forge (programowo) o wszystkie hostowane tam pakiety. Aby mimo to dodać do swojej listy. Ten web tracker jest tam, gdzie wskazuje bug.report(package="data.table") (nie tylko adres e-mail do opiekuna).

Każdy może zapisać się na listę mailingową <pkgname>[email protected], aby otrzymać jednolity komunikat diff i commit (w momencie zatwierdzenia) dla każdego projektu na R-Forge. Nie jestem jednak świadomy ogólnej listy mailingowej obejmującej jakiekolwiek zatwierdzenie jakiegokolwiek projektu R-Forge.

Na górze ?data.table znajduje się link do up to the minute NEWS. W ten sposób informujemy użytkowników o tym, co jest w najnowszej wersji (i w fazie rozwoju), jeśli dokonają aktualizacji. Link aktualizuje się w czasie rzeczywistym; tj. "do minuty" oznacza dosłownie. Ale muszą tam sprawdzić!

+0

Commits e-maile muszą być włączone przez projekt, nie? Nie sądzę, że jest to możliwe w przypadku każdego projektu R-Forge. Ale może to się zmieniło ... –

+0

@Dirk Myślałem, że -komendy są tworzone domyślnie, ale administrator projektu może je wyłączyć (może się mylić). Nie sądzę jednak, żeby ktokolwiek był w nim automatycznie subskrybowany, nawet administrator.Więc być może w przypadku projektów, w których nikt nie subskrybował -commits, nie wysyła żadnych wiadomości, a więc archiwum nie buduje się aż do pierwszego zatwierdzenia po pierwszej subskrypcji. Tylko zgaduję. –

+0

Dzięki za sugestie! Twój rozwój 'data.table' oraz administrowanie raportowaniem i zmianami jest doskonałe i doceniane. Jest to jeden z pakietów, od których zależy, wraz z funkcjami raportowania i śledzenia, z których korzystasz. Zdałem sobie sprawę, że nie mam tych samych zasobów w innych pakietach i zastanawiałem się, jak mogę rozwiązać ten problem po mojej stronie. – Iterator