Как быть в курсе известных ошибок и исправлений ошибок в R-пакетах?
Существует ли стандартный ресурс сообщества R для поддержания актуальности известных ошибок или исправлений ошибок для пакетов? Мой нынешний подход довольно ручной. (NB: я ограничиваю это CRAN - см. Примечание 1.)
Мой вариант использования - это, в основном, наблюдение за ошибками и управление обновлениями пакетов. Я несколько раз усваивал несколько открытий ошибок каждый месяц (которые я должным образом сообщаю авторам;-)). Поскольку большая часть моей работы выполняется с виртуальными машинами, я стараюсь обновлять образы виртуальных машин, когда у меня есть хороший дескриптор состояния ошибки для необходимых пакетов. Когда связка ошибок исправлена, я могу удалить мои обходные пути, что отлично, и я обновляю изображения. Когда я обнаруживаю вспышку ошибок, я не создаю новое изображение.
Вот те источники, которые я сейчас использую:
- Файлы новостей: многие, но не все, пакеты имеют файлы новостей. Это, безусловно, полезное место для начала.
- Домашняя страница пакета. Некоторые пакеты не имеют файла новостей на 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 Groups + R-Forge (и/или RForge) и т.д., но есть ли еще один стандартный механизм отчетности, отсутствующий в этом списке?
В некотором смысле эта заметка также позволяет спросить, существует ли механизм, который разработчики могут использовать. Я подозреваю, что нет стандарта, поскольку пакеты из членов R Core, похоже, делают много разных вещей, связанных с ошибкой и отчетами об изменениях.
Примечание 2: Я также добавляю administration (хотя что-то еще может быть больше по поводу), поскольку это также относится к администрированию R. Для воспроизводимости управление пакетами весьма важно; когда есть несколько пользователей или более движущихся частей, сохранение ошибок и исправлений становится административной задачей, а также важным соображением для разработки, зависящим от внешних пакетов. Если другой тег, например. system-administration более уместно, я открыт к изменению.
Ответы
Ответ 1
Не полный ответ, но вот некоторые мысли.
В случае data.table
мы отслеживаем ошибки (и запросы функций) в R-Forge здесь. Я предполагаю, что вы можете запросить трекер R-Forge (программно) для всех пакетов, размещенных там. Чтобы добавить в свой список в любом случае. Этот веб-трекер находится там, где bug.report(package="data.table")
указывает (а не только адрес электронной почты для сопровождающего).
Кроме того, каждый может подписаться на любой список рассылки <pkgname>[email protected]
, чтобы получить унифицированное сообщение diff и commit (во время фиксации) для каждого проекта в R-Forge. Однако я не знаю общего списка рассылки, охватывающего любую фиксацию для любого проекта R-Forge.
В верхней части ?data.table
есть ссылка на до минуты NEWS. Таким образом мы сообщим пользователям, что находится в последней версии (и в разработке), если они будут обновлены. Эта ссылка обновляется в режиме реального времени; то есть "до минуты" подразумевается буквально. Но, они должны проверить там!