SPEC 核心项目

描述#

核心项目是大多数其他项目所依赖的,并且通常提供基本数据结构、绘图基元或基础算法的实现。由于它们在生态系统中的中心地位,核心项目使用的策略、实践和工具被生态系统广泛使用,并影响许多其他项目。 指导委员会维护核心项目的列表。

核心项目认可 SPEC 文档。在 SPEC 流程的认可阶段,核心项目的贡献者会提出、讨论和审查 SPEC 文档,目标是制定适用于所有核心项目的连贯实施计划。SPEC 通常由来自多个核心项目以及其他社区成员(例如,其他生态系统项目的贡献者)的贡献者共同撰写。

核心项目#

IPython 徽标 IPython
Matplotlib 徽标 Matplotlib
NetworkX 徽标 NetworkX
NumPy 徽标 NumPy
pandas 徽标 pandas
scikit-image 徽标 scikit-image
scikit-learn 徽标 scikit-learn
SciPy 徽标 SciPy
xarray 徽标 xarray
Zarr-Python 徽标 Zarr-Python

实施#

核心项目参与 SPEC 流程的各个阶段。他们协作开发 SPEC 草案,以便能够获得认可。

核心项目的特点是什么?#

核心项目在科学研究中被广泛使用。当然,这些工具通常也用于其他目的,并且科学 Python 生态系统与 PyData 生态系统重叠——PyData 生态系统更侧重于解决行业中的问题。

核心项目在科学 Python 生态系统中被广泛使用。它们是大多数其他项目所依赖的,并且通常提供基本数据结构、绘图基元或基础算法的实现。

核心项目使用共享的社区实践开发。它们具有版本控制系统、错误跟踪器、行为准则、贡献者指南、代码审查流程、公开路线图、记录的治理系统、增强提案流程以及在 Python 包索引 上定期发布。

核心项目由其社区公开开发。开发在在线论坛中进行,通信是公开的。该项目的开发人员并非都来自同一机构。

核心项目文档齐全且经过充分测试。它们记录其 API,并具有内联文档(最常见的是 numpydoc 文档字符串标准 的形式)。它们还具有高水平的测试覆盖率,以确保 a) 代码按预期执行,以及 b) 新开发人员可以修改代码而无需担心破坏它。

核心项目是开源的。3 条款(也称为“修改版”或“新版”)BSD 许可证是迄今为止最常见的许可证。

核心项目如何认可 SPEC?#

核心项目使用其项目特定的讨论和决策机制来决定是否支持 SPEC。例如,某些 SPEC 可能要求核心项目创建自己的增强提案来扩展实施细节。

一旦核心项目决定认可 SPEC,它们就会通过针对 scientific-python/specs 存储库的拉取请求,将其项目名称添加到 SPEC 标题中的 endorsed-by 字段中。

应该有多少个核心项目?#

这取决于指导委员会。但预计核心项目的列表将保持较小规模,并且不会快速更改。在 SPEC 流程的认可阶段,核心项目的贡献者应该就如何实施 SPEC 达成共识。在添加新的核心项目时,指导委员会应确保这样做只会使核心项目更容易达成共识。

如何添加项目?#

如果指导委员会决定接纳一个新的核心项目,并且该项目同意,则该项目创建一个注册文件并针对 scientific-python/specs 存储库提交拉取请求。

要创建项目的注册文件,请进入 core-projects 目录并使用 register.py 脚本。该脚本会询问您一些问题,然后创建一个新文件,并以适当的名称命名,其中包含一个基本模板供您检查和填写。

如何删除项目?#

如果核心项目不再希望参与或指导委员会决定删除核心项目,则应删除项目注册文件,从上面的图库中删除该项目,并且应删除 SPEC 标题的 endorsed-by 字段中该核心项目的所有出现。