Подтвердить что ты не робот

Roxygen2 не полностью обновляет файл DESCRIPTION

Я делаю свой первый пакет rlandscape, используя Roxygen2 и пытаясь следовать простой виньети Roxygen, поскольку Roxygen2 не имеет его.

Как и в виньетка (стр. 3), я создал файл с именем rlandscape-package.R, который содержит только документацию пакета. В виньетке они говорят

каждый блок описания Roxygen должен сопровождаться утверждением, даже материал заголовка, который описывает файл или пакет вместо определенного функция. roxygen() предоставляется как NOOP (нулевой оператор), чтобы встать для таких случаев.

но если я следую за блоком описания с помощью roxygen(), вызов package.skeleton вызывает Error in eval(expr, envir, enclos) : could not find function "roxygen". Поэтому я попытался оставить вызов roxygen() полностью, а также заменить его на NA, оба из которых, похоже, дают одинаковые результаты: package.skeleton() работает успешно (включая rlandscape-package.R как один из code_files аргументы), и тогда я могу roxygenize

> roxygenize("rlandscape", roxygen.dir = "rlandscape")
Updating collate directive in  /Users/Gregor/Dropbox/rlandscape/rlandscape/DESCRIPTION 
Updating namespace directives
Writing plot.landscape.Rd
Writing rland.Rd
Writing rland.gui.Rd
Writing makePoints.Rd
Writing rCluster.Rd
Writing rlandscape-package.Rd
Writing rlandscape.Rd

который, кажется, работает успешно, но файл DESCRIPTION имеет добавленное поле "Собрать", но в остальном он не изменяется от того, что создал package.skeleton. Почему не обновляется остальная часть файла описания?

4b9b3361

Ответ 1

roxygen2 работает так, как предполагалось, но я испытал ту же путаницу, когда я впервые использовал его для документирования пакета. Важным для понимания является то, что в миксе есть несколько различных файлов описания пакетов.

  • Когда обрабатывается разметка roxygen в rlandscape-package.R, она создает файл rlandscape-package.Rd в каталоге man вашего исходного пакета. Это, в свою очередь, создает документацию, которую вы видите при вводе ?rlandscape или ?"rlandscape-package".

  • Файл DESCRIPTION в верхней папке вашего исходного дерева - это совершенно отдельный зверь. Несмотря на то, что создается файл справки, который вы можете видеть (через help(package="rlandscape")), он имеет много других более важных ролей в управлении производством пакетов. только способ, которым он затрагивается/зависит от roxygen2, заключается в том, что функция collate_roclet() (выполняемая при roxygenize() вашем пакете) будет выполнять слияние с полем Collate в ранее существующий файл DESCRIPTION (как описано на стр. 10 этот pdf).

Главное домашнее сообщение состоит в том, что даже при использовании roxygen2, если вы хотите внести изменения в свой файл DESCRIPTION, вам нужно будет сделать это, просто отредактировав его.