Существует ли стандартный ресурс сообщества 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. Я помечаю этот cran , поскольку невозможно управлять юниверсом всех R пакетов. Для отдельного автора пакета можно распространять пакет там, где он хочет, использовать любой список рассылки или систему отслеживания ошибок и т. Д. Однако это не входит в «основной поток» для R. Если бы я выпустил пакет и предупредил пользователей на изменения, ошибки, исправления ошибок, я бы пошел с CRAN + NEWS + Bugzilla + Группы Google + R-Forge (и / или RForge) и т. д., но есть ли другой стандартный механизм отчетности, который отсутствует в этом списке?
В некотором смысле, эта заметка также служит для того, чтобы спросить, есть ли механизм, который разработчикам рекомендуется использовать. Я подозреваю, что нет никакого стандарта, так как пакеты от членов R Core, кажется, делают много разных вещей в отношении отчетов об ошибках и изменениях.
Примечание 2: Я также добавляю администрацию (хотя кое-что еще может быть более подходящим), поскольку это также относится к администрированию R. Для воспроизводимости администрирование пакетов весьма важно; когда имеется несколько пользователей или более движущихся частей, информирование об ошибках и исправлениях становится административной задачей, а также важным фактором при разработке, который зависит от внешних пакетов. Если другой тег, например, системное администрирование более уместно, я открыт для изменений.