Re: Python2 demotion (moving from main to universe) in progress

2017-12-15 Thread Colin Watson
On Fri, Dec 15, 2017 at 03:38:20AM +0100, Xen wrote:
> Colin Watson schreef op 09-12-2017 13:51:
> > Even as somebody generally very sympathetic to the needs of
> > localisation, I've got this wrong because Python 2 had just too many
> > ways to make mistakes in this area.
> 
> So you are basically saying that you still don't agree but you have somehow
> accepted your own fallibility in that something you like is wrong and
> something you dislike is right.

No - you're putting words in my mouth that are the opposite of what I'm
saying.  Kindly don't reply to try to convince me otherwise.

In general, I dislike programming idioms that are too easy to get wrong.

> I happen to know the % operator ;-).
> 
> It is ridiculous that you cannot use it for binary-only text, or what I
> would call just byte strings.

You can use the % operator on bytes, as of Python 3.5.  Please spend
more time checking the assertions you make.  It's the much newer
"format" method that still isn't supported on bytes, and from
https://bugs.python.org/issue3982#msg268160 it sounds like that's
intentional and well-founded.

  https://docs.python.org/3/whatsnew/3.5.html#whatsnew-pep-461

(Python 3.5 is in Ubuntu 16.04; while some people may care, I'm not
personally especially interested in earlier versions of Python 3 at this
point, although I've been using it on and off since 3.2 or so.)

While I know there are exceptions, some mentioned in that issue link
above, on the whole my impression is that old Python code isn't likely
to be using str.format very much anyway, since it's a relatively modern
innovation compared to Python 2; it was introduced in 2.6.

> This example really says it all:
> 
> Python 2: b'Content-length: {}\r\n'.format(length)
> 
> Python 3: b''.join([b'Content-length: ', (bytes if bytes is str else
> str)(length).encode('ascii'), b'\r\n'])
> 
> Or well, that is 2<>3 compatible code.

Sure, if you work at it you can always construct unnecessarily
complicated examples.  "bytes if bytes is str else str" is strictly
identical to "str", on both Python 2 and 3.  (Glyph is an extremely
experienced and competent developer, so I'm sure this was just an
oversight.)

But you can just do this instead, which in fact is roughly what Twisted,
the source of the above comment, now does:

  Python 2/3: b'Content-Length: %d\r\n' % length

(As mentioned above, str.format was new in Python 2.6, so this is just a
return to the status quo ante for bytes.)

> So if this person does keep maintaining this project and it gets some
> traction, you could have a 'supported' python 2 interpretor being callable
> by "python2" or "python2.7" or even "python2.8" for some time to come.
> 
> If more people rally around that you could even have an unofficial
> 'official' Python 2.8 specification ;-).
> 
> Of which Tauthon would then be one interpreter ;-).
> 
> You could then move Tauthon (package "tauthon") to universe around the time
> that you would move python 2.7 out of it.

If it turns out that the maintainer of Tauthon builds a sustained track
record of doing a good job with it, then I'd support it being available
in Ubuntu.  There's still quite a while until Python 2.7 is in any
danger of being removed from Ubuntu, so there's time for them to develop
such a track record.

(I don't think we should hold back other packaged libraries to support
it, though; for example, Django 2.0 dropped support for Python 2.  So it
might be that Tauthon users would end up in practice with an
Ubuntu-packaged interpreter and then using packages from PyPI in a
virtualenv for most things that aren't in the standard library, or
something like that.  That would possibly work well enough; the audience
for something like Tauthon probably also wants to stick with old library
versions as well, at least until they can upgrade in a
tightly-controlled fashion.)

-- 
Colin Watson   [cjwat...@ubuntu.com]

-- 
Ubuntu-devel-discuss mailing list
Ubuntu-devel-discuss@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss


Re: Python2 demotion (moving from main to universe) in progress

2017-12-15 Thread Xen

Daniel Watkins schreef op 15-12-2017 0:05:

On Thu, Dec 14, 2017 at 11:45:23PM +0100, Xen wrote:
The move towards Python 3 was forced, it didn't come natural for 
anyone.


Nope, I have preferred Python 3 since ~3.3, and the transition has
happened over _more than a decade_.


So you waited till 3.3 until the language was "better" for you, that 
means at that point it was marginally better, with more to come later 
down the road.


It took 4 years for a version to arise that you liked better.

But there are 3 aspects here:

- self-convincing because you see no future in the alternative 
(self-deluding)

- lack of context for proper comparison (newcomers)
- technical reasons.

I argue that for the old established programmers now moving to, or 
"liking", python 3, nr. 1 is a larger component than technical reasons.


I don't know if the community is split around the lowlevel part, where 
those who have to write lowlevel libraries hate on (or hate) python 3, 
and those that don't have to love it because they only benefit from the 
new features.


The Tauthon guy actually professes to favour Python 3 technically.

