pombreda / txt2tags

Automatically exported from code.google.com/p/txt2tags
GNU General Public License v2.0
0 stars 0 forks source link

[PERMANENT] Minimal Python version required #39

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
txt2tags 2.5 require Python 2.0

I now use in the trunk :
enumerate() from python 2.3 and conditional expressions from python 2.5

Which Python version do we want or need to support ?

 Python | Year
--------+------
 2.0      2000
 2.1      2001
 2.2      2001
 2.3      2003
 2.4      2004
 2.5      2006
 2.6      2008

Original issue reported on code.google.com by fgalla...@gmail.com on 2 Aug 2010 at 2:00

GoogleCodeExporter commented 9 years ago

Original comment by fgalla...@gmail.com on 2 Aug 2010 at 2:01

GoogleCodeExporter commented 9 years ago
That's a good question.

In fact, txt2tags 2.5 is still compatible with Python 1.5.2. We broke that in 
SVN and now this is open to discussion.

I prefer txt2tags to be compatible with oldest Python versions whenever 
possible. There's no reason to break compatibility for guys unfortunately stuck 
with old Python versions.

Now (2010) Python 1.5.2 is really really old. Python 3 is too fresh (and breaks 
compatibility with 2.x).

I still don't have an answer for that, but I do prefer to stick with 2.x, where 
x is the lowest possible number :)

Original comment by aureliojargas@gmail.com on 4 Aug 2010 at 1:47

GoogleCodeExporter commented 9 years ago
http://txt2tags.sourceforge.net/changelog.html

Version 2.5 (2008-07-26)

# IMPORTANT: Txt2tags is not compatible with old Python 1.5.2 anymore, because 
Unicode strings were added in Python 2.0. If your Python is older than 2.0, 
please use txt2tags version 2.4. 

Original comment by fgalla...@gmail.com on 4 Aug 2010 at 1:55

GoogleCodeExporter commented 9 years ago
Oops, I don't remember important facts of my own program. Thanks for correcting 
me Florent! :)

Original comment by aureliojargas@gmail.com on 4 Aug 2010 at 2:01

GoogleCodeExporter commented 9 years ago
Thinking more about it, txt2tags 2.5 requires Python 2.0. The planned 
break-everything txt2tags 3.0 release will be Python 3 compatible.

Now we're in the middle of this change. I don't think it will be nice to our 
users breaking compat now in txt2tags 2.6 and then again in 3.0.

We can hold on and not use newer features, trying to stick with Python 2.0, so 
users of txt2tags 2.5 can safely upgrade to 2.6. When the time to upgrade to 
Python 3 comes, we do use all the new features.

How about it?

Original comment by aureliojargas@gmail.com on 4 Aug 2010 at 6:08

GoogleCodeExporter commented 9 years ago
The question is "do people still using python 2.0 really need the new features 
of txt2tags on their system?"

I guess the txt2tags 2.5 version is good enough for converting to LaTeX, html 
and such, and in the case someone for example needs to process files 
automatically on a server, the distributions probably won't propose the newest 
version of txt2tags. 

Linux Debian Lenny which is already quite old is using python 2.5 and for older 
versions there are some backports for installing newer version for example. On 
Mac OS X, there is an installer of python-2.5.1-macosx.dmg which is suitable 
for Panther (10.3), and on Windows it's easy to get the latest version of 
python.

And even if people have issues with the 2.0 version of python being too old, it 
won't prevent to open and work on the txt2tags files, and convert their work on 
an other computer ;)

Original comment by eforg...@gmail.com on 4 Aug 2010 at 8:48

GoogleCodeExporter commented 9 years ago
I don't think it's "breaking compat". For my code, Python 2.3 seems a need.
But the older Python I know on a real computer is 2.4, so I think it's not an 
issue.

Python2.0 2000 txt2tags2.5 2008 : 8 years safe.
Python2.3 2003 txt2tags2.6 2010 : 7 years safe.
It sounds ok for me.

Original comment by fgalla...@gmail.com on 4 Aug 2010 at 8:50

GoogleCodeExporter commented 9 years ago
With r174 et r175, trunk is now Python2.3 ready.

