roxygen2 не полностью обновляет файл описания
Я делаю свой первый пакет rlandscape
, используя Roxygen2 и пытаясь следовать простой виньетке Roxygen, поскольку у Roxygen2 ее нет.
Как и в виньетке (стр. 3), я создал файл под названием rlandscape-package.R
, который не содержит ничего, кроме документации пакета. В виньетке говорится:
За каждым блоком описания Roxygen должен следовать оператор, даже материал заголовка, описывающий файл или пакет вместо определенного функция. roxygen () предоставляется как noop (оператор null), чтобы стоять в для таких случаев.
Но если я следую за блоком описания с 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
Который, кажется, работает успешно, но файл описания имеет поле " Collate прилагается, но в остальном не изменяется от того, что создано package.skeleton
. Почему остальная часть файла описания не обновляется?
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 ).Главное сообщение take home заключается в том, что даже при использовании roxygen2, если вы хотите внести изменения в свой файл
DESCRIPTION
, вам нужно будет сделать это непосредственно редактируя его.