为 fortls 贡献代码

您可以通过几种方式支持 fortls 项目。

财务支持

您可以通过捐赠来为 Fortran-lang 提供财政支持,请参阅 Fortran-lang - NumFOCUS

贡献代码

👍🎉 感谢您抽出时间贡献!🎉👍

在本文件中,您将找到引导您完成对项目首次贡献的所有必要步骤。

请注意我们的 行为准则,并在您与该项目的所有互动中遵守它。

📚 入门

一个好的起点是 GitHub 上的 问题标签。查找带有 help wanted 标签的任何问题。

下载 ⬇️

首先,从 https://github.com/fortran-lang/fortls 分叉存储库。

然后将分叉的存储库克隆到您的本地机器。

[email protected]:<YOUR-USERNAME>/fortls.git

其中 <YOUR-USERNAME> 应为您的 GitHub 用户名。

依赖项

要构建此项目,您需要 Python >= 3.7pip >= 21.0。要安装所有 Python 依赖项,请打开终端,进入已克隆的 fortls 文件夹并运行

pip install -e ".[dev,docs]"

测试 🧪

要验证您的 GitHub 存储库克隆是否按预期工作,请打开终端并运行

pytest -v

这将运行整个单元测试套件。您也可以运行此命令来验证您是否没有破坏代码中的任何内容。

👉 提示!您可以通过选择 Python 文件和方法的路径来运行单个测试

pytest test/test_interface.py::test_version_update_pypi

开发和调试 🐞️

❗️ 在开始开发之前,在 fortls 内部打开一个终端并运行

pre-commit install

这将确保您所有的提交都符合项目的格式标准。


现在您可以开始编写代码了!您的本地 fortls 版本将在您进行的每次代码更改后更新,因此您可以使用您的普通代码编辑器来查看您已实现的 fortls 功能。但是,创建紧凑的单元测试来检查您的更改是否有效要容易得多。

一个 fortls 测试通常涉及编写一个 Python 函数,该函数向服务器发送 JSONRPC 请求,然后测试检查服务器响应是否正确。通常,还需要提交少量 Fortran 源代码供测试使用。您可以在 tests 目录中找到各种测试示例。

👉 提示!您可以在单元测试期间将调试器附加到主 fortls 源代码,这应该允许您在测试时暂停、中断、单步进入等,从而更容易找到错误。

合并

要将您的更改合并到主 fortls 存储库,请将您的分支推送到 GitHub 并打开一个 拉取请求。Ping @gnikit 以审查您的 PR。