Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A "Thank You" sign-off and archive? #292

Closed
mscuthbert opened this issue Apr 9, 2024 · 20 comments
Closed

A "Thank You" sign-off and archive? #292

mscuthbert opened this issue Apr 9, 2024 · 20 comments

Comments

@mscuthbert
Copy link
Collaborator

Now that it's 2024 and the Python 3 move has been a big success -- how about one last PR to give a closing update to the project -- what its aims were, how important the support of projects (both big and small) were to the adoption of Python 3-only work, and how projects are continuing to develop, move beyond old-version compatibility, and move Python-based projects into a more robust, faster running, and continually developing world, or something like that. And then say that no more projects to be listed -- this is a historical archive etc.

Thoughts from other/original maintainers?

Good work to everyone who first thought of this project and those who contributed along the way. Congrats!

@asmeurer
Copy link
Member

BTW I own the domain python3statment.org. It expires in November, but I don't have any issues keeping it around for historical purposes if people feel that's important.

@Carreau
Copy link
Member

Carreau commented Apr 10, 2024

No objections from me, do you want to send a PR ?

@takluyver
Copy link
Member

Yup, that sounds like a great plan to me! I do think our statement played a small but significant part in helping the community move forwards at a point when it looked like Python 2 & 3 might live side by side for many years, which would have been a real burden for library & framework developers.

Here's some words we might use as a starting point:

This page is now an archive of part of the transition from Python 2 to 3. The Python 3 statement was first drawn up around 2016, and a growing number of projects signed up as we approached 2020, when support for Python 2 was scheduled to end. The long-term transition has succeeded: it is normal today for projects to support only Python 3, simplifying maintainers' lives and letting us take full advantage of newer language features. Thank-you to all of the people, in projects big and small, who contributed their support to the statement!

@asmeurer Thanks for buying & maintaining the domain! I don't think it needs to live forever on a dedicated domain, but perhaps we can arrange that for the last few months of the domain being active, it redirects to the free Netlify or Github pages subdomain, to give people a chance to update any links to it?

@asmeurer
Copy link
Member

That's a good idea. I am swapping things around now.

@asmeurer
Copy link
Member

A little historical context, which could be useful for the sign off message, since many (most?) Python programmers today weren't around in the community ten years ago. In early 2016 when this site was created, the position of Python 3 in the ecosystem was still unclear. Some popular libraries still did not support it, and almost all still supported Python 2. The first version of Python 2 was released in 2008, and by 2016, the latest version was 3.5, a quite usable version (see https://www.python.org/doc/versions/). Guido had originally stated that Python 2.7 would stop being supported in 2015, but by 2014, this was extended to 2020, because the adoption by then was still quite low. (I'm sure someone could dig up some actual numbers here)

This indeed made many people quite nervous that Python 3 adoption might never happen. It's not even clear what this would have meant for the ecosystem if it had occurred. Would the CPython have been forced to continue Python 2 support forever, effectively splitting the language (similar to Perl and Raku)? Would the extra burden of maintenance have caused people to move to other languages, killing off the community? Would a major player fork Python 2 and split the community that way? There were also some people in the community who were loudly outspoken against Python 3 (some with legitimate technical concerns, but the FUD was nonetheless very real).

As a user and a maintainer, I saw the problem as this: most end-users were still using Python 2. It was the "default" for most installation methods, and even if they wanted to use Python 3, the lack of support by some libraries meant they would still need to consider Python 2 support. OTOH, libraries were hesitant to support Python 3. This is because at the time, supporting Python 3 meant supporting two versions at once. This became easier as the general consensus moved from doing this with 2to3 to using tools like six, as well as some features in newer Python 3 versions that made compatibility easier (like u-prefixed strings), but the friction was still there. I often heard maintainers express the opinion that supporting Python 3 was a waste of effort and maintenance burden given that there were almost no users.

This "chicken" situation became especially concerning to me. It was clear to me that library maintainers needed to move first, not users, because users are effectively forced to use whatever their libraries support. But library maintainers were also playing chicken with each other, especially against core libraries that are dependencies of many things in the stack (e.g. numpy).

