R包版本化依赖项

时间:2015-08-27 21:05:11

标签: r dependencies versioning packages

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

httr (>= 0.6.1),
jsonlite (>= 0.9.14)

如果不符合要求,包裹将无法运作。我可以看到,如果我将它们都放在Depends中,这些版本限制将由R强制实施。如果我将它们置于Imports下,则看起来它们不是。没有必要把包装放在Depends中,我不需要它们,我知道这样做是不好的做法。

预计Imports不会强制实施版本限制吗?将包保留在Imports并让.onLoad函数检查过期依赖项是不是犹太?

1 个答案:

答案 0 :(得分:1)

Writing R Extensions第1.1.3节说

  

'Imports'字段...版本要求   可以指定并在加载命名空间时检查(因为R> = 3.0.0)。

所以听起来缺少版本检查是一个错误,应该报告给R-devel mailing listbug tracker

嗯,我认为在加载名称空间时会强制执行检查,例如,在NAMESPACE文件中加载import(httr)。如果您的代码在没有明确从httr导入的情况下使用httr::foo(),那么就不会进行检查,也可能在运行时进行检查。所以再次看起来像一个错误,即使与文档一致('当命名空间加载'时检查)。