Re: Python2 demotion (moving from main to universe) in progress
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
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 wrote
Re: Python2 demotion (moving from main to universe) in progress
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
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
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
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
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
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
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
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
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
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
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
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. Maintenance is about incremental changes. The work you are doing which falls under maintenance is the work that is required to get to the point where you can make the transition. I have no great experience in large projects myself but I do understand the "fixing stuff before you can move on" aspect. For example, making large backups or moving a system to some other place usually requires cleaning work to be done beforehand. This is common in life as well; you try to get things "in order" before making major changes. And while you could of course indeed recognise the benefit in doing so and the opportunity to defeat stale situations that by nature of their inertia would otherwise not get resolved, that doesn't mean the change itself, or the *causation* of that change by another party, could then be considered always "happy" or "positive". Even if you lose your house, this still applies. It's YOU making the best of a situation, it doesn't make the situation happy, nor does it mean that the situation should be allowed or encouraged to be enacted in the first place. You are already at the end of the stick at this point; you are already dealing with consequences. Someone might lose their child and make positive changes as a consequence; this doesn't mean you should cause people to lose their children. The work of "God" (unfortunate events) should not be willfully perpetrated by humans on one another on purpose. Apparently the cost of transitioning is causing many outlets to choose another language for their projects; they have to rewrite anyway or find different libraries and this is then enough of a reason to make the jump to another language that promises more long term stability. Also your project is a work in progress and you are a software company at heart; for you transitioning is going to be more natural and less costly than businesses that only *use* software but don't produce it, or don't produce it as their main enterprise, or for their own consumption. I have to stop writing though. I apologize for any "shortcutting" here or not giving your writings enough time. Regards. -- 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
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
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
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
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
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
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 mail
Re: Python2 demotion (moving from main to universe) in progress
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
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