所以,我正在创建一个脚本来扩展devtools::create()
的功能,并且当我用utils::maintainer
仔细检查时,我注意到一些有点奇怪的行为。这是一个MWE,我通过Authors@R
选项设置了描述文件的devtools.desc.author
部分:
options(devtools.desc.license = "AGPL-3")
options(devtools.desc.author = "'Joe Dirt <joe@durt.ee> [aut, cre]'")
descArgs <- list(Package = "testPkg",
Title = "testPkg",
Description = "some desc.")
options(devtools.desc = descArgs)
devtools::create(path = "testPkg", check = TRUE)
现在,如果您继续运行devtools::install("testPkg", quiet=TRUE)
,然后maintainer("testPkg")
,则
> maintainer("testPkg")
[1] "'Joe Dirt' <joe@durt.ee>"
所以我的问题是:为什么维护者的名字在这里被引用?
答案 0 :(得分:1)
这似乎是关于如何从Authors @ R自动生成Maintainer字段的问题。见:http://cran.r-project.org/doc/manuals/r-release/R-exts.html
如果给出合适的'Authors @ R'字段,则可以省略'Author'和'Maintainer'字段。该字段可用于通过合适的R代码提供包“作者”(特别是指定其精确角色)的精炼和机器可读描述。这些角色可以包括'&#34; aut&#34;'(作者)为完整作者,&#34; cre&#34;'(创建者)为包维护者,'&#34; ctb&#34;' (贡献者)其他贡献者,'&#34; cph&#34;'(版权所有者)等。有关更多信息,请参阅?person。请注意,默认情况下不承担任何角色。自动生成的包引用信息利用了此规范。如果在构建5或安装时需要,可以从中自动生成“作者”和“维护者”字段。
因此,您应该使用person
函数指定作者列表,如下所示:
options(devtools.desc.author ="c(person('Joe','Dirt',email='joe@durt.ee',role=c('aut','cre')))")