我们很高兴地宣布 Dask 版本 1.0.0 发布了!

通常在发布博客文章中,我们会概述自上一个主要版本以来的重要特性和变化。由于是 1.0 版本号,这篇文章会有点不同。相反,我们将讨论这个版本号对我们意味着什么,并更广泛地讨论 Dask 项目的背景。

1.0 对我们意味着什么

1.0 版本软件对不同的群体意味着不同的事情。在某些社区中,它可能意味着……

  • 一个包的第一个版本
  • 一个包首次准备好用于生产环境
  • 一个包达到 API 稳定

在 PyData 生态系统中,通常需要等待很长一段时间才会发布 1.0 版本。例如,Pandas 和 Scikit-Learn,可以说是两个在生产环境中应用最广泛的 PyData 包,至今尚未宣布 1.0 版本号(今天它们分别是 0.23 和 0.20 版本)。然而,这两个包都被要求高度稳定性的组织广泛应用于生产环境。

Dask 的 API 稳定性不如 Pandas 或 Scikit-Learn,但也相当接近。该项目很少发明新的 API,而是倾向于实现预先存在的 API(如 NumPy/Pandas/Scikit-Learn API)或标准语言协议(如 async-await, concurrent.futures, Queues, Locks 等)。此外,Dask 目前在生产环境中得到了广泛应用,涵盖了从风险承受能力强的行业(如初创公司和量化金融机构)到风险厌恶型机构(如银行、大型企业和政府)的各个领域。

当我们说 Dask 达到了 1.0 版本时,我们的意思是它已经准备好用于生产环境。我们说这句话有点晚了。这其实在很久以前就已经实现了。

开发将一如既往地继续

Dask 是一个活跃的软件,存在于一个快速发展的领域。我们的内部稳定性实践没有任何改变。我们将继续按照相同的策略添加新功能、弃用旧功能并修复错误。在进行这些内部更改时,我们始终努力将对用户的负面影响降到最低,同时最大化交付新错误修复和功能的速度。这很困难且需要细心,但我们相信我们过去做得不错,所以希望您没有注意到太多。未来我们将继续以同样的方式运营。

1.0 版本的变化不影响我们的开发周期。除了我们已经提供的之外,没有额外的 LTS 版本。

不同的 Dask 包以不同的速度发展

Dask 能够快速发展和实验,同时保持核心稳定,因为它被分成了子包,每个子包独立发展,有自己的维护者、自己的版本和自己的发布周期。一些 Dask 子项目早已超过 1.0 版本,而另一些仍然不稳定。

由于 Dask 由许多不同群体独立完成的工作组成,因此其版本号在今天很难界定。这类似于 Jupyter 或 Numeric Python 生态系统本身的情况。

致谢

最后,我们感谢多年来为项目做出贡献的每个人,无论他们是贡献了代码、评论、文档、讨论、错误报告、优秀的问题和答案、视觉设计,还是美好的祝愿。这对我们意义重大。

今天,PyPI 上有数十个 dask-*,它们支持着数千名用户,还有更多的包集成了 Dask 来实现并行性。我们很高兴能在这样一个充满活力的社区中发挥作用。


博客评论由 Disqus 提供支持