R程序包的作者与贡献者-少量代码贡献的角色?

时间:2020-02-19 11:30:16

标签: r open-source cran attribution

如果有人向R库提供了有用的代码块,那么他们在软件包文档中的合适角色是什么?

为什么重要

我已经看到此类案例具有贡献者的作用,但是在回顾了作者和贡献者的定义之后,我相信作者是适当的角色。但是可能还有其他更合适的东西(或者也许都是 作者/贡献者)

library of congress所说的

作者:

负责创作内容主要为文本的作品的个人,家庭或组织,而不论媒体类型(例如印刷文本,口语,电子文本,触觉文本)或体裁(例如诗歌,小说,电影剧本,博客)。也供他人使用,通过改写,重写或改编另一位创作者的作品来创作新作品,以使修改实质上改变了原著的性质和内容,或改变了表达媒介

贡献者:

负责为资源做出贡献的个人,家庭或组织。这包括那些其工作已促成更大作品的人,例如选集,系列出版物或其他个人作品的汇编。如果可以使用更具体的角色,请选择该角色。编辑器,编译器,插画家

可能的困惑点

  • 接受拉取请求后,github将把PR的创建者称为“贡献者”
  • 在日常对话中,可以将为项目提供有用输入的人合理地称为“贡献者”。

2 个答案:

答案 0 :(得分:6)

正如先前的答案所指出的,其想法是区分不同代码贡献的实质性。手册页?person说明:

新方案还增加了指定角色的可能性 基于MARC代码列表的子集(URL: https://www.loc.gov/marc/relators/relaterm.html)。给予时 在编写R包的过程中人员的角色, 建议以下用法。

  • "aut"(作者)用于已发表大量著作的正式作者 对包裹的贡献,并应在包裹引用中显示。
  • "cre"(创建者)用于软件包维护者。
  • "ctb"(贡献者)用于较小的作者 贡献(例如代码补丁等),但不应显示 在包裹引用中。

还提供了有关在R包中使用其他角色的建议("com""cph""ctr""dtc""fnd""rev""ths""trl")。如果软件包“ foo”没有专用的CITATION文件,则上述引用是从citation("foo")获得的“默认”或“自动”引用。如果有,您仍然可以通过citation("foo", auto = TRUE)获取默认值。有关更多详细信息,请参见?citation

回到“作者”与“贡献者”的问题:当我们写上面的文档(以及《 R杂志》上Hornik et al。的随附论文)时,我们故意给出了粗略的指导原则,因为最终的决定是“足够实质”是由程序包作者自己决定的。这与决定将谁列入科学论文的作者名单还是在致谢中提到的决定是一致的。为此,实践在各个学科/社区之间也有很大差异。

一种常见的策略是区分三个贡献级别:

  • 那些贡献很小的人(例如小的修正或改进)未在“说明”中列出,但在“新闻”或“变更日志”中得到认可。这适用于通过错误/问题跟踪器或在GitHub或类似平台上的小请求请求做出的许多小贡献。
  • 那些提供了较大补丁,小助手功能,针对特定情况的附加功能的人等,应在说明书中列为“创建者”(ctb)。这也适用于从其他软件包或其他来源复制代码部分的情况。
  • 做出较大和/或持续贡献的人员,足以在“说明”和软件包的默认/自动引用中列为“作者”(aut)。

参考文献:Hornik K,默多克D,Zeiles A(2012年)。 “谁做了什么?R软件包作者的角色以及如何引用他们。” R Journal 4 (1),第64-69页。 doi:10.32614/RJ-2012-009

答案 1 :(得分:2)

我认为这是一个非常有趣的问题,我以前对此很纳闷。

不幸的是,我认为您提供的两个定义并不像您想象的那么清晰。一个问题是,根据您的阅读方式,您可能会认为作者和贡献者对于在程序包中编写代码的人都是正确的标签。只需看看定义中使用的类别中的R包是什么:

您可以将软件包视为“内容主要为文本的作品,而与媒体类型无关”(在这种情况下,写在上面的人将是作者),或者“对单个作品进行汇编” -在这种情况下,添加了个人作品(例如功能)的人将成为参与者。

在哈德利·威克汉姆(Hadley Wickham)的“ R包装”一书中,section about the author必须说以下话:

  • cre:创建者或维护者,如果您要打扰的人 有问题。

  • aut:作者,那些对 包。

  • ctb:贡献者,那些贡献较小的人,例如 补丁。

(其原始出处似乎是本文:Hornik, Murdoch and Zeileis (2012)

使用贡献的大小来确定某人是作者还是贡献者,似乎是解决区别的好方法。

留下什么是实质性贡献的问题。最终,我认为这必须在作者和贡献者之间进行谈判。理想情况下,创建者/维护者可以建立一个准则,或者在可能的PR之前讨论该问题。

我在此建议的一个经验法则是询问该软件包的核心功能是否存在而无需一个人的贡献。如果答案为“否”,那么此人是作者。如果答案是“是的,但他们也做不到”,我认为这个人应该是一个贡献者。