贡献

django-import-export 是开源的,因此它的发展(或萎缩)与改进部分得益于社区。以下是一些关于如何帮助该项目的指南。

通过贡献,您同意遵守`行为准则 <https://github.com/django-import-export/django-import-export/blob/main/CODE_OF_CONDUCT.md>`_。

哲学

  • django-import-export 采用BSD许可证。所有贡献的代码必须要么

    • 作者的原創作品,以BSD許可貢獻,或...

    • 取自另一个项目的作品,根据BSD兼容许可证发布。

  • GPL'd(或类似)作品不符合收录条件。

  • django-import-export 的 git main 分支应始终保持稳定、生产就绪并通过所有测试。

问题

请查看 常见问题 部分的 FAQ,看看您的问题是否已有答案。

关于使用的一般问题,我们建议发布到Stack Overflow,使用`django-import-export <https://stackoverflow.com/questions/tagged/django-import-export/>`_标签。请搜索现有答案,看看是否有匹配您问题的。如果没有,发布一个新问题,包括尽可能多的相关细节。更多详情请参阅`how to ask <https://stackoverflow.com/help/how-to-ask/>`_。

有关库内部的问题,请提出一个`issue <https://github.com/django-import-export/django-import-export/issues/>`_并使用'question'工作流程。

  • 首先检查是否存在已回答您问题的现有问题。

  • 记住要尽可能详细地描述问题,以便及时获得解答。

报告问题/功能的指南

所以你发现了一个错误或有一个很棒的功能想法。以下是您应该采取的步骤,以帮助在django-import-export中添加/修复它:

贡献代码指南

如果你准备好冒险并贡献一些代码或文档,请考虑以下事项:

  • 搜索现有 issues 和 PRs,查看是否已有类似提案。

  • 对于重大更改,我们建议先提出一个question,以便我们可以根据以往经验提供建议或指导。

该过程应如下所示:

  • 将项目在GitHub上fork到你自己的账户中。

  • 克隆你的django-import-export副本。

  • 在git中创建一个新分支并在那里提交你的更改。

  • 将你的新分支推送到GitHub。

  • 再次确保没有关于该问题的现有issue或pull request。

    • 如果有,并且你认为有更好的修复方法,请记下问题编号并在你的pull request中提到它。

  • 创建一个新的拉取请求(基于你的分支),包括问题/功能是什么、你的软件版本以及引用任何相关的问题/拉取请求。

  • 我们建议设置您的编辑器以自动指示不符合的样式(参见`Development`_)。

为了被合并到django-import-export中,贡献必须满足以下条件:

  • 一个坚实的补丁,它:

    • 是清楚的。

    • 适用于所有支持的Python/Django版本。

    • 遵循代码库的现有风格(主要是PEP-8)。

    • 根据需要包含注释以解释代码为何如此运行

  • 一个演示先前缺陷的测试用例,现在包含补丁后通过。

  • 如果它添加/更改了公共API,则还必须包含这些更改的文档。

  • 必须获得适当许可(见`Philosophy`_)。

  • 将你自己添加到 AUTHORS 文件中。

如果你的贡献缺少其中任何一项,核心贡献者将必须在合并到django-import-export proper之前添加这些内容,对于全志愿者团队来说,这可能需要大量时间才能完成。

开发

格式化

  • 所有文件应使用black自动格式化工具进行格式化。如果已配置,将通过pre-commit运行。

  • 项目仓库包含一个``.editorconfig``文件。我们推荐使用支持EditorConfig的文本编辑器以避免缩进和空格问题。

  • 我们允许最多88个字符,因为这是black使用的行长度。当你运行flake8时,这个检查会被包含在内。文档、注释和文档字符串应该限制在79个字符以内,尽管PEP 8建议的是72。

  • 安装 pre-commit:

    python -m pip install pre-commit
    

    然后运行:

    pre-commit install
    
  • 如果使用 git blame,你可以忽略对代码库做出大规模更改的提交,例如重新格式化。从项目根目录运行此命令:

    git config blame.ignoreRevsFile .git-blame-ignore-revs
    

创建虚拟环境

克隆并检出仓库后,您可以按以下方式安装新的开发环境:

python -m venv django-import-export-venv
source django-import-export-venv/bin/activate
python -m pip install '.[tests]'

运行测试

你可以运行测试套件使用:

make clean test

构建文档

构建文档的本地版本:

python -m pip install -r requirements/docs.txt
make build-html-doc

文档将出现在 docs/_build/html/index.html 中。