贡献者快速入门指南#

从 GitHub 获取源代码 之后,开始贡献有三个步骤

  1. 设置开发环境

    使用 mamba,或许多虚拟环境管理工具中的某一种,可以确保 SciPy 的开发版本不会干扰你机器上任何其他本地安装的 SciPy。

  2. 构建 SciPy

    SciPy 使用编译代码来提高速度,这意味着你可能需要额外的依赖项来完成此步骤,具体取决于你的系统 - 请参见 从源代码构建

  3. 执行开发任务

    这些任务可能包括你想要对源代码进行的任何更改、运行测试、构建文档、运行基准测试等。

基本工作流程#

注意

我们强烈建议使用用户激活的环境设置,例如 conda 或虚拟环境。

由于 SciPy 包含用 C、C++ 和 Fortran 编写的部分,这些部分需要在使用之前进行编译,因此请确保你已安装必要的编译器和 Python 开发头文件。如果你使用的是 mamba,这些文件会自动安装。如果你使用的是 pip,请检查可能需要的 系统级依赖项

首先,将主 SciPy 存储库在 GitHub 上分叉到你的帐户中,然后通过以下方式创建本地存储库

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 贡献者指南

注意

如果你在从源代码构建 SciPy 或设置本地开发环境时遇到问题,可以尝试使用 GitHub Codespaces 构建 SciPy。它允许你在浏览器中直接创建正确的开发环境,减少了安装本地开发环境和处理不兼容依赖项的需要。

如果你具有良好的互联网连接并且想要一个临时设置,在 Codespaces 环境中使用 SciPy 通常更快。有关如何开始使用 Codespaces 的文档,请参见 Codespaces 文档。在为 scipy/scipy 存储库创建 Codespace 时,默认的 2 核机器类型有效;4 核机器会构建并运行得更快(但当然会以减少免费使用时间的一半为代价)。Codespace 启动后,你可以运行 conda activate scipy-dev,你的开发环境就完全设置好了 - 然后你可以按照 SciPy 文档的相关部分构建、测试、开发、编写文档并为 SciPy 做出贡献。

另一种选择是使用 Gitpod。我们不再维护此解决方案,但可以在我们之前版本的 文档 中找到一些信息。