Group picture of summit attendees.

第一次科学 Python 开发者峰会(2023年5月22日至26日)汇聚了34位开发者,他们在华盛顿大学电子科学研究所共同开发了共享基础设施、文档、工具和针对科学 Python 生态系统中库的建议。

峰会前规划#

在峰会之前,我们举办了几次时长一小时的规划会议。

峰会执行#

Morning group check-in

在峰会上,我们进行了简短的签到,然后根据每位开发者的时间和兴趣分成几个小组。原始工作进度和日志已收集在一个文档中,我们下面仅重点介绍了一些我们取得的成果。

稀疏数组#

近四分之一的小组在整个星期都致力于稀疏数组。这项工作是更大规模的、多年努力的一部分,旨在改进和扩展SciPy的稀疏数组API,最终将涉及移除稀疏矩阵API,并最终移除np.matrix

更多详细信息可以在开发者峰会 1:稀疏博客文章中找到。

科学 Python 生态系统协调文档#

我们在几个SPECs上取得了重大进展,这些SPECs是在之前的冲刺期间起草的。

Snapshot of the current SPECs and their endorsements

SPEC 0 - 最低支持版本,一个类似于NEP 29的更新和扩展建议,已得到几个核心项目的讨论和认可。

SPEC 1 - 子模块和函数的延迟加载已得到两个核心项目的讨论和认可。

SPEC 2 - API 分发已得到讨论(在峰会结束后的一次后续视频会议中),并且正在被标记为已撤回或类似的内容。

SPEC 3 - 可访问性已得到讨论和更新。我们希望在不久的将来看到它得到几个核心项目的认可。

SPEC 4 - 使用和创建每日构建轮子已被重写,创建了一个辅助 GitHub 操作upload-nightly-action,并且提交了更新各个项目以使用新的每日构建轮子位置的PR。更新现已完成,并且该SPEC得到了两个核心项目的认可。

我们预计在未来几个月内,还会有更多核心项目认可现有的SPECs,并且我们现在正在举行定期的SPEC指导委员会会议,以继续开发和扩展SPECs。

社区建设#

我们创建了一个全面的社区指南,以增强项目培养其社区的能力。本指南包含有关社区经理作用的基本信息,以及社区会议、外联、入职和项目管理的实用策略。

开发文档#

我们创建了一个开发指南、一个新的项目模板现有项目审查

偶然合作#

在像这样的峰会上发生的一件有趣的事情是,来自不同项目的人们有机会相遇。例如,一些与会者致力于在更广泛的科学 Python 生态系统中创建一个协作网络。这使我们有机会了解贡献者如何在项目之间进行协作。我们可以看到大型项目如何聚集在一起,因为有多个贡献者共享多个项目的维护职责。例如,我们还可以看到Scikit-HEP集群与通常的科学Python集群之间存在一定的距离。我们的一个行动项目:)我们需要更多合作!

Visualization of co-collaboration network

Pytest插件/Sphinx扩展#

一些与会者致力于Pytest插件和Sphinx扩展。

  • pytest-regex旨在支持使用正则表达式选择测试。

  • pytest-doctestplus已迁移到科学 Python 组织的上游。峰会为开发新功能(例如,生成更新的文档字符串)并将其用于NumPy文档测试提供了新的动力。

  • sphinx-scientific-python,一个新的扩展,作为生态系统中各种功能的中心,例如,我们同意将来自MNE工具的现有扩展引入此扩展。

  • pydata-sphinx-theme更新

SciPy发布管理进展#

SciPy 1.11.0 的第一个候选版本于 2023 年 5 月 31 日在 PyPI 上发布,距离峰会结束五天。峰会促进了对几个提议的 SciPy 代码更改的高带宽决策,允许当前的 SciPy 发布管理员(洛斯阿拉莫斯国家实验室的 Tyler Reddy)与其他 SciPy 核心开发者进行面对面的协商。与以下 SciPy 维护人员讨论了具体的代码更改:Stefan van der Walt(scipy.ndimage)、CJ Carey(scipy.sparse)、Matt Haberland(scipy.stats)和 Pamphile Roy(scipy.stats)。当 SciPy 发布在峰会之外进行时,发布管理员通常不得不将有用的代码更改推迟到六个月后的下一次发布,因为缺乏相关领域专家的可用性。

包指标#

我们从我们的原型开发者统计网站中提取了一个通用的开发者统计包