Not practically, but ideally.

I don't know his reasons, but let's just believe him for a second.

  Let's believe he likes the str/bytes thing better because that's the 
only significant

  difference between his Tauthon and Python 3.

There are computer games in which you see the same thing.

Starcraft II is a game that superseded Starcraft I but the interesting 
part is money.


The professionals moved to SC II because that's where the tournaments 
were.


After a while they all got bored and the viewers also got bored because 
it was a game that was boring to watch, so they went back to SC I, but 
they really can't, because there are no tournaments anymore for it.


The "future" is SC II but for them it is empty, and the past is hard to 
revive.


This then finds a lot of people complaining about those "Korean gamers" 
who "refuse to move on" despite "SC II being a better game".


New people however are appalled by the amount of _work_ you have to do 
to play the game, in the sense of micro-management and keyboard use (the 
old game).


So *new people* are biased to like SC I ... I mean II, because they are 
lazy and spoiled and don't know better but these are also the people 
that more easily get bored.


The game means much less to them etc.

Their love is superficial. They are the smartphone generation.

Back in the 90s my friend who was into BSD liked to complain about 
Windows lovers who professed "It just works!" -- but he knew that for 
his use case, it limited him.


He knew that it would someday bite them.

If you always have your food handed to you, you don't need to know how 
to grow it yourself.
But when the time comes that you may want to move somewhere where you 
need to do this, your lack of experience will keep you immobile and 
paralyzed because you can only operate in a world where everything is 
done for you.


Some of Python 3's improvements fall into that category, "It works" but 
you don't know how and you don't need to do anything for it, and only 
later down the road you find that you are limited in what you can do (as 
a newcomer) because you don't have the expertise to work around the 
difficulties in getting "ordinary" stuff to work.


You, as a seasoned programmer, knows how to do this. The new generation 
will be clueless.


You only have this frame of reference because you experienced the old; 
you have the knowhow that comes with it.


New people will find barriers in their use of the system that does not 
impede them as long as they are doing their "walled garden thing" and 
actually, perhaps greatly, increases their productivity as long as they 
stick within that garden.


But stepping outside of that, it's impossible for them.

(I experience plenty of young people who are _afraid_ of computers, even 
those that are interested in becoming more experts).


I have a friend who is afraid to open a PuTTY session.

He thinks the world will explode if he does something like that.

Back in my day, this _never_ happened.

These people only know Windows or the Mac and have no way to look into 
system internals.


They barely know DOS of course, and have no reason to ever have learned 
BAT shell scripting.


PowerShell is even more a threatening thing. (Bash is more accessible 
than PowerShell imo).


If they program it is Python or PHP; with PHP still being reasonably 
raw, but Python 3 an abstraction.


I learned Turbo Assembler on a 80286. I am not that old.

But most people experience a mental block these days because they are 
only used to their walled gardens.


Python 3 is a step up in walled-gardenness from Python 2.

Now personally I am not completely anathema to *learning* Python 3.

Now for instance I ran into Python 3's "UserDict" and then found to my 
slight dismay that it didn't exist in Python 2.


Now I am actually happy about that in the sense that I 

Re: Python2 demotion (moving from main to universe) in progress

2017-12-14 Thread Xen

Colin Watson schreef op 09-12-2017 13:51:

On Sat, Dec 09, 2017 at 12:47:28PM +0100, Xen wrote:

Colin Watson schreef op 09-12-2017 0:24:
> there are good reasons behind many of the changes in Python 3

You know, an appeal to "good reasons" is really a blanket statement 
that

betrays the absence of any good reasons.


No, it betrays limited time to write.


Yes, that's what everyone says.

This phrase is used time and time again by people who have no real 
arguments for why a specific thing was done in a certain way.


  To take just one example, Python
2's willingness to mix Unicode and binary types provided that the 
binary

strings were limited to 7-bit ASCII


You mean the implicit encoding to ASCII in order to subsequently decode 
to e.g. UTF-8.


Yes that sounds or sounded like a bad thing.

But instead of only removing that they removed all encodings from byte 
strings.


Or all decodings, whatever.


Even as somebody generally very sympathetic to the needs of
localisation, I've got this wrong because Python 2 had just too many
ways to make mistakes in this area.


So you are basically saying that you still don't agree but you have 
somehow accepted your own fallibility in that something you like is 
wrong and something you dislike is right.


You are basically saying to me that you dislike the Python 3 solution 
but you have accepted that it is "superior".


And you are now forcing yourself into that even as you still dislike it, 
in a post that is meant to convince me that there is no forcing going on 
in Python.


I mean Mr. Watson, I am happy that you are so honest,

but this clearly demonstrates what I am saying. You are giving the 
perfect example.


You are directly telling me that you are forcing yourself to like 
something that you don't like.



In Python 3 you have to confront
the distinction earlier and have a much better chance of getting it
right.


