我们很高兴地宣布 Dask 1.0.0 版本发布了!
通常在发布博客文章中,我们会概述自上一个主要版本以来的重要功能和变化。由于这是 1.0 版本号,这篇博文会有些不同。我们将讨论这个版本号对我们意味着什么,并更广泛地讨论 Dask 项目的大背景。
1.0 版本软件对不同的群体意味着不同的事情。在一些社区中,它可能意味着……
在 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、队列、锁等等)。此外,Dask 目前已广泛应用于各种领域的生产环境,从风险承受能力较强的行业(如初创公司和量化金融机构)到风险规避型机构(如银行、大型企业和政府)。
当我们说 Dask 达到 1.0 版本时,我们指的是它已准备好用于生产环境。我们迟迟才这么说。这早就发生了。
Dask 是一款活生生的软件,存在于一个快速发展的领域中。我们的内部稳定性实践没有改变。我们将继续按照相同的策略添加新功能、弃用旧功能并修复错误。在进行这些内部更改时,我们始终努力最大限度地减少对用户的不利影响,同时最大限度地提高提供新错误修复和功能的速度。这很困难,需要谨慎,但我们相信过去我们做得不错,所以希望您没有注意到太多。未来我们将继续以同样的方式运作。
1.0 版本更改不会影响我们的开发周期。除了我们已提供的版本之外,没有其他的 LTS 版本。
Dask 能够快速演进和实验,同时保持核心稳定,因为它被拆分成子软件包,每个子软件包独立发展,有自己的维护者、自己的版本和自己的发布周期。一些 Dask 子项目很早之前版本就高于 1.0 了,而另一些则仍不稳定。
今天 Dask 的版本号很难定义,因为它由不同群体的许多独立工作组成。这与 Jupyter 或 Numeric Python 生态系统本身的情况类似。
最后,我们感谢多年来为项目做出贡献的每一个人,无论是通过贡献代码、评审、文档、讨论、错误报告、高质量的问题和答案、视觉设计,还是美好的祝愿。这对我们意义重大。
如今,PyPI 上有数十个 dask-* 软件包,它们支持数千名用户,还有更多软件包整合了 Dask 以实现并行计算。我们很庆幸能在这个充满活力的社区中发挥作用。