撰写 Jupyter 相关学术论文的流程#
本文档描述了撰写 Jupyter 相关学术论文的流程,这些论文通常会提交给同行评审的期刊。这不包括向会议提交的演讲和海报,除非该会议也出版书面论文集。
一方面,Project Jupyter 的主要重点是生产开源软件。我们非常专注于编写能让用户满意的代码。另一方面,Jupyter(和 IPython)源于学术环境,其中研究和同行评审的出版物是主要焦点。直到今天,我们的许多核心贡献者都拥有学术职位和活跃的研究项目。这一重点也反映在 Jupyter 在所有科学研究领域的使用上。因此,尽管我们专注于为用户编写软件,Jupyter 仍然是一个由研究人员开发并为研究人员服务的工具。
鉴于对研究的关注、许多 Jupyter 贡献者持续的学术生涯,以及我们希望对计算研究产生影响的愿望,撰写和发表关于 Jupyter 本身的同行评审论文对我们来说非常重要。在一个大型开源社区的背景下撰写这些论文,与许多研究合作相比,存在一些不同之处。
原则#
我们试图在创建撰写论文的流程时遵循以下一般原则:
作者身份的包容性和慷慨性。 数百名个人为不同的 Jupyter 子项目做出了贡献。这些贡献涵盖了代码、设计、文档、讨论、演讲/教程等。我们希望慷慨地将作者的权利和责任扩展到尽可能多的贡献者。
清晰、明确的作者资格标准。 在保持慷慨的同时,我们希望有具体、明确且可核查的标准来确定作者人选。
开放性。 撰写论文的过程应该像项目的其他工作一样开放。因此,我们所有的论文都在 GitHub 上公开撰写。
问责制。 成为一篇论文的作者是一种荣幸,但也伴随着责任。下面描述的具体流程阐明了这些责任。
我们期望向不同类型的期刊撰写和提交论文。不同的期刊会有略微不同的具体流程,以适当地体现这些原则。
作者排序#
在一些学术领域,作者的排序被用来含蓄地传达个人贡献的水平和重要性。我们强烈认为这是误导和错误的。因此,所有 Jupyter 论文将采用以下作者排序政策:
第一作者将列为“Project Jupyter”;
个人作者将按字母顺序排列;并且
论文中将包含关于排序方式的明确声明。
将第一作者列为“Project Jupyter”非常重要,因为这意味着在缩写引用中,作者列表将是“Project Jupyter, et al.”,而不是人为地显示按字母顺序排在第一位的作者姓名。这在高能物理等拥有大量作者的学术领域是常见做法。
开源软件期刊 (JOSS) 的流程#
开源软件期刊(Journal of Open Source Software,JOSS)是一个经过同行评审、对开发者友好的研究相关软件期刊。JOSS 的独特之处在于:
每篇论文都与一个单一的 GitHub 仓库相关联;
主要的研究成果是软件本身;并且
论文本身是软件 GitHub 仓库中一个相对简短的 Markdown 文件,软件的详细信息则由其自身文档提供。
我们打算为我们每个主要的、面向用户的子项目(Notebook、JupyterLab、JupyterHub、nbconvert、ipywidgets 等)发表一篇 JOSS 论文。所有此类论文都应使用本文描述的流程。
JOSS 作者资格标准#
我们的 JOSS 论文作者资格标准源自 ICMJE 的标准:
对软件的概念、设计或实现做出重大贡献;这包括编码、视觉设计、文档、测试、讨论及其他类似贡献;并且
最终批准待发表的版本;并且
同意对工作的所有方面负责,确保与工作任何部分的准确性或完整性相关的问题得到适当的调查和解决。
任何满足并愿意接受这些责任和承诺的人,都欢迎成为我们任何 JOSS 出版物的作者。
JOSS 流程#
撰写任何与 Jupyter 相关的 JOSS 论文时,应使用以下流程:
1. 有人同意担任一篇论文的协调员#
一篇 JOSS 论文将与一个 Jupyter 仓库相关联。协调员通常是该项目的高级贡献者、指导委员会成员或该子项目的负责人。
协调员的职责是为该论文执行此流程。他们不必亲自撰写 JOSS 论文,但他们将与社区合作组织论文的撰写工作。
2. 开设一个 issue 并宣布论文的撰写#
协调员应在该仓库上开设一个 issue 来组织论文的撰写,然后向 Jupyter Google Group 宣布该论文正在撰写中,任何人都可以贡献(并附上该 issue 的链接)。
3. 在仓库中起草论文#
此时,协调员应组织实际论文的撰写工作。
JOSS 作者指南详细说明了 JOSS 论文的格式和要求。通常,这需要在仓库的根目录下创建一个 paper
子目录,其中包含两个文件:paper.md
和 paper.bib
。论文应使用我们标准的拉取请求和代码审查流程进行撰写。
3. 通过电子邮件联系潜在作者#
一旦论文的最终草稿被合并到仓库中,协调员应通过电子邮件联系所有潜在作者,邀请他们参与。通常这至少包括两封电子邮件:
单独给仓库 Git 日志中列出的所有贡献者发送电子邮件。这个列表可以使用 Git 命令
git log --all --format='%cN <%cE>' | sort -u
生成。向主要的 Jupyter Google Group 发送电子邮件,以包括未在 Git 日志中列出的人员。
此外,协调员应向初次撰写学术出版物的个人(如学生)发送个人邮件,解释我们撰写论文的原因,并鼓励他们参与。这些个人邮件应抄送给该个人的导师或顾问(如果适用)。
这两类电子邮件都应包括:
上述 JOSS 作者资格标准的原样副本;
描述每位个人需要完成哪些任务才能成为论文作者;
完成这些任务的具体截止日期(至少 2 周后);以及
指向仓库中论文档案的链接。
每位个人需要完成的任务如下:
在 ORCID 上创建一个账户。
向仓库提交一个 PR,将他们的姓名、ORCID ID 和所属机构添加到论文中;
对论文内容提出任何编辑建议;
在 PR 的评论中,简要描述他们对该工作的贡献;并且
在 PR 的评论中,确认他们已阅读论文并同意发表。
随着截止日期的临近,协调员应提醒潜在作者完成他们的任务。
4. 最终提交#
一旦作者完成任务的截止日期已过,协调员应确保作者按字母顺序列出。然后协调员可以提交论文。
传统学术论文的流程#
提交给其他(非 JOSS)期刊的论文通常篇幅更长,撰写时间也更久。它们通常会在一个专门的仓库(在 jupyter-resources GitHub 组织下)中撰写。由于这些因素,流程略有不同。
作者资格标准#
非 JOSS 论文的作者资格标准与 JOSS 的略有不同,因为所有作者都应积极参与论文的撰写和编辑。
我们的论文作者资格标准源自 ICMJE 的标准:
对软件的概念、设计或实现做出重大贡献;这包括编码、视觉设计、文档、测试、讨论及其他类似贡献;并且
起草作品或对其重要知识内容进行批判性修订;并且
最终批准待发表的版本;并且
同意对工作的所有方面负责,确保与工作任何部分的准确性或完整性相关的问题得到适当的调查和解决。
任何满足并愿意接受这些责任和承诺的人,都欢迎成为我们任何出版物的作者。
第二项责任意味着所有作者都将积极参与手稿的撰写。我们认识到,并非所有合著者对论文撰写的贡献都相等或方式相同。此外,对于有大量合著者的论文,我们期望主要的撰写工作由一小部分合著者完成,其他合著者则参与编辑工作和讨论。然而,在所有情况下,仍然需要以某种方式积极参与。
流程#
在为非 JOSS 论文创建详细流程之前,我们希望先试行上述 JOSS 论文的流程,看看如何针对篇幅更长的论文进行修改。总的来说,我们期望密切遵循 SymPy 项目撰写这篇论文时所使用的流程。