Except when you use low-level code, apparently -- I cannot comment 
enough on what you are saying, but --- what they have done is make the 
higher level object the default, and make it very hard for people to use 
the lower level objects, because conversion for byte types is not 
supported, and only conversion from unicode strings into bytes.


You should know and everyone knows that if you limit yourself to a 
higher level construct, you then get in trouble when you find out it is 
not enough.


I once created something that I designed for LVM -- just a script -- but 
it could basically work on any device, but my interface only allowed 
specification of LVM volumes.


Then I found out that I also needed it for Crypt volumes but my code 
couldn't handle that designation.


I found myself grabbing pieces from my script and using it directly in 
the shell in order to get around my own limited vision.


So I found the need to downgrade "LVM only" code to "DM code" and then 
later I would probably have found that I needed to downgrade it further 
to "any device".


This whole Python bytes/string thing is the same thing.

You cannot use a high level construct as your foundation and then try to 
build the lower level construct out of that, which is what they have 
done.


The foundation has to be the low level. They have tried to reverse that.


You can certainly begin to make the distinction in Python 2
code, but adding the extra type-safety required a breaking change.


I cannot comment but the point you are trying to make is that "any 
solution" would be a "good solution", or that just because it was solved 
in some way, it is by definition good, or better than not solving it.


I think this is wrong.

And this guy makes that point.

http://lucumr.pocoo.org/2014/1/5/unicode-in-2-and-3/

And I don't want to get into politics but some politicians also make 
that statement that "any solution is a good solution" and this usually 
results in mayhem


Here is his words:

"Let me be clear upfront: Python 2's way of dealing with Unicode is 
error prone and I am all in favour of improving it. My point though is 
that the one in Python 3 is a step backwards and brought so many more 
issues that I absolutely hate working with it."


Another example is:

"I've hit this limitation a couple more times, and none of the proposed 
workarounds are adequate. Working with protocols and file formats that 
use human-readable markup is significantly clumsier than it was with 
Python 2 (using either the % operator, which also lost its support for 
byte strings in Python 3, or .format())."


I happen to know the % operator ;-).

It is ridiculous that you cannot use it for binary-only text, or what I 
would call just byte strings.


So you can use the ASCII encoder. But what if there is something else in 
there, that you want to leave unharmed?


This low level feature is just adequately expressed in what existed 
before.


https://bugs.python.org/issue3982

However my intent was not to discuss low level Python semantics...


I'm not going to continue to 

Re: Python2 demotion (moving from main to universe) in progress

2017-12-14 Thread Daniel Watkins
On Thu, Dec 14, 2017 at 11:45:23PM +0100, Xen wrote:
> The move towards Python 3 was forced, it didn't come natural for anyone.

Nope, I have preferred Python 3 since ~3.3, and the transition has
happened over _more than a decade_.

>   Lists became iterables. That is one glaring thing, even though I am novice
> in Python, that
>   appalled me.

Nope:

In [1]: type([x for x in range(3)])
Out[1]: list

In [2]: type(x for x in range(3))
Out[2]: generator

>   Stuff was taken out (or moved away) that the devs considered "useless"
> (like the filter
>   function) but they don't give you the choice.

Nope:

% python3 -c"print(list(filter(lambda x: x == 'b', ['a', 'b', 'c'])))"
['b']


Please stop.


Dan

-- 
Ubuntu-devel-discuss mailing list
Ubuntu-devel-discuss@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss


Re: Python2 demotion (moving from main to universe) in progress

2017-12-14 Thread Xen

Ralf Mardorf schreef op 09-12-2017 15:18:


See
https://lists.linuxaudio.org/pipermail/linux-audio-dev/2017-December/036974.html

The author "learned to be very selective" when he chose FLOSS software.


That basically supports the notion that it is unwise to depend on 
anything because those you have trusted with something might turn their 
back on you any day.


The move towards Python 3 was forced, it didn't come natural for anyone.

I don't even _want_  to program in 3.

  Lists became iterables. That is one glaring thing, even though I am 
novice in Python, that

  appalled me.

  Stuff was taken out (or moved away) that the devs considered "useless" 
(like the filter

  function) but they don't give you the choice.

  I mean if people still used it, apparently it was useful.




We FLOSS users can't blame upstream, since "warranty" is mentioned more
than one time by ..


That is just a license to be "regardless" you know, without regard for 
those you have made dependent on you.


The NO WARRANTY claim is one of the greatest evils of the Linux world.

A normal business says "We care about you". This says the exact 
opposite.


Hence you find so much discord and selfishness.

If you are inspired by a phrase that amounts to "We don't care about 
you", you shouldn't expect to find _care_ in the software they produce.


Not just regardless, but also careless.

And as a result, usually hostile...




let alone that python does use a custom license,
https://en.wikipedia.org/wiki/Python_Software_Foundation_License


The same screaming is in that license too.

