如何贡献
贡献¶
欢迎大家贡献,我们珍视每个人的贡献。因此,代码并不是帮助社区的唯一方式。回答问题、帮助他人、积极交流以及改进文档也都是非常有价值的贡献。
如果您能帮忙宣传,那也将对我们很有帮助:在博客文章中提及它所实现的很棒的项目,每次它帮助到您时在 X 上分享,或者仅仅给仓库点赞表示“感谢”。
查阅官方 Ludwig 文档,了解代码库结构,并加入社区!
待解决问题¶
问题列表位于: https://github.com/ludwig-ai/ludwig/issues
如果您想解决其中任何一个问题,请确保该问题尚未分配给其他人。
您可以通过在问题页面评论区使用以下关键词之一来给自己分配:#take
或 #self-assign
。
解决您自己分配的问题,然后创建拉取请求。
创建拉取请求¶
-
点击仓库页面上的“Fork”按钮,Fork 该仓库。这将在您的 GitHub 账户下创建一个代码副本。
-
将您 Fork 的仓库克隆到本地磁盘,并添加原始仓库作为远程源
git clone git@github.com:<your Github handle>/ludwig.git
cd ludwig
git remote add upstream https://github.com/ludwig-ai/ludwig.git
- 创建一个新分支来存放您的开发更改
git checkout -b a-descriptive-name-for-my-changes
请勿* 在 master
分支上工作。
- 在虚拟环境中运行以下命令来设置开发环境
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”。
- 在搭载 Apple Silicon 芯片的 MacOS 上,如果此安装方法遇到错误,您可能需要安装以下先决条件
brew install cmake libomp
此步骤要求您的开发机器上已安装 homebrew
。
- 安装并运行
pre-commit
pip install pre-commit
pre-commit install
-
最后,如果在安装
horovod
期间,发生ModuleNotFoundError: No module named 'packaging'
异常,您可能需要禁用horovod
(这意味着您将需要使用其他后端进行训练,而不是horovod
)。为此,编辑文件requirements_extra.txt
并注释掉以horovod
开头的那一行。之后,请执行上一步中给出的长pip install
命令。通过这些临时措施,您的安装应该能够成功完成。如果您仍然遇到困难,请在 Ludwig 社区 Discord 中说明您的具体环境,以便我们提供帮助。 -
在您的分支上开发新功能。
-
运行 pre-commits 来格式化您的代码,以便您新添加的文件看起来整洁
pre-commit run
Pre-commits 在提交时也会自动运行。
- 对更改满意后,进行一次提交以在本地记录您的更改
git add .
git commit
定期将您的代码副本与原始仓库同步是个好主意。这样您可以快速应对变更
git fetch upstream
git rebase upstream/master
使用以下命令将更改推送到您的账户
git push -u origin a-descriptive-name-for-my-changes
- 满意后,访问您在 GitHub 上 Fork 的仓库页面。点击“Pull request”将您的贡献发送给项目维护者进行审查。
其他建议¶
- 为您编写的任何新代码添加单元测试。
- 确保测试通过。有关更多详情,请参阅开发者指南。
归属¶
此贡献指南改编自 huggingface
,可在 https://github.com/huggingface/datasets/blob/master/CONTRIBUTING.md 查看。
行为准则¶
在为 Ludwig 贡献时,请注意并遵守 Linux 基金会的行为准则。