是否有一种直接的方法来显示 R 包的两个版本之间的依赖关系结构如何不同的可读概述?

问题描述 投票:0回答:1

假设我想比较例如

devtools 2.4.2
devtools 2.4.5
。是否有一些预构建的函数“某处”会返回一个可读的输出,通知我包的依赖结构发生了什么变化?

目前,我看到的唯一选择是手动比较

DESCRIPTION
文件并做笔记。我知道 - 当然 - 我可能可以自己写一些东西,但问题或多或少是有人已经这样做了以及我在哪里可以找到它。

r dependencies
1个回答
0
投票

基础 R 包中藏有许多好东西

tools
。由于您有两个
DESCRIPTION
文件(或可以获得它们......),您可以使用它们。

这是使用 CRAN 包的示例

rgl
:

> db <- tools:::.read_description("DESCRIPTION")
> tools:::.get_requires_from_package_db(db, "Suggests")
  Suggests1   Suggests2   Suggests3   Suggests4   Suggests5 
     "covr"      "curl"  "datasets"     "knitr" "rmarkdown" 
  Suggests6   Suggests7   Suggests8   Suggests9  Suggests10 
 "spelling"   "stringi"  "testthat"      "tzdb"     "waldo" 
 Suggests11  Suggests12 
    "withr"      "xml2" 
> tools:::.get_requires_from_package_db(db, "Imports")
   Imports1    Imports2    Imports3    Imports4    Imports5 
      "cli"     "clipr"    "crayon"       "hms" "lifecycle" 
   Imports6    Imports7    Imports8    Imports9   Imports10 
  "methods"        "R6"     "rlang"    "tibble"     "utils" 
  Imports11 
    "vroom" 
> 

因此,您可以整理

Imports
Depends
LinkingTo
Suggests
,然后运行
setdiff()
。之后你就可以漂亮地打印了。

© www.soinside.com 2019 - 2024. All rights reserved.