Even the assertion that there is no guarantee that by using Python, you 
don't infringe on other people's rights.


A sort of legal unguarantee that it's legal.

But even though this is meant to convey a status quo about the current 
moment, so to put it, it is then used far beyond the current moment to 
imply that they can also always pull your leg from out of under you.


So it is originally meant as a _passive_ thing, of something not in 
motion.


Yet then they start moving, and use the same terms to #%@$ with you.

It is not really meant to say "We won't break our software" (or the lack 
of promise surrounding that), but it is meant to say "It is not broken" 
(or the lack of promise surrounding that) because it is the license of a 
release.


Software that is not changed can also not break. But then they go on to 
actively ensure that you cannot use the old version anymore, not by way 
of natural decay, but by way of active desire, or promotion, or 
obstruction, or whatever.



And you know what is always the funniest part?

First this:

a) EXPRESS OR IMPLIED

And then this:

b) Python is a programming language that lets you work quickly and 
integrate systems more effectively. Learn More


So they break their own license, they are expressly implying that it is 
fit for a certain purpose.


You shouldn't speak in double tongues.

Either you don't imply or expressly state something, or you do, but 
don't first say you don't, and then do it regardless.




Using FLOSS requires self-responsibility. Maintainers of a Linux or BSD
"ecosystem" such as Ubuntu need to make decisions.


Yes a decision to fight for stability for instance.


While I'm against snappy and Co., the benefit of snappy and Co. is
working around some issues of the shared software approach.


Of course.

People always complained of the "Windows DLL hell", but really...

--
Ubuntu-devel-discuss mailing list
Ubuntu-devel-discuss@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss


Re: Python2 demotion (moving from main to universe) in progress

2017-12-14 Thread Xen

Ralf Mardorf schreef op 09-12-2017 22:17:

On Sat, 09 Dec 2017 14:31:12 +0100, Xen wrote:

I think Kohlhaas was actually pretty sympathetic ;-).


Indeed, but don't confuse the way of Kohlhaas, with the way of the
worrier, as described by the Hagakure,
https://en.wikipedia.org/wiki/Hagakure ;).


Oh so that's where ehm let's say, Konohagakure, gets its name 
from.


And sumogakure... no, sunagakure, and kumogakure. And Iwagakure, 
kirigakure, and yamagakure.


But I'm drifting off...


You sometimes sound like somebody doing a software Bushido


Of course. I don't think I need to read that link ;-).


I'm a relatively bookish dyslexic. I didn't read the complete Hagakure,
not because I suffer from dyslexia, but because the content of the
Hagakure was much too idiotic


Ah.

I only know the stories of Minamoto no Yoshitsune, or at least, I was 
inspired by it, at some point.


But that is beside the point here.

--
Ubuntu-devel-discuss mailing list
Ubuntu-devel-discuss@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss


Re: Python2 demotion (moving from main to universe) in progress

2017-12-10 Thread Sam Wille
unsubscribe


On Fri, Dec 8, 2017 at 7:41 AM, Matthias Klose  wrote:

> Python upstream announced the EOL of Python2 for 2020
>
>   https://pythonclock.org/
>
> Getting Python2 demoted has been an ongoing task for several Ubuntu
> releases,
> now finally having a desktop CD image in Ubuntu 17.10 which ships without a
> Python2 interpreter.  The next step is to get Python2 demoted to universe,
> before finally in the far future it can be removed entirely from the
> archive.
> To get this done, we need:
>
>  - OpenStack package builds using Python3
>  - Removing or updating Python2 packages in the Ubuntu seeds.
>  - Fixing remaining packages to use Python3 instead of Python2
>  - Make sure that no new Python2 packages enter main (now being
>a topic for the MIR process).
>
> Besides the OpenStack issues, you can find about 50 remaining issues at
>
>   https://bugs.launchpad.net/ubuntu/+bugs?field.tag=py2-demotion
>
> There are now about 35 left, so please consider working on these, or
> commenting
> on solutions for some issue.
>
> It is unlikely that the demotion of Python2 will be possible for the 18.04
> LTS
> release, but please work on the issues so that we are ready for the
> demotion
> once OpenStack is using Python3.
>
> Thanks, Matthias
>
> --
> ubuntu-devel-announce mailing list
> ubuntu-devel-annou...@lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-announce
>
-- 
Ubuntu-devel-discuss mailing list
Ubuntu-devel-discuss@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss


Re: Python2 demotion (moving from main to universe) in progress

2017-12-09 Thread Ralf Mardorf
On Sat, 9 Dec 2017 22:17:09 +0100, Ralf Mardorf wrote:
>I didn't read the complete Hagakure, not because I suffer from
>dyslexia, but because the content of the Hagakure was much too idiotic
   ^^^
   and much likely still
   _is_, but perhaps a
   new translation is
   available, that
   might change this
   impression

-- 
Ubuntu-devel-discuss mailing list
Ubuntu-devel-discuss@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss


