我们为什么要这么做?

Python 3 已经发布很久了,而且 Python 3 的兼容性也相当普遍。也许更重要的是,Python 库中开始出现一些仅在 Python 3 中才有的酷炫功能。

根据PEP 373,Python 2 将于 2019 年底正式弃用。对我们来说更重要的是,我们的一些依赖库已经开始弃用 Python 2 支持,并提供仅适用于 Python 3 的新功能 - 并且无法保证新版本将继续在 Python 2 中工作,这可能需要我们将版本固定到旧版本。例如,我们希望能够支持Unicode 文件名,这在 Python 3 中基本上是内置的,而在 Python 2 中则很难执行。

这对 Conan 意味着什么?

目前,我们将要求所有现有的 Conan 测试继续与 Python 2 兼容,并且默认情况下,新功能将在 Py2 和 Py3 中进行测试。但是,如果出现只能在 Python 3 中轻松实现的特定需求,我们将允许测试仅在 Python 3 中运行,并仅为 Python 3 用户提供该功能,并在相应文档中说明。

一个例子是 Conan 1.6 中对 xz 的支持。当 Conan 2 发布时(很可能在 2019 年),我们可能会开始完全放弃 Py2 测试以减少维护开销。

在 Conan 1.5 中,当我们在用户代理 Conan 字符串中添加 Python 版本时,我们确定最佳时间表的关键策略之一是检查定期更新 Conan 客户端的用户使用的 Python 版本。这也在 2018 年 SwampUP! 用户论坛上进行了讨论,我们收到了积极的反馈。由于我们了解这两种组合方法可能无法让我们全面了解整个社区,因此我们决定将此问题公开给社区。

让我们来谈谈这个

我们已经开启了一个GitHub issue #3334。请在其中提供您的评论。了解您认为迁移到 Py3 所需的时间表将非常有帮助,以便我们评估最佳的迁移路径。