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, вам нужно будет сделать это непосредственно редактируя его.