Re: Python2 demotion (moving from main to universe) in progress

2017-12-09 Thread Ralf Mardorf
On Sat, 09 Dec 2017 14:31:12 +0100, Xen wrote:
>I think Kohlhaas was actually pretty sympathetic ;-).

Indeed, but don't confuse the way of Kohlhaas, with the way of the
worrier, as described by the Hagakure,
https://en.wikipedia.org/wiki/Hagakure ;).

You sometimes sound like somebody doing a software Bushido,
https://en.wikipedia.org/wiki/Bushido .

I'm a relatively bookish dyslexic. I didn't read the complete Hagakure,
not because I suffer from dyslexia, but because the content of the
Hagakure was much too idiotic, to waste my time with reading the
complete book.

-- 
Ubuntu-devel-discuss mailing list
Ubuntu-devel-discuss@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss


Re: Python2 demotion (moving from main to universe) in progress

2017-12-09 Thread Ralf Mardorf
On Sat, 09 Dec 2017 14:31:12 +0100, Xen wrote:
>I am pretty sure that if the upstream devs would have taken a more 
>considerate approach, businesses would actually have been willing to 
>fund security maintenance, since it would have cost them much less
>than making the transition.

See
https://lists.linuxaudio.org/pipermail/linux-audio-dev/2017-December/036974.html

The author "learned to be very selective" when he chose FLOSS software.

We FLOSS users can't blame upstream, since "warranty" is mentioned more
than one time by https://www.gnu.org/licenses/gpl-3.0.en.html , let
alone that python does use a custom license,
https://en.wikipedia.org/wiki/Python_Software_Foundation_License .

Using FLOSS requires self-responsibility. Maintainers of a Linux or BSD
"ecosystem" such as Ubuntu need to make decisions.

While I'm against snappy and Co., the benefit of snappy and Co. is
working around some issues of the shared software approach.

-- 
Ubuntu-devel-discuss mailing list
Ubuntu-devel-discuss@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss


Re: Python2 demotion (moving from main to universe) in progress

2017-12-09 Thread Xen

Ralf Mardorf schreef op 09-12-2017 9:19:


PS: Don't get me wrong Xen, I get your point and without doubts you are
"Kohlhaas", as I'm, too.


I am pretty sure that if the upstream devs would have taken a more 
considerate approach, businesses would actually have been willing to 
fund security maintenance, since it would have cost them much less than 
making the transition.


So yes I believe your Kohlhaas analogy is correct (more so than, or 
easier to understand, than Don Quixotte, (which I have partly read)) but 
I think Kohlhaas was actually pretty sympathetic ;-).


The wikipedia article phrases it as if Kohlhaas went against public 
opinion but apparently it was more a case of corruption at the top.


Which is, of course, also analogous here: do people *really* agree, or 
do they just try to avoid trouble?


The topic of my message was whether or not Ubuntu opposed this evolution 
in any way or not.


I also wanted to say here: The North Koreans (when warning about border 
trespassings) say "Value a happy life".


Which is a rather friendly way to say : stay out of trouble (for your 
own good) ;-).



But anyway.

Ubuntu existed for a long time, could have opposed Python 3, apparently 
is not doing so, now complains that they have no choice but to go along, 
when they have supported this evolution all along.


That's the only thing I was pointing to: don't support the whole 
evolution and then claim you are a victim of it.




Arch Linux was one of the first distributions to officially move to 
Python 3.


--
Ubuntu-devel-discuss mailing list
Ubuntu-devel-discuss@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss


Re: Python2 demotion (moving from main to universe) in progress

2017-12-09 Thread Colin Watson
On Sat, Dec 09, 2017 at 12:47:28PM +0100, Xen wrote:
> Colin Watson schreef op 09-12-2017 0:24:
> > there are good reasons behind many of the changes in Python 3
> 
> You know, an appeal to "good reasons" is really a blanket statement that
> betrays the absence of any good reasons.

No, it betrays limited time to write.  To take just one example, Python
2's willingness to mix Unicode and binary types provided that the binary
strings were limited to 7-bit ASCII was the cause of a large number of
bugs over the years, which Anglophones tended to overlook and allow to
reach production code because they rarely use characters outside ASCII.
Even as somebody generally very sympathetic to the needs of
localisation, I've got this wrong because Python 2 had just too many
ways to make mistakes in this area.  In Python 3 you have to confront
the distinction earlier and have a much better chance of getting it
right.  You can certainly begin to make the distinction in Python 2
code, but adding the extra type-safety required a breaking change.

I'm not going to continue to spend time explaining the underlying
reasons in response to vague insinuations, though.  If there are some
particular changes in Python 3 that you think weren't well-founded, name
them.  This is a list for developers; we can be specific.

> So you go on to detail the similarities with C but with C there never was
> one breaking point, just incremental changes.

