At 04:06 PM 4/21/2009 +0200, Lennart Regebro wrote:
On Tue, Apr 21, 2009 at 15:03, P.J. Eby firstname.lastname@example.org wrote:
python2 setup.py 2to3 test
Well, yes, but it should be
python 3 setup.py 2to3 test
Otherwise it can't reasonably have any idea of which python to use.
Why not? The 2to3 command could simply take an option for the python3 executable, and be set from the standard config files (e.g. setup.cfg).
And when you run it with python3, the 2to3 command isn't needed, as the 2to3 step can be automatically inserted through version detection.
Um... I'm still not following you. You sound like you're describing something very different from what I outlined.
In fact, this is exactly what I'm doing for zope.interface, as explained. For zope.interface, you run python2.5 setup.py test and it will test it with python2.5 You run python3.0 setup.py test and it will do exactly what you say: copy the files to build, run 2to3, and then run the test on that in-place. python3.0 setup.py install will copy the files to build, run 2to3 and then install it.
Right -- but this is totally *not* what I'm saying. Because the strategy that I outlined doesn't require setuptools to be ported to python 3 first.
Yes. That's is exactly what I'm trying to achieve. And I aim to extend setuptools with build_2to3 and test_2to3 commands to do exactly that. But to do that I need a good setuptools distribution that supports Python3.
No, you don't. You only need one command, implemented as a plugin for the Python2 version of setuptools, and you drive everything from python2.
Once you get to the point where setuptools is ported enough to be able to have the Python3 version actually run its tests without crashing, you can go self-hosted. But before that point, you need Python2 as the bootstrap/host environment for the build process.
It explains why the test cases could run even though setuptools still couldn't install itself. I thought it was badly tested, now I know it's by design.
No, it's also badly tested; that's kind of inherited from the distutils. And by the time I added the 'sandbox' virtualization tool, there was already tons of stuff that wasn't tested, such that it didn't seem worth it to do something else.