[ZH] 如何贡献?
[ZH] 感谢您投入时间为项目做出贡献!您所做的任何贡献都将反映在最新版本的 distilabel 🤩 中。
[ZH] 刚开始进行贡献?
[ZH] 如果您是新的贡献者,请阅读 README 以了解项目的概况。此外,这里有一些资源可以帮助您开始进行开源贡献
- Discord: [ZH] 欢迎加入 distilabel Discord 社区,您可以在那里与其他用户、贡献者和 distilabel 团队保持联系。在下面的 部分 中,您可以找到有关如何在 Discord 中入门的更多信息。
- Git: [ZH] 这是一个非常有用的工具,用于跟踪文件中的更改。使用命令行界面 (CLI),您可以轻松地做出贡献。为此,您需要在计算机上 安装和更新它。
- GitHub: [ZH] 这是一个平台和基于云的服务,它使用 git 并允许开发人员在项目上进行协作。要为 distilabel 做出贡献,您需要创建一个帐户。查看 使用 Git 和 Github 的贡献者工作流程 以获取更多信息。
- Developer Documentation: [ZH] 要进行协作,您需要设置一个高效的环境。查看 安装 指南,了解如何操作。
[ZH] 在 Discord 中首次联系¶
[ZH] Discord 是一个方便的工具,可以进行更随意的对话并回答日常问题。作为 Hugging Face 的一部分,我们在服务器上设置了一些 distilabel 频道。单击 此处 即可轻松加入 Hugging Face Discord 社区。
[ZH] 当您加入 Hugging Face Discord 后,您可以选择“频道和角色”,然后选择“Argilla”以及您感兴趣的任何其他组。“Argilla”将涵盖有关 argilla 和 distilabel 的所有内容。您可以加入以下频道
- #argilla-distilabel-announcements: 📣 [ZH] 保持最新状态。
- #argilla-distilabel-general: 💬 [ZH] 用于一般讨论。
- #argilla-distilabel-help: 🙋♀️ [ZH] 需要帮助吗?我们随时为您提供帮助。为您的 issue 选择适当的标签(argilla 或 distilabel)并发布。
[ZH] 所以现在只剩下一件事要做:介绍你自己并与社区交谈。你总是会受到欢迎! 🤗👋
[ZH] 使用 Git 和 GitHub 的贡献者工作流程¶
[ZH] 如果您正在使用 distilabel,并且突然间想到了一个新想法,或者您发现了一个可以改进的问题,那么现在是积极参与并为项目做出贡献的时候了!
[ZH] 报告问题¶
[ZH] 如果您发现问题,搜索是否已存在问题,您可以使用 Label
过滤器。如果是这种情况,请参与对话。如果不存在,请单击 New Issue
创建一个问题。这将显示各种模板;选择最适合您问题的模板。选择一个后,您需要按照指南填写它。尽量尽可能清晰。此外,您可以将自己分配给该 issue,并添加或选择正确的标签。最后,单击 Submit new issue
。
[ZH] 使用 Fork¶
[ZH] Fork distilabel 仓库¶
[ZH] 报告问题后,您可以开始处理它。为此,您需要创建项目的一个 fork。要做到这一点,点击 Fork
按钮。现在,填写信息。如果您要在另一个分支中或从另一个分支工作(例如,修复文档,则使用 main
分支),请记住取消选中 Copy develop branch only
。然后,点击 Create fork
。
[ZH] 您将被重定向到您的 fork。您可以看到您在您的 fork 中,因为仓库的名称将是您的 username/distilabel
,并且它将指示 forked from argilla-io/distilabel
。
[ZH] 克隆你 Fork 的仓库¶
[ZH] 为了进行必要的调整,将 fork 的仓库克隆到您的本地机器。选择目标文件夹并运行以下命令
[ZH] 为了使您的 fork 的 main/develop 分支与我们的仓库保持同步,请将其添加为上游远程分支。
[ZH] 创建新分支¶
[ZH] 对于您要处理的每个 issue,建议创建一个新分支。GitHub 提供了一种直接的方法来简化此过程。
⚠️ [ZH] 永远不要直接在
main
或develop
分支上工作。始终为您的更改创建一个新分支。
[ZH] 导航到您的 issue,并在右侧列中选择 Create a branch
。
[ZH] 在新窗口弹出后,分支将以 issue 命名,并包含诸如 feature/、bug/ 或 docs/ 之类的作为前缀,以方便快速识别 issue 类型。在 Repository destination
中,选择您的 fork ([your-github-username]/distilabel),然后选择 Change branch source
以指定用于创建新分支的源分支。单击 Create branch
完成该过程。
🤔 [ZH] 请记住,
main
分支仅用于处理文档。对于任何其他更改,请使用develop
分支。
[ZH] 现在,在本地,切换到您刚刚创建的新分支。
[ZH] 进行更改并推送它们¶
[ZH] 在您的本地仓库中进行您想要的更改,并测试一切正常,并且您遵循了指南。
[ZH] 完成后,您可以检查仓库的状态,并使用以下命令与上游仓库同步
# Check the status of your repository
git status
# Synchronize with the upstreaming repo
git checkout [branch-name]
git rebase [default-branch]
[ZH] 如果一切正常,我们需要提交更改并将其推送到您的 fork。为此,请运行以下命令
# Add the changes to the staging area
git add filename
# Commit the changes by writing a proper message
git commit -m "commit-message"
# Push the changes to your fork
git push origin [branch-name]
[ZH] 推送时,系统会要求您输入 GitHub 登录凭据。推送完成后,所有本地提交都将在您的 GitHub 仓库中。
[ZH] 创建 Pull Request¶
[ZH] 返回 GitHub,导航到您创建 fork 的原始仓库,然后单击 Compare & pull request
。
[ZH] 首先,单击 compare across forks
并选择正确的仓库和分支。
[ZH] 在基础仓库中,请记住您应该根据所做的修改选择
main
或develop
。在 head 仓库中,指示您的 fork 的仓库和与 issue 对应的分支。
[ZH] 然后,填写 pull request 模板。您应该为 PR 名称添加前缀,就像我们在上面的分支中所做的那样。如果您正在开发新功能,您可以将您的 PR 命名为 feat: TITLE
。如果您的 PR 包含针对 bug 的解决方案,您可以将您的 PR 命名为 bug: TITLE
。并且,如果您的工作是为了改进文档,您可以将您的 PR 命名为 docs: TITLE
。
[ZH] 此外,在右侧,您可以选择审阅者(例如,如果您与团队成员讨论了该 issue)并将 pull request 分配给自己。强烈建议也为 PR 添加标签。您可以再次通过屏幕右侧的标签部分来完成此操作。例如,如果您正在处理 bug,请添加 bug
标签,或者如果 PR 与文档相关,请添加 documentation
标签。这样,PR 可以很容易地被过滤。
[ZH] 最后,仔细填写模板并遵循指南。请记住链接原始 issue 并启用复选框以允许维护者编辑,以便可以更新分支以进行合并。然后,单击 Create pull request
。
[ZH] 对于 PR 正文,请确保您描述了 PR 包含的内容,并在可能的情况下添加示例(如果它们适用于贡献)以帮助进行审核过程。您可以查看 #PR 974 或 #PR 983 以获取典型 PR 的示例。
[ZH] 审核你的 Pull Request¶
[ZH] 提交 PR 后,团队成员将审核您的提案。我们可能会提出问题、索取更多信息或要求在合并 PR 之前进行更改,可以使用 建议的更改 或 pull request 注释。
[ZH] 您可以直接通过 UI 应用更改(检查已更改的文件并单击右角的三点;见下图)或从您的 fork 应用更改,然后将它们提交到您的分支。PR 将自动更新,建议将显示为 outdated
。
[ZH] 如果您遇到任何合并问题,请查看此 git 教程 以帮助您解决合并冲突和其他问题。
[ZH] 你的 PR 已合并!¶
[ZH] 恭喜 🎉🎊 感谢您 🤩
[ZH] 一旦您的 PR 被合并,您的贡献将在 distilabel GitHub 上公开可见。
[ZH] 此外,我们将根据我们的 开发分支 将您的更改包含在下一个版本中。
[ZH] 额外资源¶
[ZH] 这里有一些有用的资源供您参考。
- [ZH] 配置 Discord,学习如何开始使用 Discord 的指南。
- Pro Git,[ZH] 一本学习 Git 的书。
- [ZH] VSCode 中的 Git,学习如何在 VSCode 中轻松使用 Git 的指南。
- GitHub Skills,[ZH] 一个用于学习 GitHub 的互动课程。