Я стараюсь внимательно следить за @hadley book, чтобы узнать лучшие практики написания пакетов R. И я был в восторге, прочитав эти строки о философии книги:
все, что может быть автоматизировано, должно быть автоматизировано. Сделайте так же мало, как возможно вручную. Сделайте как можно больше функций.
Итак, когда я читал о зависимостях и (вроде) запутывающих различиях между директивами импорта в файле NAMESPACE и поле "Импорт:" в файле DESCRIPTION, я надеялся, что roxygen2
будет автоматически обрабатывать оба из них, После всего
Каждый пакет, указанный в NAMESPACE, также должен присутствовать в Импортирует или Зависит.
Я надеялся, что roxygen2
будет использовать каждый @import в моих функциях и убедиться, что он включен в файл DESCRIPTION. Но это не делает это автоматически.
Поэтому я либо должен добавить его вручную в файл DESCRIPTION, либо почти вручную, используя devtools::use_package
.
Оглядываясь на ответ, я нашел это question в SO, где @hadley подтверждает в комментариях, что
В настоящее время робот пространства имен будет изменять NAMESPACE, но не ОПИСАНИЕ
и другие сообщения (например здесь или здесь), где collate_roclet
, но "Это имеет значение только в том случае, если ваш код имеет побочные эффекты, чаще всего потому, что вы используете S4 ".
Интересно:
- причина, по которой ОПИСАНИЕ не обновляется автоматически (что противоречит вышеупомянутой философии, которая, по-видимому, разделяется
roxygen2
) и - Если кто-то уже создал способ сделать это