我维护一个开源的python项目。现在它支持python 2.4,2.5,2.6。我正在寻找添加对python 3的支持。我想如果我放弃支持2.4会更容易。
我知道可以支持所有这些但是如果我必须在我的机器上安装4或5个python版本并对所有这些版本运行测试,这是非常烦人的。虽然很容易避免使用该语言引入的新功能,但我希望能够使用它们!支持可能没有人使用的东西有什么意义?我确实想放弃它,但也不想放松用户(现有的和新的)。
什么时候应该放弃对python 2.4的支持?对此有什么建议吗?
答案 0 :(得分:7)
我认为这取决于您的目标受众。对于企业的东西,我认为RedHat(当然是CentOS 5)仍然在2.4 - 所以如果你想要使用普通的RedHat / CentOS来安装而不需要使用第三方python安装,那么我认为你需要保持2.4一段时间。如果你的大多数用户都是基于运行Fedora / Ubuntu的“桌面”用户,那么他们可能已经拥有2.5 / 2.6,所以这对他们来说不是问题。
答案 1 :(得分:3)
你没有 放弃对2.4的支持以增加对3.x的支持,因为我相信你知道。我已经使用相同的代码在2.3到3.1上运行了coverage.py。它并不总是很漂亮,但有可能:Running the same code on Python 2.x and 3.x。
答案 2 :(得分:2)
这是权衡利弊的问题。
我想这个问题的真正答案是2.5 / 2.6中有多少功能可以真正改善您的库。随着时间的推移,似乎2.4变得越来越不值得支持。
另一方面, 仍然是Python 2.4上的一些人。您必须决定是否有必要放弃对它们的支持以利用Python 2.5的新功能。
答案 3 :(得分:1)
你不必丢弃任何东西,什么适用于2.4,适用于2.5和2.6。您可以轻松避免不相容性跳过“with”,三元操作,以及“import future ”。
现在,一旦你拥有一个非常稳定且功能齐全的代码版本并需要进行大的架构更改,就开始为Python 3.0编写代码。不急,不会在一两年之前大量使用。
一个好的指标是关注与您拥有相同受众的项目。他们什么时候打开路线图?
答案 4 :(得分:1)
跟踪每个项目版本的下载量。每个版本分别绘制每日流量(如果每天变化太大,则为每周流量)。密切关注趋势,在某些时候,你会看到2.4与其他趋势相比明显下降的趋势。当这种下降趋势确定时,停止升级到2.4版本,但保持可供下载。您应该在最后2.4版本的README中包含某种注释,并且可能在安装时显示一条消息。
此时,您的工作已完成,除非您发现一些您想要解决的明显错误。您不必实际停止2.4版本,只需停止升级。
你现在每周制作的图表会告诉你什么时候为2.5做最后一次,最后是2.6。
答案 5 :(得分:0)
这里的任何答案都是主观的。我建议你制作一个功能和用户列表。这里有两件事要考虑。
1:您的程序将如何受益 - 在较新版本的Python中哪些功能更好/更快/更少?您的程序可以通过坚持使用旧版本来使用哪些额外的依赖库?并非所有东西都被移植到3.x甚至2.5。
2:您的用户将如何受益 - 用户从旧版本中获得了哪些好处。通过降低2.4并添加3.x,您的用户群可以获得多大/更小?您的用户群目前是什么样的。
第三点并不是真正的重点,因为开源对开发人员的直接好处有点不确定 - 但你获得了什么?即维持,加快开发等所需的时间更少。
希望做一个总结将有助于你把事情放在眼里。