Пакет R, объявляющий автора в ОПИСАНИИ - PullRequest
1 голос
/ 12 февраля 2020

Мой файл DESCRIPTION выглядит следующим образом (отображается только соответствующая часть).

Author: John Doe
Authors@R: person("John", "Doe", email = "john.doe@email.com",role = c("aut", "cre"))
Maintainer: John Doe <john.doe@email.com>

devtools::check(), R CMD check и R CMD build завершается нормально. Но, представление CRAN возвращает это ПРИМЕЧАНИЕ:

  * checking DESCRIPTION meta-information ... NOTE
Author field differs from that derived from Authors@R
Author:    'John Doe'
Authors@R: 'John Doe [aut, cre]'

Не уверен, о чем идет речь. В любом случае, проверяя документацию , он говорит:

Поля 'Author' и 'Maintainer' могут быть автоматически сгенерированы из 'Authors@R' и могут быть опущены, если последний

Итак, я удалил автора и сопровождающего. Теперь, когда я запускаю R CMD check локально:

* checking for file ‘./DESCRIPTION’ ... ERROR
Required fields missing or empty:
  ‘Author’ ‘Maintainer’

Какой лучший способ сделать это?

ОБНОВЛЕНИЕ

Я удалил Authors@R и оставили Author и Maintainer как есть. Все локальные тесты пройдены. Но CRAN жалуется на это.

* checking CRAN incoming feasibility ... NOTE
Maintainer: 'John Doe <john.doe@email.com>'

Но я не понимаю этого.

ОБНОВЛЕНИЕ

Эта проблема была задокументирована здесь .

Ответы [ 2 ]

0 голосов
/ 12 февраля 2020

Вы можете использовать Author и Maintainer или Authors@R. В последнем случае я бы не указывал Author и Maintainer, поскольку они заполнены R CMD build. Это подводит меня к самому важному моменту: никогда не запускайте R CMD check в исходном каталоге, а только в tar.gz, созданном R CMD build!

В противном случае вы получите странные предупреждения из-за необычных файлов (.Rbuildignore не принимается во внимание), существование объектных файлов в src, ....

Кстати, использование devtools::check() хорошо из моего опыта, но всегда полезно знать, что происходит за кулисами.

0 голосов
/ 12 февраля 2020

Кажется, что R CMD check . не компилирует поле Authors@R. Запуск R CMD build . затем R CMD check mypkg.tar.gz, кажется, лучше воспроизводит то, что происходит в системах сборки. Мне также нравится использовать devtools::check(), так как он перестраивает документацию roxygen перед запуском check.

btw Я думаю, что вместо John Doe [aut, cre] вы должны использовать person("John", "Doe", role = c("aut", "cre")), согласно документации, которую вы связали.

...