R包版本依赖项

R包版本依赖项,r,dependencies,versioning,packages,R,Dependencies,Versioning,Packages,我正在更新一个R包,并且有两个特定的依赖项 httr (>= 0.6.1), jsonlite (>= 0.9.14) 如果不满足这些要求,则软件包将无法运行。我可以看到,如果我把它们都放在依赖项下,这些版本限制将由R强制执行。如果我把它们放在导入项下,它们似乎不是。没有必要把包裹放进去,我不需要把它们连在一起,我知道这样做是不好的做法 是否预期导入不会强制执行版本限制?将软件包保留在导入中,并使用.onLoad函数检查过时的依赖项,这是否符合犹太教义?第1.1.3节说 “导入”字

我正在更新一个R包,并且有两个特定的依赖项

httr (>= 0.6.1),
jsonlite (>= 0.9.14)
如果不满足这些要求,则软件包将无法运行。我可以看到,如果我把它们都放在依赖项下,这些版本限制将由R强制执行。如果我把它们放在导入项下,它们似乎不是。没有必要把包裹放进去,我不需要把它们连在一起,我知道这样做是不好的做法

是否预期导入不会强制执行版本限制?将软件包保留在导入中,并使用.onLoad函数检查过时的依赖项,这是否符合犹太教义?

第1.1.3节说

“导入”字段。。。版本要求 可以指定,并在加载命名空间时进行检查(因为R>=3.0.0)

因此,听起来缺少版本检查是一个bug,应该向R-devel或R-devel报告


嗯,我认为检查是在加载名称空间时执行的,例如,名称空间文件中的
import(httr)
。如果您的代码要使用
httr::foo()
,而从未显式地从httr导入,那么将不会进行检查,或者可能在运行时进行检查。因此,即使与文档一致(“加载名称空间时已检查”),它仍然看起来像是一个bug。

情况似乎恰恰如此。我一直在使用httr::和jsonlite::,因此从未加载名称空间。将import或importFrom添加到命名空间文件会导致进行检查。非常感谢。