Как быть в курсе известных ошибок и исправлений ошибок в R-пакетах? - PullRequest
15 голосов
/ 16 февраля 2012

Существует ли стандартный ресурс сообщества R для актуализации известных ошибок или исправлений ошибок для пакетов? Мой нынешний подход довольно ручной. (NB: я ограничиваю это CRAN - см. Примечание 1.)

Мой пример использования - это в основном наблюдение за ошибками и управление обновлениями пакетов. Я усредняю ​​пару открытий ошибок каждый месяц в течение некоторого времени (о котором я должным образом сообщаю авторам ;-)). Так как большая часть моей работы выполняется с виртуальными машинами, я склонен обновлять образы виртуальных машин, когда у меня есть хороший контроль над состоянием ошибки для необходимых пакетов. Когда куча ошибок исправлена, я могу удалить свои обходные пути, и это здорово, и я обновляю изображения. Когда я обнаруживаю ошибку, я не создаю новое изображение.

Вот источники, которые я сейчас использую:

  • Файлы NEWS: Многие, но не все, пакеты содержат файлы NEWS. Это, безусловно, полезное место для начала.
  • Домашняя страница пакета: Некоторые пакеты не имеют файла NEWS в CRAN, но отдельно публикуют журнал изменений на сайте автора.
  • R размещенные в проекте списки рассылки
  • Группы Google для пакетов
  • Личное общение с авторами пакета
  • Отслеживание ошибок для пакетов (например, разработчик может использовать Bugzilla)

Одно дело быть первым, обнаружившим ошибку (я допускаю, что ошибки случаются со всеми нами), другое - запоздало обнаруживать ошибку, которая уже известна или, что еще лучше, уже исправлена. Оба замедляют мое собственное кодирование, но лучшее отслеживание ошибок (возможно, нам нужен пакет cdc4R :)) значительно уменьшит влияние. Без стандартной системы оповещения об обновлениях (например, расширение до update.packages(), которое сообщает, какие пакеты могут быть обновлены, и ссылки на информацию о том, что изменилось), пользователь должен искать эту информацию.

Как пользователь, пытающийся найти эту информацию, есть ли какой-то стандартный ресурс, который я упустил из списка выше? Например, есть ли список рассылки R, где разработчики часто публикуют свои изменения и исправления ошибок? Или есть сайт, который объединяет такие сообщения, тесты сообщений (вывод CRAN R CMD CHECK, кажется) или это дает какой-то другой отзыв?


Несколько дополнительных заметок о других ресурсах, для пользы других:

  • Я вижу, что CRANberries имеет краткую diff сводку по пакетам, что является новым для меня. (Меня вдохновляет рассмотреть grep для bug или fix в выводе diff.)
  • bug.report() в R - это хороший способ отправить сообщение в R Core или адрес электронной почты сопровождающего пакета.
  • Стоит рассмотреть несколько пакетов тестирования: testthat, RUnit и svUnit.
  • Мой личный «быстрый тест» состоит в том, чтобы просто использовать digest для проверки соответствия результатов без необходимости проверки равенства очень больших объектов.

Примечание 1. Я помечаю этот , поскольку невозможно управлять юниверсом всех R пакетов. Для отдельного автора пакета можно распространять пакет там, где он хочет, использовать любой список рассылки или систему отслеживания ошибок и т. Д. Однако это не входит в «основной поток» для R. Если бы я выпустил пакет и предупредил пользователей на изменения, ошибки, исправления ошибок, я бы пошел с CRAN + NEWS + Bugzilla + Группы Google + R-Forge (и / или RForge) и т. д., но есть ли другой стандартный механизм отчетности, который отсутствует в этом списке?

В некотором смысле, эта заметка также служит для того, чтобы спросить, есть ли механизм, который разработчикам рекомендуется использовать. Я подозреваю, что нет никакого стандарта, так как пакеты от членов R Core, кажется, делают много разных вещей в отношении отчетов об ошибках и изменениях.

Примечание 2: Я также добавляю (хотя кое-что еще может быть более подходящим), поскольку это также относится к администрированию R. Для воспроизводимости администрирование пакетов весьма важно; когда имеется несколько пользователей или более движущихся частей, информирование об ошибках и исправлениях становится административной задачей, а также важным фактором при разработке, который зависит от внешних пакетов. Если другой тег, например, более уместно, я открыт для изменений.

1 Ответ

3 голосов
/ 16 февраля 2012

Не полный ответ, но вот некоторые мысли.

В случае data.table мы отслеживаем ошибки (и запросы функций) в R-Forge здесь .Я полагаю, вы могли бы запросить трекер R-Forge (программно) для всех пакетов, размещенных там.Чтобы добавить в ваш список в любом случае.Именно на этот веб-трекер указывает bug.report(package="data.table") (а не просто адрес электронной почты сопровождающего).

Кроме того, любой может подписаться на любой список рассылки <pkgname>-commits@lists.r-forge.r-project.org, чтобы получать унифицированное сообщение diff и commit (в то времякоммит) для каждого проекта в R-Forge.Мне не известен общий список рассылки, охватывающий любые коммиты в любом проекте R-Forge.

В верхней части ?data.table есть ссылка на до минуты NEWS .Вот как мы сообщаем пользователям, что находится в последней версии (и в разработке), если они обновляются.Эта ссылка обновляется в режиме реального времени;то есть, «до минуты» подразумевается буквально.Но они должны проверить там!

...