This is why I tweeted that libraries should sign a statement stating that the will drop Python 2 support by 2020. (I'm still unclear if my tweet was the direct inspiration for @Carreau to create this site or if he had the idea independently). My idea is that this would create a Nash Equilibrium that would remove the "I'll wait to see what everyone else is doing first" feeling from the ecosystem. I also wrote a blog post about my thoughts, which was at the top of Hacker News and garnered a lot of controversy. Those HN comments will give you a good idea of what the general feeling on Python 3 was like back then.

Remarkably, the idea actually worked and as more people signed on to the statement, it generated momentum. I don't know how much it actually mattered in the end, but I think it did at least help to convince some projects that dropping Python 2 support was "OK" since "everyone else is doing it too".

Also, I don't want to claim any credit here. My main contribution (aside from the idea) was buying a domain so that the site looked more legitimate. The actual work on the site was done by @Carreau and @takluyver.

@asmeurer
Copy link
Member

By the way, I suck at configuring DNS. I've tried to set python3statement.org to 301 redirect to python3statement.github.io, but I think I've only managed to break it.

@asmeurer
Copy link
Member

@Carreau @takluyver if either of you know how to work namecheap and fix this you're both managers on the domain https://ap.www.namecheap.com/domains/domaincontrolpanel/python3statement.org/advancedns

@takluyver
Copy link
Member

It looks like the redirect works from plain HTTP http://python3statement.org , but not on HTTPS. And I guess the browser either prefers HTTPS or remembers that it has previously seen the site on HTTPS, so it won't readily use plain HTTP.

It looks like this is a known limitation of Namecheap's built in redirects.

There's a site domain-forward.com which offers to solve this. It appears to be free up to 200k requests per month; I guess python3statement isn't getting huge amounts of traffic any more. I guess that's easier than setting up a server with SSL somewhere just to serve redirects?

@Carreau
Copy link
Member

Carreau commented Apr 11, 2024

I guess we can do a non-dns redirect, and inject a tiny bit of JS ?

@asmeurer
Copy link
Member

Wow, thanks for the info Thomas. I set it up on domain-forward and it seems to work now.

@takluyver
Copy link
Member

Nice one, thanks Aaron! The redirect works for me.

Carreau added a commit to Carreau/numpy that referenced this issue Apr 12, 2024
See python3statement/python3statement.github.io#292

To avoid having to pay for the domain indefinitely the devs are now
redirecting toward github pages.

Be proactive and start switching domains.
Carreau added a commit to Carreau/numpy that referenced this issue Apr 12, 2024
See python3statement/python3statement.github.io#292

To avoid having to pay for the domain indefinitely the devs are now
redirecting toward github pages.

Be proactive and start switching domains.
Carreau added a commit to Carreau/Quansight-website that referenced this issue Apr 12, 2024
See python3statement/python3statement.github.io#292

The devs will not renew the domain forever – it is redirecting for now,
but will not do that forever.
@Carreau
Copy link
Member

Carreau commented Apr 12, 2024

I've sent PRs to a couple of place to update URLs,

I know of at least xarray and imageio that reference the

xarray/doc/whats-new.rst
4561:  - `Python 3 Statement <http://www.python3statement.org/>`__

imageio/docs/user_guide/drop27.rst
16:.. _python3-statement: http://www.python3statement.org/

(also the www. redirect might be incorrect as it raise an invalid certificate)

rgommers pushed a commit to Quansight/Quansight-website that referenced this issue Apr 12, 2024
See python3statement/python3statement.github.io#292

The devs will not renew the domain forever – it is redirecting for now,
but will not do that forever.
@mscuthbert
Copy link
Collaborator Author

mscuthbert commented Apr 12, 2024

BTW I own the domain python3statment.org. It expires in November, but I don't have any issues keeping it around for historical purposes if people feel that's important.

If you'd be willing to renew for one more year my sense is that this would be enough time for the SEOs to point everything to the new redirect. November may be enough time but in my experience less than six months can be dicey for that. Glad to cover the cost if it's a financial burden. (Seeing that others had already pledged on this site--it was only about 6-8 then--gave me the courage to pledge to move music21 to Py3 only, a move I've never regretted as I regained my joy of developing in Python when I did so; I was happy to sign and wear the pledge boldly!)

Whatever text is decided on (I've loved hearing the stories of how this came to be, stories I never knew until now) let's also put it in the README. Hosting of the website may disappear somewhere in the deep future but a git clone will survive an order of magnitude longer.

I was trained as a 14th c music scholar for my PhD and I know and depend on the foresight of people 700 years ago who wrote down things that others didn't think would be worth preserving. When the history of computation 1950-2050 is written somewhere in the distant future I think Python will be part of that history and I think this project will be a contributor to that story. I saw how Perl 5 vs 6 killed off a thriving and active community and that could have happened again if it weren't for the boldness of some devs and their willingness to say "we have your back" to those who followed.

@takluyver
Copy link
Member

In a similar vein to Aaron's 'playing chicken' metaphor, I definitely remember talking about a herd of wildebeest preparing to cross a crocodile-infested river - one setting out by itself (i.e. one project dropping support for Python 2) is going to have a bad time, but there's safety in numbers when the whole lot charge across at once. Rather melodramatic, I guess, but that was how I envisaged the statement. 😆

@takluyver
Copy link
Member

#293 is my attempt at adding this - do have a look.

@Carreau
Copy link
Member

Carreau commented Apr 12, 2024

We also did a bunch of work upstream for pip and warehouse to support python_requires :-) But yes, I think as a big project it was scary, but I think all the work that was done to both lay the technical work and the appease fear of users stuck on python2, the transition was much smoother than expected.

@asmeurer
Copy link
Member

www redirect should be fixed.

@asmeurer
Copy link
Member

OK, I went ahead and renewed the domain for 1 year. After that I will let it expire.

@takluyver
Copy link
Member

Thanks!

@takluyver
Copy link
Member

OK, the 'history' section is up, and I've also updated the readme. Thanks @mscuthbert for the suggestion!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants