Follow @fly-pigTH

文章/会议论文中的开源要求日益增加

学者们强调研究成果的可复现性,例如 Nature 期刊RA-LCoRL(机器人学习会议)等。

Nature 编辑部表示:“Nature 期刊鼓励提交依赖于定制软件的论文的研究人员提供程序以供同行评审。”

RSS:“我们建议避免使用链接,即使是匿名的。可以在论文的最终定稿版本中提供指向外部资源的链接(并且强烈推荐)。”

CoRL:“如果您有视频、代码、数据集和其他补充材料,请自行托管(例如,YouTube、GitHub 等)。您应该在论文正文中提供指向这些材料的链接,或者项目网站的链接。”

📝注意: 根据投稿要求,有时提供 zip 文件可能更合适。

什么是 GitHub,它能做什么?

GitHub 是一个用于托管和协作代码库的平台。它使开发者能够管理版本控制、协作项目并分享开源工作。以下是一些托管在 GitHub 上的著名项目:

1. 为什么在研究中使用 GitHub?

动机(痛点):

  • 研究文件经常变得混乱:同一脚本或数据集的多个版本。
  • 如果没有适当的版本控制,很容易丢失更改记录。
  • 协作困难:团队成员之间的代码或数据冲突。
  • 由于缺少代码或实验记录不清晰,许多论文无法复现。

GitHub 的价值:

  • 清晰记录实验和代码更改的历史。
  • 出现错误时回滚到以前的版本。
  • 通过分支和拉取请求实现高效协作。
  • 通过分享可复现的代码和文档提高学术影响力。

👉 示例可视化:
对比 “传统研究文件夹”(例如,final_version2_fixed_really_final.py

GitHub 仓库(提交历史 + 问题追踪)。

2. 研究人员的核心功能

  • 版本控制(提交 & 分支)
  • 协作工具(问题、拉取请求、项目)
  • 自动化(GitHub Actions 用于 CI/CD:运行测试、生成图表、更新文档)
  • 数据管理(Git LFS 用于大数据集或模型权重)
  • 传播(GitHub Pages 用于项目主页或论文演示)

👉 快速参考表:

GitHub 功能研究应用
分支 & PR团队协作、分工、合并贡献
问题跟踪实验任务、论文待办事项
Actions运行测试、自动生成图表、更新文档
Pages发布项目主页、论文演示网站

提交和开源的 GitHub 工作流

RAL'24 最佳论文 为例。它包括:

  1. 链接到论文、代码(GitHub)和 arXiv。
  2. 演示视频。
  3. 摘要、方法(即总体流程)、实验和结果。
  4. 始终附带 BibTex 引用。 实际上,这是从项目 nerfies 派生的一个仓库。

阶段 1:工作期间,寻找工具/构建项目。

  1. 克隆并使用他人的工作
$ git clone <repo-url>

📝注意: 开源仓库可以用于任何目的吗?不!您应该阅读并遵循 许可证

alt text 参考 https://choosealicense.com/

alt text 参考 知乎博客

在准备手稿期间… 您可以:

  1. 备份和版本控制(高级,使用 Git
  2. 协作(高级,使用 Git

alt text

阶段 2:投稿前(私有仓库):

当您完成工作并开源代码时…

  • 在双盲审稿期间我们应该怎么做?
  • 如何写一个好的模板?

在双盲审稿期间,如何分享代码而不暴露身份?

  • 为项目创建一个私有 GitHub 仓库。
  • 使用 git 确保正确的版本控制。
  • 添加 .gitignore 文件以排除不必要的文件。
  • 使用 匿名 GitHub 为审稿人准备匿名访问链接。

阶段 3:接受后(公开发布):

  • 将仓库设为公开,并将初始版本标记为 v1.0
  • 编写详细的 README.md,包括:
    • 一句话任务描述。
    • 展示结果的 GIF 或图片。
    • 安装说明(≤ 5 行)。
  • 添加 requirements.txtDockerfile 以实现可复现性。
  • 包含 CITATION.cff 并使用 Zenodo 生成 DOI。
  • 撰写博客教程以解释项目。

高级开源(ROS 2 包):

  • 将项目重构为 ROS 2 包。
  • 遵循 ROS 2 包的约定并确保兼容性。
  • 将包提交到 ROS 2 索引
  • 提供详细的安装和使用文档。

通过遵循这些步骤,项目将顺利从提交过渡到完全开源和可重用的资源。

提示与局限性

GitGitHub 无法完美解决的问题:

  1. 非文本文件,例如 Microsoft Office 文件(Word、PowerPoint、Excel)→ 推荐使用 OneDrive 存储此类文件
  2. 大型数据集 → 使用外部存储解决方案,例如 Zenodo、OSF 或 Kaggle

进一步教程

有关 GitHub 生态系统的详细教程和见解,您可以探索 中文 GitHub 社区,其中提供:

如果您是清华大学的学生,清华 Git 也是一个选择:

参考文献

  1. https://www.nature.com/articles/d41586-018-02741-4
  2. https://www.ieee-ras.org/publications/ra-l/information-for-authors-ra-l
  3. https://www.corl.org/contributions/instruction-for-authors
  4. https://srl-ethz.github.io/website_residual_physics/
  5. https://nerfies.github.io/
  6. https://choosealicense.com/
  7. https://anonymous.4open.science/
  8. https://www.github-zh.com/
  9. https://git.tsinghua.edu.cn/

致谢

如果您喜欢我们的文章,请关注 fly-pigTH!同时感谢 King-Bridge 的建议。 Follow @fly-pigTH

fly-pigTH (Yinglei Zhu)
fly-pigTH
King Bridge (Qiyao Wang)
King Bridge