跳到内容

如何贡献

贡献

欢迎大家贡献,我们珍视每个人的贡献。因此,代码并不是帮助社区的唯一方式。回答问题、帮助他人、积极交流以及改进文档也都是非常有价值的贡献。

如果您能帮忙宣传,那也将对我们很有帮助:在博客文章中提及它所实现的很棒的项目,每次它帮助到您时在 X 上分享,或者仅仅给仓库点赞表示“感谢”。

查阅官方 Ludwig 文档,了解代码库结构,并加入社区!

待解决问题

问题列表位于: https://github.com/ludwig-ai/ludwig/issues

如果您想解决其中任何一个问题,请确保该问题尚未分配给其他人。

您可以通过在问题页面评论区使用以下关键词之一来给自己分配:#take#self-assign

解决您自己分配的问题,然后创建拉取请求。

创建拉取请求

  1. 点击仓库页面上的“Fork”按钮,Fork 该仓库。这将在您的 GitHub 账户下创建一个代码副本。

  2. 将您 Fork 的仓库克隆到本地磁盘,并添加原始仓库作为远程源

git clone git@github.com:<your Github handle>/ludwig.git
cd ludwig
git remote add upstream https://github.com/ludwig-ai/ludwig.git
  1. 创建一个新分支来存放您的开发更改
git checkout -b a-descriptive-name-for-my-changes

请勿* 在 master 分支上工作。

  1. 在虚拟环境中运行以下命令来设置开发环境
pip install -e .

上述命令将在开发者模式下仅安装“requirements.txt”中的包。如果您想能够对 Ludwig 整体代码库进行潜在更改,则使用以下命令

pip install -e .[full]

请注意,在某些 Shell 环境(例如 Z shell)中,方括号中的依赖项必须加引号

pip install -e ."[full]"

如果您不需要访问完整的 Ludwig 代码库,只想能够在核心功能上运行 pytest,则将上述命令替换为

pip install -e .[test]

(如果您的 Shell 环境要求方括号加引号,请使用 pip install -e ."[test]"。)

有关 Ludwig 中所有可选依赖项的完整列表,请参阅安装指南和 Ludwig 仓库根目录下的“setup.py”。

  1. 在搭载 Apple Silicon 芯片的 MacOS 上,如果此安装方法遇到错误,您可能需要安装以下先决条件
brew install cmake libomp

此步骤要求您的开发机器上已安装 homebrew

  1. 安装并运行 pre-commit
pip install pre-commit
pre-commit install
  1. 最后,如果在安装 horovod 期间,发生 ModuleNotFoundError: No module named 'packaging' 异常,您可能需要禁用 horovod(这意味着您将需要使用其他后端进行训练,而不是 horovod)。为此,编辑文件 requirements_extra.txt 并注释掉以 horovod 开头的那一行。之后,请执行上一步中给出的长 pip install 命令。通过这些临时措施,您的安装应该能够成功完成。如果您仍然遇到困难,请在 Ludwig 社区 Discord 中说明您的具体环境,以便我们提供帮助。

  2. 在您的分支上开发新功能。

  3. 运行 pre-commits 来格式化您的代码,以便您新添加的文件看起来整洁

pre-commit run

Pre-commits 在提交时也会自动运行。

  1. 对更改满意后,进行一次提交以在本地记录您的更改
git add .
git commit

定期将您的代码副本与原始仓库同步是个好主意。这样您可以快速应对变更

git fetch upstream
git rebase upstream/master

使用以下命令将更改推送到您的账户

git push -u origin a-descriptive-name-for-my-changes
  1. 满意后,访问您在 GitHub 上 Fork 的仓库页面。点击“Pull request”将您的贡献发送给项目维护者进行审查。

其他建议

  • 为您编写的任何新代码添加单元测试。
  • 确保测试通过。有关更多详情,请参阅开发者指南

归属

此贡献指南改编自 huggingface,可在 https://github.com/huggingface/datasets/blob/master/CONTRIBUTING.md 查看。

行为准则

在为 Ludwig 贡献时,请注意并遵守 Linux 基金会的行为准则