我打算将我的第一个软件包提交给CRAN。我听说您不应有任何错误,警告或注释。但是,我得到的注释说明包依赖关系太多:
“导入包括24个非默认程序包。从这么多程序包中导入会使该程序包易受其中任何一个变得不可用的影响。请尽可能多地移至“建议”并有条件地使用。”
测试中的警告
我已经为该程序包创建了测试用例;但是,为了保持大小限制,我需要使用的案例少于通常使用的案例。并且在运行测试时会产生不同的警告。提交CRAN时可以具有这些与测试相关的警告吗?
提前致谢!约翰
在大多数情况下,假设您通过,“注释”不会自动导致审阅者拒绝您的提交R CMD CHECK --as-cran [yourpackage]
。在这种情况下,我会忠告于此。
首先,决定你是否真的,真的需要所有这些进口可言,更不用说作为imports
。那看起来确实是一个很大的集合。例如,确保您不能调用被引用的程序包A,B,C和D中的某些函数,而不是调用包K,Q和T中的类似函数(从A到X列出引用)。如果您仅使用软件包中的一个独立函数,即不依赖于该软件包中任何其他项目的函数,请从此处复制源代码,并注明出处,并将其复制到软件包的源目录中。
其次,仅在需要它们才能使您的函数能够执行时才导入它们,而不管其参数列表如何。仅支持特定“模式”或选项的软件包应移至Suggests
。
我引用了文档“ R_exts”的相关部分,希望您已经阅读以下内容。
必须在“依赖”或“建议”或“导入”之一中列出成功对软件包进行R CMD检查所需的所有软件包7。用于有条件地运行示例或测试的软件包(例如,通过if(require(pkgname)))应列在“建议”或“增强”中。(这使检查人员可以确保安装了完整检查所需的所有软件包。)尤其是,为进行精益安装,应在“建议”而非“ Depends”中列出提供“仅”示例或小插图数据的软件包。可能。库在加载软件包并安装时会使用'Depends'和'Imports'字段中的版本依赖性,install.packages将检查'Depends','Imports'和(Suggests')字段的版本。这些字段中的信息的完整性和准确性越来越重要:例如,它用于计算哪些软件包依赖于更新的软件包以及哪些软件包可以安全地并行安装。此方案是在所有程序包都具有名称空间之前开发的(2011年10月为R 2.14.0),并且一旦实施就改变了良好实践。如今,“依赖”字段很少使用,仅用于打算放在搜索路径上以使最终用户可以使用其工具的软件包(而不是软件包本身):例如,有意义的是包gridExtra希望提供包晶格的功能。几乎总是在'Depends'中提到的软件包也应该从NAMESPACE文件中导入:这样可以确保当某些其他软件包导入当前软件包时,这些软件包中任何需要的部分都可用。“导入”字段中不应包含不是从(通过NAMESPACE文件或::或:::运算符)导入的软件包,因为要安装当前软件包,必须安装该字段中列出的所有软件包。(这通过R CMD检查进行检查。)包中的R代码应调用库或仅需特殊要求。对于“ Depends”中列出的软件包,永远不需要这种调用,因为它们已经在搜索路径中了。在使用了其功能的函数中,对“建议”中列出的软件包使用require调用是一种常见的做法,但是如今最好通过::调用来访问此类功能。)包中的R代码应调用库或仅要求特殊。对于“ Depends”中列出的软件包,永远不需要这种调用,因为它们已经在搜索路径中了。在使用了其功能的函数中,对“建议”中列出的软件包使用require调用是一种常见的做法,但是如今最好通过::调用来访问此类功能。)包中的R代码应调用库或仅要求特殊。对于“ Depends”中列出的软件包,永远不需要这种调用,因为它们已经在搜索路径中了。在使用了其功能的函数中,对“建议”中列出的软件包使用require调用是一种常见的做法,但是如今最好通过::调用来访问此类功能。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句