-
Notifications
You must be signed in to change notification settings - Fork 49
Description
Project to be claimed
turtle
: https://pypi.org/project/turtle
Your PyPI username
zahlman
: https://pypi.org/user/zahlman
Reasons for the request
I believe that this project has an invalid name, in accordance with current policy blocking the names of standard library modules.
Rather than claim the name for myself, I am petitioning to have the project removed and the name blocked from future use. I understand that this is not a standard use of the issue template, but I believe this is an exceptional circumstance (one that should have been acted on a long time ago) and can find no better option to communicate the issue.
The turtle
package advertises itself as an HTTP proxy whose purpose is to throttle connections to specific hostnames to avoid breaking terms of usage of those API providers - i.e., completely unrelated to the standard library module. Despite this, I believe that this package is overwhelmingly being downloaded by new users seeking the turtle-graphics standard library functionality, whether because it is missing or because they do not realize it is part of the standard library. While this package does not appear to be malware, nor a deliberate attempt at name squatting, I nevertheless contend that it is doing harm to the Python ecosystem by creating useless downloads and confusing users (and the users affected by this are biased towards being new to Python).
Maintenance or replacement?
None
Source code repositories URLs
N/A; I am unable to locate a repository for the existing project (as there is no listed project page and the project homepage is unrelated) and do not intend to publish a replacement.
Contact and additional research
Out of social anxiety and a sense that I lack personal standing in the matter, I have not attempted to contact the author.
My research findings are as follows:
- There has been a
turtle
standard library module continuously since Python 2.2. It is an implementation of turtle graphics (the sort historically used to teach the Logo programming language) in Tkinter, sometimes used for Python pedagogical purposes as well. - Despite this status as part of the standard library, many Python installations lack
turtle
, along with Tkinter and IDLE. This commonly happens on Windows when the option to install IDLE is unchecked in the official installer, and on Linux with the system Python when distro maintainers remove it from their build. - The
turtle
PyPI package was published on Jun 11, 2009. Two releases were made the same day, assigned version numbers 0.0.1 and 0.0.2, and there have been no updates since (nearly 14 years). This release date predates adoption of the current policy (credit to Dustin Ingram on the Python Discourse forum for pointing this out) of blocking standard library names; but I can see no reason not to apply the policy retroactively. - The author seems to have stopped contributing on PyPI personally in 2011; the one active project listed has a separate maintainer. The older projects all give the project "homepage" as the same business webpage advertising an online "marketing platform", i.e. nothing related to software development, and an email associated with that business. (The active project lists the author with a personal gmail address and a homepage on GitHub, where multiple contributors are listed.)
- The author also has a similarly-named package
turtl
, which received new releases until 2011. The first release is also listed as version 0.0.2 and was published the same day asturtle
. I downloaded and compared both tarballs; the only differences are to search-and-replace "turtle" with "turtl" everywhere and to remove a likely-irrelevant file._MANIFEST.in
(this looks like it may be a MacOS-specific temporary or recovery file created while editingMANIFEST.in
in a text editor). My inference is that these PyPI names represent the same project, and that the author realized the standard library name conflict but failed to remove the old package name for whatever reason. turtle
currently receives over a thousand downloads daily, which is remarkable for an unmaintained, niche utility running less than 1KLOC.turtl
, on the other hand, is vastly less popular (by around a factor of 250) despite apparently representing an updated version of the same project (and far more of those downloads are coming from either 2.x or an unidentified Python version).- The code is demonstrably written for a 2.x version of Python - it makes use of
print
as a statement, and uses the oldexcept
syntax in itssetup.py
- but around 96% of downloads are coming from 3.x users (as one would expect nowadays; but credit to C.A.M. Gerlach on the main Python Discourse forum for pointing it out). - This Stack Overflow question (which got 10k views despite less-than-satisfactory answers) is a case study in someone downloading the package expecting the standard library functionality rather than an HTTP throttler.
Code of Conduct
- I agree to follow the PSF Code of Conduct
Metadata
Metadata
Labels
Projects
Status