There have been many breaking changes in C over the years, though since
it's an essentially smaller language most of those changes (not all!)
have been at the runtime or library levels.  Small consolation if that's
what breaks your code, of course.

But you seem to be under the impression that moving from Python 2 to
Python 3 requires non-incremental changes: i.e. a flag day where your
code stops working on Python 2 and starts working on Python 3.  This
isn't so.  There's a large subset that works fine in both: nearly all
the code I write these days is "bilingual" in this way, and the obvious
porting strategy for most code involves making it be this way, so at the
end all you have to do is flip to the newer interpreter after your tests
pass.

I would rather that Python 3 had taken the Perl 6 approach of having the
newer interpreter be able to execute older code in a special
compatibility mode, so that we could mix-and-match more freely and the
transition would have been easier.  On the other hand, it's not at all
obvious how text/bytes types would have worked across the boundary.
(And, much though I like Perl, Perl 6 has taken even longer to get into
typical developers' hands than Python 3 has, so ...)

> The work of "God" (unfortunate events) should not be willfully perpetrated
> by humans on one another on purpose.

What is your *concrete* proposal here?  Bear in mind that we don't have
the resources to maintain Python 2 indefinitely; if that's your
proposal, it's going to run up against real-world constraints.  But
there may be other things we can do to make it easier for people.  Do
you have some specific projects that are troublesome?

-- 
Colin Watson   [cjwat...@ubuntu.com]

-- 
Ubuntu-devel-discuss mailing list
Ubuntu-devel-discuss@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss


Re: Python2 demotion (moving from main to universe) in progress

2017-12-09 Thread Colin Law
On 9 December 2017 at 11:47, Xen  wrote:
> Colin Watson schreef op 09-12-2017 0:24:
>
>> there are good reasons behind many of the changes in Python 3
>
>
> You know, an appeal to "good reasons" is really a blanket statement that
> betrays the absence of any good reasons.
>
> So you go on to detail the similarities with C but with C there never was
> one breaking point, just incremental changes.
> .
> .

Note that Colin Watson also schreef op 09-12-2017 0:24:
> In any case, there is really very little point in tilting at this
> windmill now, unless your goal is to expend further energy.

Colin Law

-- 
Ubuntu-devel-discuss mailing list
Ubuntu-devel-discuss@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss


Re: Python2 demotion (moving from main to universe) in progress

2017-12-09 Thread Oliver Grawert
hi,
Am Samstag, den 09.12.2017, 11:38 +0100 schrieb Xen:
> 
> 
> The Ubuntu CoC states to assume good intentions on behalf of the
> other.

and you are aware that this applies to both sides of the conversation,
right ? 

ciao
oli

signature.asc
Description: This is a digitally signed message part
-- 
Ubuntu-devel-discuss mailing list
Ubuntu-devel-discuss@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss


Re: Python2 demotion (moving from main to universe) in progress

2017-12-09 Thread Xen

Robie Basak schreef op 08-12-2017 22:22:


Because Python 2 will be unsupported upstream and we don't have an
unlimited amount of resources to maintain it in Ubuntu without 
upstream.

The more time we spend on maintaining duplicate stuff in the archive,
the less time we have to spend on other things that users want to see.


There is no reason to repeat basics that you may assume everyone 
understands.


What I mean is that such platitudes are unnecessary.

If you find someone in disagreement, please consider that you do not 
understand that person's intentions, rather than ignorance on behalf of 
that person?


The Ubuntu CoC states to assume good intentions on behalf of the other.

This includes not treating people as a child because you believe they 
are too dumb to understand the basics.


Nobody here needs to hear business 101 repeated to them.

Not even me.

In that sense, if you want to say it like that.

*Certainly* not me, but you may disagree on that.




Nobody is being forced to do anything.


This is dishonest. Upstream is forcing this thing, so it is obvious if 
downstream users would also be forced, even if Ubuntu is also getting 
forced along the road.


1) Upstream is doing the forcing
2) Apparently Ubuntu is getting forced
3) Users are getting forced as a result

I do not question whether Ubuntu has to go along with upstream or not.

I question whether Ubuntu has done anything against it.

I question whether Ubuntu has made any public statements in opposition 
of this change?


Have you used your political and practical power to resist this change?

Have you been vocal or not?

Has Ubuntu made any statement or announcement, or taken any public or 
official position in opposition to, or in condemnation of, the 
abandonment or discontinuation of Python 2 by upstream?


This is my sole question to you.

Thank you, that's all.

--
Ubuntu-devel-discuss mailing list
Ubuntu-devel-discuss@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss


Re: Python2 demotion (moving from main to universe) in progress

2017-12-09 Thread Ralf Mardorf
On Fri, 8 Dec 2017 21:22:34 +, Robie Basak wrote:
>Assuming we do ship Python 2 in main in 18.04, which seems likely, you
>will be able to use Python 2 in 18.04 until 2023.

