1 |
On Sat, May 26, 2012 at 9:01 AM, Nikolaj Sjujskij <sterkrig@×××××××.com> wrote: |
2 |
>> So I think the second part of this (x.y to x.y+1 transitions, in the |
3 |
>> Python world, are generally relatively smooth) invalidates your point |
4 |
>> in the first part: if the transitions are generally smooth, then yes, |
5 |
>> when Python 3.3 gets stabilized, I want all of my Python packages to |
6 |
>> be available from the 3.3 interpreter. |
7 |
> |
8 |
> Let's take a "stable" user who updates (`emerge --update --deep --newuse |
9 |
> @world`) his/her system regularly. |
10 |
> Python 3.3 is released, added to Portage tree and eventually unmasked. |
11 |
> PYTHON_TARGETS variable is changed to include 3.3. And suddenly `emerge |
12 |
> --newuse @world` on stable system suggests rebuilding of every package using |
13 |
> new eclass, because new (though disabled) USE-flags was added. And when |
14 |
> Python 3.3 is keyworded stable, hence bringing new default PYTHON_TARGETS, |
15 |
> user should now rebuild those packages once more, but now, at least, not |
16 |
> uselessly. |
17 |
> |
18 |
|
19 |
This is why I do my world updates with --changed-use instead of |
20 |
--newuse. The package manager already has the ability to deal with |
21 |
such scenarios intelligently, you just have to let it. |
22 |
|
23 |
> I had written about problems with new eclass a couple of weeks ago here. |
24 |
> Not that anybody cares that now any user not caring about dev-lang/python |
25 |
> explicitly would get Python 2.7 and all his modules compiled twice for no |
26 |
> good reason (except "we can't think out more sensible default for new |
27 |
> eclass"). Whether or not does he *really* need Python 2.x or stable and |
28 |
> included-in-stage3 Python 3.2 suffices for him. |
29 |
> |
30 |
|
31 |
I did not speak up in the previous thread, but here are some of the |
32 |
advantages to a use flag based approach (PYTHON_TARGETS): |
33 |
|
34 |
- Ability to express proper dependencies on dev-lang/python and |
35 |
between python packages. |
36 |
- Makes python-updater obsolete (I think). |
37 |
- Better support for binpkgs. |
38 |
|
39 |
The disadvantage is that you must maintain another variable in |
40 |
make.conf, or accept the default value that is assigned in the |
41 |
profile. |
42 |
|
43 |
Here is how I justify the current default value of PYTHON_TARGETS: Due |
44 |
to past decisions, python3.2 is installed by default on all amd64 and |
45 |
x86 systems, so having python3_2 enabled by default makes sense. |
46 |
However, there are many things do not work in python 3, so the |
47 |
python2_7 target is a necessity. |