贡献者快速入门指南#
在从 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 贡献者指南。
注意
如果您在从源代码构建 SciPy 或设置本地开发环境时遇到问题,可以尝试使用 GitHub Codespaces 构建 SciPy。它允许您直接在浏览器中创建正确的开发环境,减少了安装本地开发环境和处理不兼容依赖项的需要。
如果您拥有良好的互联网连接并且想要一个临时的设置,通常在 Codespaces 环境中处理 SciPy 会更快。有关如何开始使用 Codespaces 的文档,请参阅 Codespaces 文档。在为 scipy/scipy
仓库创建 Codespaces 时,默认的 2 核机器类型可以正常工作;4 核将构建并运行得更快(但当然会以减少您的免费使用时间为代价)。Codespaces 启动后,您可以运行 conda activate scipy-dev
,您的开发环境将完全设置好 - 然后您可以按照 SciPy 文档的相关部分进行构建、测试、开发、编写文档并为 SciPy 做出贡献。