It's quite possible that Arch Linux (I mentioned it by a previous
reply) might move python2 back to the Arch User Repository before 2023,
where it probably gets orphaned very soon. However, the policy of Arch
Linux is different to the Ubuntu's policy, so Xen should consider to
compare both policies regarding his needs.

-- 
Ubuntu-devel-discuss mailing list
Ubuntu-devel-discuss@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss


Re: Python2 demotion (moving from main to universe) in progress

2017-12-09 Thread Ralf Mardorf
On Sat, 9 Dec 2017 08:44:06 +0100, Ralf Mardorf wrote:
>On Fri, 8 Dec 2017 23:24:52 +, Colin Watson wrote:
>>In any case, there is really very little point in tilting at this
>>windmill now  
>
>Don Quixote doesn't need to worry about thinking about something
>idiotic, since actually it's Sancho Panza who has to face the music.
>However, the analogy fits perfect in this case.
>
>In Germany we tend to self-flagellation, so instead of an "alter ego"
>named "Don Quixote" who lets suffer somebody else for his failure, our
>"alter egos" are usually "Michael Kohlhaas", who does face the music
>himself.
>
>https://en.wikipedia.org/wiki/Michael_Kohlhaas

PS: Don't get me wrong Xen, I get your point and without doubts you are
"Kohlhaas", as I'm, too. However, there are reasons to distinguish
between different, even official repositories.

Perhaps you are simply using the wrong distro regarding your needs.

For Arch Linux pyton2 isn't moved to the community repository:

https://www.archlinux.org/packages/extra/x86_64/python/
https://www.archlinux.org/packages/extra/x86_64/python2/

https://wiki.archlinux.org/index.php/official_repositories#extra
https://wiki.archlinux.org/index.php/official_repositories#community

-- 
Ubuntu-devel-discuss mailing list
Ubuntu-devel-discuss@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss


Re: Python2 demotion (moving from main to universe) in progress

2017-12-08 Thread Ralf Mardorf
On Fri, 8 Dec 2017 23:24:52 +, Colin Watson wrote:
>In any case, there is really very little point in tilting at this
>windmill now

Don Quixote doesn't need to worry about thinking about something
idiotic, since actually it's Sancho Panza who has to face the music.
However, the analogy fits perfect in this case.

In Germany we tend to self-flagellation, so instead of an "alter ego"
named "Don Quixote" who lets suffer somebody else for his failure, our
"alter egos" are usually "Michael Kohlhaas", who does face the music
himself.

https://en.wikipedia.org/wiki/Michael_Kohlhaas

-- 
Ubuntu-devel-discuss mailing list
Ubuntu-devel-discuss@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss


Re: Python2 demotion (moving from main to universe) in progress

2017-12-08 Thread Colin Watson
On Fri, Dec 08, 2017 at 09:51:00PM +0100, Xen wrote:
> It was pushed upon an unwilling community

Oh, please.  I don't think anyone's going to argue that it's been the
best-managed transition in the history of ever: it's true that it
effectively split the community for a while, a lot of work has had to be
put into porting work that might otherwise have been spent on other
things, and we're still in a situation where many newer facilities have
remained inaccessible to developers of older projects for longer than
they ordinarily would have done.  None of these things is anything like
ideal.  But framing it as a dichotomy between those nasty developers and
an unwilling community of consumers is facile; it is by no means that
simple.  Plenty of folks in the Python community have recognised that,
even if it isn't an ideal situation, there are good reasons behind many
of the changes in Python 3 and they've put lots of energy into helping
out.

In any case, there is really very little point in tilting at this
windmill now, unless your goal is to expend further energy.

> But I was going to say 2 years might seem like a lot, or 3 years, but it is
> nothing.

It's been obvious for nearly ten years now that Python 2 was going to
reach the end of the road eventually; once the incompatible changes to
the language landed, it was naïve to expect that Python 2 would continue
to be maintained indefinitely.  Anybody who's only suddenly noticing it
really hasn't been paying attention at all.

> Meanwhile we can still run C programs from 1980, basically.
> 
> Or whereabouts, at least.

Interesting you should say that, because (just to take one example) the
attitude to undefined behaviour in compilers has changed a great deal
since 1980.  Your C program written back then may still manage to
compile with sufficient "please run in ancient mode" compiler options,
but will it behave as expected if nobody has maintained it in nearly 40
years?  Who can say, but probably only if it's very simple and you're
quite lucky.  And in fact unless it's the simplest possible kind of
program with almost no system dependencies, you'll probably have to
spend at least some effort bringing it up to date with post-Neolithic
header names and function signatures.

Admittedly I only have experience of maintaining moderate-sized C
programs that hailed from the 1990s rather than the 1980s, but in my
experience the work involved in keeping that sort of thing up to date
isn't significantly different from the work involved in doing the same
for similarly-sized Python projects.  (That is, if it's more than a
couple of thousand lines or so then somebody probably needs to be
actively maintaining the thing even if its basic functionality is
static, and you're going to have to occasionally deal with changes in
the language or its runtime facilities, changes in your dependencies,
and stuff you just missed.)

