管理R包中的外部资产

时间:2012-07-03 15:33:38

标签: git r

我正在编写一个名为slidify的R包,可以轻松地从R Markdown文件生成可重现的HTML5幻灯片。该软件包使用来自几个现有HTML5幻灯片生成框架的cssjs文件,如dzslidesdeck.js等。目前,我已经组织了这些外部资产的下载版本在inst/libraries的{​​{1}}文件夹中,以便在安装时自动可供用户使用。虽然这种方法很简单,但也存在一些缺点:

  1. 这些框架会在slidify上不断更新。在当前设置下,每次更新任何这些框架时,我都必须推送新版本的软件包。

  2. 如果我对这些框架附带的默认githubcss进行了任何调整,那么我需要仔细合并这些更新,这样我就不会失去{{ 1}}特定的自定义。

  3. 我对如何管理这个问题有几点想法。

    1. 不要将这些库与js打包在一起。相反,提供一个slidify,允许用户添加他们想要的框架。

    2. 将这些框架添加到slidify上的function文件夹,但是inst\libraries。现在,我不知道如果有人使用slidify,是否会将其添加为submodules会安装它们。

    3. 所以我的问题是,在编写R包时,如何管理不断更新的外部非R依赖项?

2 个答案:

答案 0 :(得分:2)

一个类似的情况是查看包xlsxXLConnect

这两个包都依赖于Java库。 xlsx定义(并依赖于)仅包含库的独立包xlsxjars

通过这种方式,下游代码与库分离。

答案 1 :(得分:1)

我使用git-subtree解决了类似的问题。看看:Managing 3rd party sources and binaries used by code under source control