繁体   English   中英

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

[英]How do I find out all previous versions of python with which my code is compatible

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

我知道的解决方案-

  1. 安装多个版本的python并签入每个版本。 但是我还没有定义测试用例,因此需要先定义那些用例。
  2. 阅读并比较我希望检查其兼容性的各种python版本的changelog,并据此查找。

请提供更好的解决方案。

我真的不知道没有一些测试用例就能解决这个问题的方法。 即使您的代码可以在旧版本的python中运行,也不能保证没有一组足以测试您的代码的测试用例,它就可以正确运行

不,虽然“新增功能”页面和适当的文档可能比完整的变更日志更有用,但您所命名的几乎是完成工作的方式。 与如此巨大的移动目标的兼容性甚至无法部分自动化。 它的工作量并不像听起来那样多,因为:

  1. 有些人确实有测试套件;-)
  2. 您(通常)不需要考虑错误修正版本(例如针对各种x的2.7.x)。 您的代码可能需要修复错误,但通常.0版本非常可靠,并且与xy0兼容的代码可以在任何xyz版本上运行。
  3. 由于具有向后兼容性策略,因此可以建立最低支持版本,所有以后的发行版(相同的主要版本)将保持兼容。 这对于您的情况无济于事,因为2.7是有史以来最新的2.x版本,但是如果目标是2.5,则通常不必检查2.6或2.7兼容性。
  4. 如果您在编码时睁开眼睛,既有经验又有良好的记忆力,那么您会知道您使用了最新版本中引入的一些功能。 即使您不知道具体是哪个版本,也可以在文档中快速查找它。
  5. 有些人打算支持特定版本,因此在开发时始终牢记这一点。 即使它碰巧可以在其他版本上使用,他们也会认为它不受支持,并且不主张兼容性。

因此,您可以将自己限制为2.7(已经使用了三年),也可以在较旧的版本上进行测试。 如果您只想确定它是否兼容,而不是确定存在哪些不兼容以及如何解决这些不兼容,则可以:

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

1)如果要保持与以前版本的兼容性,则必须进行测试。 即使您的代码现在恰好兼容,但如果您不注意的话,将来任何时候都可能停止兼容。

2)如果向后兼容性不是目标,而仅仅是“足够幸运的人的附属功能”,那么OSS的一种简单方法就是让用户尝试一下,并指出“它已经在<version>进行了测试,但可以在以前的”。 如果您的用户群中有任何人有兴趣在较早版本中运行您的代码(并保持与之的兼容性),他们可能会给您反馈。 如果没有,何必呢?

使用一些测试用例会容易得多,但是手动测试可以为您提供一个合理的想法。

取得您希望支持的最新版本((我建议使用2.5.x,但如果需要则建议更进一步)-手动测试该版本,并记下您所做的操作,尤其是在出现故障的地方-如果出现故障-如果发生故障然后解决该问题或进行二进制搜索以查看故障点消失在哪个版本上。如果您从肯定会失败的版本开始,则可能会更好,例如2.0。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM