roxygen2 не полностью обновляет файл DESCRIPTION - PullRequest
24 голосов
/ 02 марта 2012

Я делаю свою первую упаковку 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.Почему не обновляется остальная часть файла описания?

1 Ответ

30 голосов
/ 03 марта 2012

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

...