我正在更新R包并有两个特定的依赖项
httr (>= 0.6.1),
jsonlite (>= 0.9.14)
如果不符合要求,包裹将无法运作。我可以看到,如果我将它们都放在Depends中,这些版本限制将由R强制实施。如果我将它们置于Imports下,则看起来它们不是。没有必要把包装放在Depends中,我不需要它们,我知道这样做是不好的做法。
预计Imports不会强制实施版本限制吗?将包保留在Imports并让.onLoad函数检查过期依赖项是不是犹太?
答案 0 :(得分:1)
Writing R Extensions第1.1.3节说
'Imports'字段...版本要求 可以指定并在加载命名空间时检查(因为R> = 3.0.0)。
所以听起来缺少版本检查是一个错误,应该报告给R-devel mailing list或bug tracker。
嗯,我认为在加载名称空间时会强制执行检查,例如,在NAMESPACE文件中加载import(httr)
。如果您的代码在没有明确从httr导入的情况下使用httr::foo()
,那么就不会进行检查,也可能在运行时进行检查。所以再次看起来像一个错误,即使与文档一致('当命名空间加载'时检查)。