Original comment by fgalla...@gmail.com on 4 Aug 2010 at 10:04

GoogleCodeExporter commented 9 years ago
The only 2.3 feature is one "enumerate()" in the aa_table function...but it's 
only used with the %!csv command, and there's no csv support in Python lib 
before Python 2.3 !

So as it is, txt2tags is Python2.2 ready.

Original comment by fgalla...@gmail.com on 4 Aug 2010 at 10:20

GoogleCodeExporter commented 9 years ago
Great job Florent, now we don't have Python version issues anymore, yay!

I don't have Python 2.0 or 2.1 here to test, so maybe we're 2.0 ready too.

I'll let this issue open, so we can continue the discussion about Python 
version for future releases.

Original comment by aureliojargas@gmail.com on 10 Aug 2010 at 9:52

GoogleCodeExporter commented 9 years ago
AA = dict(zip(AA_KEYS, AA_VALUES)) seems to be the only one problem.

Python 2.0 :
Traceback (most recent call last):
  File "txt2tags", line 206, in ?
    AA = dict(zip(AA_KEYS, AA_VALUES))
NameError: There is no variable named 'dict'

Python 2.1 same error (more a warning):
txt2tags:5654: SyntaxWarning: local name 'name' in 'target_name2key' shadows 
use of 'name' as global in nested scope 'lambda'
  def target_name2key(self):
Traceback (most recent call last):
  File "txt2tags", line 206, in ?
    AA = dict(zip(AA_KEYS, AA_VALUES))
NameError: name 'dict' is not defined

Original comment by galle...@gmail.com on 20 Aug 2010 at 1:59

GoogleCodeExporter commented 9 years ago
In r340 os.path.relpath() was used, but it is a Python 2.6 feature.

It fixes the relative image path problem, when using include files on different 
folders, or when output file is in a different folder.

But it bumps our minimum requirements, which today is Python 2.3.

Close to txt2tags-2.7 release, check if it's the only new command used. If so, 
search for substitutes.

Original comment by aureliojargas@gmail.com on 11 Nov 2010 at 1:03

GoogleCodeExporter commented 9 years ago
New module used since r491 : textwrap, new in Python 2.3.

Original comment by fgalla...@gmail.com on 18 Nov 2010 at 8:46

GoogleCodeExporter commented 9 years ago
New module 'email' since r530, new in Python 2.2.

Original comment by aureliojargas@gmail.com on 23 Nov 2010 at 4:40

GoogleCodeExporter commented 9 years ago
Since r550 using key in dic instead dic.has_key(key).

dic.has_key() is deprecated since Python 2.6.
key in dic was introduced in Python 2.3.

Original comment by aureliojargas@gmail.com on 23 Nov 2010 at 9:52

GoogleCodeExporter commented 9 years ago
r556 to simplify csv import.

Original comment by fgalla...@gmail.com on 24 Nov 2010 at 12:10

GoogleCodeExporter commented 9 years ago
Ok, let's raise the bar and set Python 2.3 as the minimum required version for 
the next txt2tags 2.7.

Original comment by aureliojargas@gmail.com on 24 Nov 2010 at 10:28

GoogleCodeExporter commented 9 years ago
r676 makes Python 2.3 OK again, but what about Issue 61 ?

Original comment by fgalla...@gmail.com on 19 Jun 2011 at 2:53

GoogleCodeExporter commented 9 years ago
The CJK support with the unicodedata.east_asian_width() function requires 
Python 2.4.

Original comment by fgalla...@gmail.com on 30 Dec 2011 at 12:38

GoogleCodeExporter commented 9 years ago
r803 needs Python 2.4 too.

Original comment by fgalla...@gmail.com on 5 Jan 2012 at 4:32

GoogleCodeExporter commented 9 years ago
r827 needs Python 2.5.

Original comment by fgalla...@gmail.com on 20 Feb 2012 at 1:27

GoogleCodeExporter commented 9 years ago
r1124 needs Python 2.5 too (sqlite3 module, as r827).

Original comment by fgalla...@gmail.com on 24 Mar 2013 at 3:59