我如何找到与我的代码兼容的所有以前版本的python

时间:2013-06-25 17:03:49

标签: python compatibility

我在python 2.7.3中创建了一个中等大小的项目,包含大约100个模块。我想知道以前哪个版本的python(例如:2.6.x,2.7.x)是我的代码兼容(在公共领域发布我的项目之前)。找到它的最简单方法是什么?

我知道的解决方案 -

  1. 安装多个版本的python并检查每个版本。但我还没有定义测试用例,所以需要先定义它们。
  2. 阅读并比较我希望检查兼容性的各种python版本的更改日志,并据此查找。
  3. 请提供更好的解决方案。

4 个答案:

答案 0 :(得分:2)

在没有一些测试用例的情况下,我真的不知道如何绕过这种方法。即使您的代码可以在较旧版本的python中运行,也不能保证它没有一套充分测试代码的测试用例就能正常工作

答案 1 :(得分:1)

不,你所命名的几乎就是它的完成方式,尽管What's New页面和正确的文档可能比完整的更新日志更有用。与这样一个巨大的移动目标的兼容性是不可行的,甚至可以部分自动化。这听起来不像听起来那么多,因为:

  1. 有些人确实有测试套件; - )
  2. 您(通常)不需要考虑错误修复版本(例如各种x的2.7.x)。您的代码可能需要修复错误,但通常.0版本非常可靠,并且与x.y.0的代码兼容可以在任何x.y.z版本上运行。
  3. 由于向后兼容性策略,它足以建立最低支持版本,所有后续版本(相同主要版本)将保持兼容。这对你的情况没有帮助,因为2.7是有史以来的最后一次2.x版本,但如果你的目标是2.5,那么你通常不需要检查2.6或2.7兼容性。
  4. 如果你在编码时睁大眼睛,并且有一点经验和良好的记忆力,你就会知道你使用了最新版本中引入的一些功能。即使您不知道具体是什么版本,也可以在文档中快速查找。
  5. 有些人意图支持特定版本,并且在开发时始终牢记这一点。即使它恰好适用于其他版本,但他们认为它不受支持且不要求兼容性。
  6. 所以,你可以将自己限制在2.7(它已经存在三年),或者对旧版本执行测试。如果您只是想确定 是否兼容,而不是哪些不兼容以及如何修复它们,您可以:

    1. 在“新功能”页面中搜索您使用的新功能,最重要的是新语法。
    2. 检查您使用的第三方库的版本限制。
    3. 搜索用于新添加功能的标准库模块的文档。

答案 2 :(得分:1)

1)如果您要保持与先前版本的兼容性,那么测试是可行的方法。即使您的代码现在恰好兼容,如果您不注意,它也可能在将来的任何时候停止。

2)如果向后兼容性不是一个目标,而只是一个“对于那些幸运的人来说很好的侧面功能”,OSS的一个简单方法就是让用户试一试,注意“它已经在{{1}中进行了测试但也可以在以前的工作中使用“。如果您的用户群中有任何人对在早期版本中运行代码感兴趣(并保持与它的兼容性),他们可能会给您反馈。如果没有,为什么要这么麻烦?

答案 3 :(得分:1)

使用一些测试用例会轻松很多,但手动测试可以给你一个合理的想法。

采取你希望支持的最远的版本(我建议2.5.x但如果你必须进一步回来 - 用那个版本手动测试,记录你做了什么,特别是如果有的话,如果有的话 - 如果有的话 - 它确实失败然后解决问题或进行二进制搜索以查看故障点消失的版本。如果你从一个你很确定你会失败的版本开始,这可能会更好,2.0也许。