关闭

如何归档和引用代码

正确归档和引用源代码是支持开放科学以及遵守“了解你的软件”原则(KYSW)。此页提供了一个简明的检查表,以便无缝地使用软件遗产来完成此操作。

步骤1:准备公共存储库

  • 添加自述文件
  • 添加作者文件
  • 使用推荐的两种方法之一添加许可证信息
  • (可选)添加codemeta。包含机器可读元数据的json文件(可以使用码元发生器

现在,一种公认的做法是同时添加自述文件的降价版本,但请将作者和许可证文件保持为纯文本。

第2步:在软件遗产中保存代码

有几种方法可以确保代码被存档,这取决于您首选的工作流以及它的宿主位置。它们总结如下,选择一个最适合你的。

通过updatesw浏览器扩展手动执行

对于托管在Bitbucket、GitHub、GitLab上的项目。com或任何GitLab实例,存档最好是通过安装专用更新wh browser extension,可用于Chrome和Firefox.

手动通过“立即保存代码”窗体

  • 转到软件遗产立即保存代码页面
  • 在下拉列表中选择适当的版本控制系统(目前支持git、svn和hg)
  • 输入代码存储库引用URL
    N、 B。一定是这样允许您从存储库克隆或签出项目的url! 如果有疑问,请使用适当的命令在临时目录中克隆/签出您的项目,以进行双重检查。以下是git、svn和hg的示例:

    • git克隆<your url>
    • svn checkout<your url>
    • hg clone<your url>
  • 单击Submit按钮。

自动通过API

可以通过软件遗产API,这使您能够将存档作为任何开发工作流的一部分。如果您使用许多流行的代码托管平台之一,我们建议您使用特定的API端点专为网络挂钩关于这些平台:请查看位桶终结点,GitHub终结点,GitLab终结点(及其所有实例),以及SourceForge终结点。在GitHub上也可以使用GitHub操作,这可能更易于配置,但请记住,它在幕后使用的资源比webhook调用要多,以获得相同的最终结果。

第三步:引用你的代码

要正确引用代码,请使用软件遗产标识符(SWHID),该标识符可以从软件遗产存档中获得,如下所示。

获取完整目录的SWHID

导航到目录你感兴趣的浏览器扩展以快速找到存档的存储库),并拔出红色永久链接选项卡,如下图所示,然后将SWHID标识符或永久链接复制到剪贴板,以便插入到文档中。

获取目录的SWHID

获取代码片段的SWHID

您还可以获取文件的SWHID,或文件中的代码片段。为此,首先导航到该文件,通过单击第一行的行号来选择(可选)感兴趣的代码片段,然后按住shift键并单击最后一行的行号。然后,拉出红色的Permalinks选项卡并复制SWHID标识符或相应的permalink。

获取代码片段的SWHID

对于乳胶用户

如果你用乳胶做你的文件,那么你会喜欢biblatex软件包:它让您为软件生成漂亮的书目条目,并且它本机支持SWHID。Biblatex软件集成在CTAN和TeXLive中,并在背面开箱即用(这里是一个官方ACM文章样式的模板文档). 截至2022年4月,biblatex软件已集成到ACM文章风格.

这是一个你可以得到的例子,摘自文章“利用软件遗产归档和引用源代码”,ICMS 2020。请尝试单击链接以查看结果,观看下面的教程以了解更多信息,然后阅读文档根据你的口味来调整。

参考文献

[1] [西南]罗伯托·迪科斯莫和马可·丹拉西托,Parmap图书馆y、 2012年。巴黎狄德罗大学和比萨大学。LIC:LGPL-2.0.网址:https://rdicomo.github.io/parmap/

[2] [SW Rel.]罗伯托·迪科斯莫和马可·丹拉托托,Parmap库版本0.9.8,2012年。巴黎狄德罗大学和比萨大学。许可证:LGPL-2.0.SWHID:<swh:1:版次:0064fbd0ad69de205ea6ec6999f3d3895e9442c2;起源=https://gitorious.org/parmap/parmap.git;就诊=swh:1:snp:78209702559384ee1b5586df13eca84a5123aa82>

[3] [SW exc.]罗伯托·迪科斯莫和马可·丹拉托托,”岩芯绘图程序“,来自Parmap库版本0.9.8,2012年。巴黎狄德罗大学和比萨大学。许可证:LGPL-2.0.SWHID:<swh:1:cnt:d5214ff9562a1fe78db51944506ba48c20de3379;起源=https://gitorious.org/parmap/parmap.git;就诊=swh:1:snp:78209702559384ee1b5586df13eca84a5123aa82;锚=swh:1:版本:0064fbd0ad69de205ea6ec6999f3d3895e9442c2;路径=/parmap.ml;线=101-143>