> I think you can definitely find a way to compile most programs from 1990...

Similarly, I'm sure it will remain possible to dig up Python 2 and
continue to use it for many years to come, even after it's no longer
supported upstream and no longer in Ubuntu.

Whether that's a good idea after nobody is taking responsibility for
security updates to the core language or the standard library, and after
the libraries you depend on have dropped Python 2 support so you're
stuck on older versions, is up to you to decide.  If it's at all
network-facing, then anyone with a reasonable sense of responsibility
realised some time ago that they need to keep their dependencies up to
date.  If it's entirely self-contained, then maybe it's fine; to save on
maintaining your own Python build, you could perhaps run it in a
container running an older version of the OS.  Or if the program is
simple you may well just be able to run 2to3 over it and at least get
most of the way there.

But unless it's really enormous, it's probably not all that hard to port
anyway.  Putting a clear bytes/text distinction in place if you didn't
have one already can be tedious, sure, but it generally makes things
better; most of the rest is easy by comparison; and nowadays there are
several good libraries and strategies to help.

Lest anyone think I'm casually underestimating the work involved, I'm
speaking here as a Launchpad developer: three-quarters of a million
lines of Python code, and a couple of hundred dependencies.  Sure, we're
still on Python 2, which is a problem: other projects have generally
taken precedence and porting has been a back-burner task.  But a large
part of the work we need to do is work we'd have needed to do anyway,
such as bringing many of those dependencies up to date or finding
better-maintained versions of some of them, and we have at least the
skeleton of a plan.  I feel quite safe in saying that for most Python
programs it would be a great deal easier than this.

-- 
Colin Watson   [cjwat...@ubuntu.com]

-- 
Ubuntu-devel-discuss 

Re: Python2 demotion (moving from main to universe) in progress

2017-12-08 Thread Robie Basak
On Fri, Dec 08, 2017 at 09:51:00PM +0100, Xen wrote:
> Personally I don't know *why* this needed to happen. Also from the
> perspective of the python devs, I mean.

Because Python 2 will be unsupported upstream and we don't have an
unlimited amount of resources to maintain it in Ubuntu without upstream.
The more time we spend on maintaining duplicate stuff in the archive,
the less time we have to spend on other things that users want to see.

> Except to force more people onto Python 3.

Nobody is being forced to do anything. Assuming we do ship Python 2 in
main in 18.04, which seems likely, you will be able to use Python 2 in
18.04 until 2023. After that, you'll still be able to use Python 2 in
18.04 but will need to make arrangements to maintain the release for
security rather than have it done for free for you.

As for what upstream should or shouldn't do, I don't see how that's on
topic for this list.


signature.asc
Description: PGP signature
-- 
Ubuntu-devel-discuss mailing list
Ubuntu-devel-discuss@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss


Re: Python2 demotion (moving from main to universe) in progress

2017-12-08 Thread Xen

Python upstream announced the EOL of Python2 for 2020

  https://pythonclock.org/

It is unlikely that the demotion of Python2 will be possible for the 
18.04 LTS
release, but please work on the issues so that we are ready for the 
demotion

once OpenStack is using Python3.


Personally I don't know *why* this needed to happen. Also from the 
perspective of the python devs, I mean.


It was pushed upon an unwilling community and the python people have 
really been pulling the cart with great force against wheels unwilling 
to leave the tracks.


Which should be indication enough that it's still needed.

There are so many older systems and older packages and at some point it 
will simply be impossible to run these programs and there was never a 
great necessity to see Python 2 go.


Except to force more people onto Python 3.

Alternatives kinda ...blow... in that sense.

You don't want people to have choice if they keep making the wrong ones 
right.


But I was going to say 2 years might seem like a lot, or 3 years, but it 
is nothing.


Meanwhile we can still run C programs from 1980, basically.

Or whereabouts, at least.

I think you can definitely find a way to compile most programs from 
1990...


The discontinuation of PHP 5 also seems to have been unnecessary and 
puts many many people into a tough spot.


Preventing people from upgrading their distributions etc.

I mean I understand Ubuntu is a 'consumer' here and not a 'producer' (or 
follower and not leader) but sometimes...


The ones who follow seem more eager than the ones who lead.

Meanwhile there is not really any good reasons for the discontinuation.

It's just done because people want it to be done but there aren't really 
any good reasons for it.


And before anyone says anything: electrical screwdrivers are very handy, 
but we can still buy ordinary ones.


--
Highly Evolved Beings do not consider it “profitable” if they benefit at 
the expense of another.


--
Ubuntu-devel-discuss mailing list
Ubuntu-devel-discuss@lists.ubuntu.com
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss