贡献者快速入门指南#
在 从GitHub获取源代码 之后,开始贡献有三个步骤:
设置开发环境
使用
mamba
或某种虚拟环境管理工具,你可以确保 SciPy 的开发版本不会干扰你机器上的任何其他本地安装的 SciPy。构建 SciPy
SciPy 使用编译代码以提高速度,这意味着根据您的系统,您可能需要额外的依赖项来完成此步骤 - 请参阅 从源代码构建。
执行开发任务
这些可以包括您想要对源代码进行的任何更改、运行测试、构建文档、运行基准测试等。
基本工作流程#
备注
我们**强烈**建议使用用户激活的环境设置,例如 conda 或虚拟环境。
由于 SciPy 包含需要在使用前编译的 C、C++ 和 Fortran 编写的部分,请确保您已安装必要的编译器和 Python 开发头文件。如果您使用的是 mamba
,这些将会自动安装。如果您使用的是 pip
,请检查您可能需要的 系统级依赖。
首先,在GitHub上将主SciPy仓库的分支复制到你自己的账户,然后通过以下方式创建你的本地仓库:
git clone git@github.com:YOURUSERNAME/scipy.git scipy
cd scipy
git submodule update --init
git remote add upstream https://github.com/scipy/scipy.git
接下来,设置您的开发环境。在 系统级依赖项 安装完成后,从您的 SciPy 克隆的根目录在终端执行以下命令:
# Create an environment with all development dependencies
mamba env create -f environment.yml # works with `conda` too
# Activate the environment
mamba activate scipy-dev
# Create the virtual environment
python -m venv $HOME/.venvs/scipy-dev
# Activate the environment
source $HOME/.venvs/scipy-dev/bin/activate
# Install python-level dependencies
python -m pip install numpy pytest cython pythran pybind11 meson ninja pydevtool rich-click hypothesis
您的命令提示符现在会列出您的新环境的名称,如下所示:(scipy-dev)$
。
最后,为开发构建 SciPy 并使用以下命令运行测试套件:
python dev.py test # this will always (re)build as needed first
请注意,这需要几分钟时间(并且默认情况下禁用了一些非常慢的测试),因此您可能只想测试您将工作的SciPy部分。有关如何执行此操作的详细信息,请参阅 开发工作流程 中的更完整的设置演练,或 python dev.py test --help
。
其他工作流程#
这只是众多可能的开发环境设置方式之一。如需更详细的说明,请参阅 贡献者目录。
备注
如果你在从源码构建 SciPy 或设置本地开发环境时遇到问题,你可以尝试使用 GitHub Codespaces 来构建 SciPy。它允许你在浏览器中直接创建正确的开发环境,减少安装本地开发环境和处理不兼容依赖项的需求。
如果你有良好的网络连接并且想要一个临时的设置,通常在 Codespaces 环境中工作于 SciPy 会更快。关于如何开始使用 Codespaces 的文档,请参见 Codespaces 文档。在为 scipy/scipy
仓库创建 codespace 时,默认的 2 核机器类型即可工作;4 核会稍微加快构建和工作速度(但当然会减少你一半的免费使用小时数)。一旦你的 codespace 启动,你可以运行 conda activate scipy-dev
并且你的开发环境就完全设置好了 - 然后你可以按照 SciPy 文档的相关部分来构建、测试、开发、编写文档以及为 SciPy 做贡献。