Repository navigation
Recommend closing resolved or non-actionable issues (oldest-first batch, 2004–2007) #150566
Description
Summary
I reviewed a batch of open issues sorted by creation date and identified 20 that appear to be resolved by Python 3's redesign, superseded by RFC updates, or simply stale feature requests with no traction after 18–22 years. Below is each issue with a suggested closure reason.
If you agree, the maintainers can bulk-close with:
gh issue close 44672 45217 44019 43453 43521 42625 43715 42985 43311 40038 40440 41525 41788 42255 43699 44781 44335 45276 44196 42172 --repo python/cpythonIssues to close
-
Use getaddrinfo() in urllib2.py for IPv6 support #44672 (opened Mar 7, 2007) — Use getaddrinfo() in urllib2.py for IPv6 support
Superseded by Python 3.
urllib2was reorganized intourllib.requestin Python 3, and modern Python HTTP handling usesgetaddrinfo()by default. Last activity July 2012, targeted Python 3.2, no PR ever opened. Suggested close reason:completed. -
Patch for [ 735515 ] urllib2 should cache 301 redir #45217 (opened Jul 18, 2007) — Patch for urllib2 should cache 301 redirects
Python 2-only concern.
urllib2no longer exists in Python 3;urllib.requestnever gained this feature and the issue has seen no activity since February 2014. Suggested close reason:not planned. -
RFC 2965 BaseCookie does not support "$Port" #44019 (opened Sep 24, 2006) — RFC 2965 BaseCookie does not support
$PortRFC 2965 was itself obsoleted by RFC 6265, which explicitly dropped the
$Portattribute. Implementing a feature from a superseded RFC is no longer meaningful. Last activity April 2019, no patch ever submitted. Suggested close reason:not planned. -
Alternate RFC 3986 compliant URI parsing module #43453 (opened Jun 4, 2006) — Alternate RFC 3986 compliant URI parsing module
The motivation for a separate module has faded as
urllib.parsematured in Python 3. Last activity January 2015, targeted Python 3.5, no PR. The proposal has had no community momentum in over a decade. Suggested close reason:not planned. -
transparent gzip compression in urllib #43521 (opened Jun 19, 2006) — Transparent gzip compression in urllib
urllib2was replaced byurllib.requestin Python 3, and the specific patch targets Python 2 internals. The feature has not been carried forward in 20 years. Last activity April 2022, no PR. Suggested close reason:not planned. -
SRE engine should release the GIL when/if possible #42625 (opened Nov 25, 2005) — SRE engine should release the GIL when/if possible
Largely superseded by two developments: the third-party
regexmodule (which releases the GIL) and the ongoing PEP 703 free-threading work in Python 3.13+. The issue itself has been dormant since May 2018 (last labeled for Python 3.8, now EOL). Suggested close reason:not planned. -
New sequences for Unicode groups and block ranges needed #43715 (opened Jul 25, 2006) — New Unicode group and block range sequences for
reThe dependent issue (bpo-2636) produced the third-party
regexmodule, which fully supports\p{...}Unicode property escapes. The stdlibremodule has not adopted these in the 20 years since this request. Last activity March 2019, no PR. Suggested close reason:not planned. -
email/charset.py convert() patch #42985 (opened Mar 6, 2006) — email/charset.py convert() patch
The
emailpackage's new policy-based API (introduced in Python 3.3) supersedes the oldcharset.pyconversion approach targeted by this patch. Priority was marked low at time of filing; last activity July 2019, no PR. Suggested close reason:not planned. -
patch smtplib:when SMTPDataError, rset crashes with sslerror #43311 (opened May 3, 2006) — smtplib: RSET crashes with SSLError after SMTPDataError
Status marked "pending" (awaiting response from original reporter) since 2016. Targeted Python 3.7 (now EOL). A patch exists but was never converted to a GitHub PR. No activity in nearly a decade. Suggested close reason:
not planned. -
imaplib: incorrect quoting in commands #40038 (opened Mar 16, 2004) — imaplib: incorrect quoting in commands
Open since March 2004 — 22 years. The
imaplibmodule has seen multiple revisions across Python 3.x releases. No PR has been opened despite a patch file attached in 2010. Last substantive activity December 2024 (a triage note only). Suggested close reason:not planned. -
wait_variable hangs at exit #40440 (opened Jun 23, 2004) — wait_variable hangs at exit
Tkinter bug filed June 2004 — 22 years. Last activity November 2023 was a triage note with no resolution path offered. The
wait_variablebehavior at interpreter shutdown is a known Tkinter/Tcl lifecycle edge case with no actionable fix proposed. Suggested close reason:not planned. -
Prefix search is filesystem-centric #41525 (opened Feb 4, 2005) — Prefix search is filesystem-centric
Abstract enhancement filed February 2005 requesting a reworked prefix-search mechanism. Last activity April 2022 (migration note only). No patch, no PR, no concrete proposal in 21 years. Suggested close reason:
not planned. -
Export more libreadline API functions #41788 (opened Apr 1, 2005) — Export more libreadline API functions
Filed April 2005 to expose additional
libreadlineAPI surface. Last activity April 2022 (migration note). The dependent issue (bpo-23067) was also closed without action. No PR in 21 years. Suggested close reason:not planned. -
Simplying Tkinter's event loop #42255 (opened Aug 4, 2005) — Simplifying Tkinter's event loop
Architectural proposal filed August 2005 to refactor Tkinter's event loop. 21 years old, only 9 comments, last activity November 2023 (triage note). No patch, no PR, and no consensus that this refactor is desirable. Suggested close reason:
not planned. -
Tkdnd mouse cursor handling patch #43699 (opened Jul 20, 2006) — Tkdnd mouse cursor handling patch
Filed July 2006, only 3 comments total, last activity November 2023 (triage note). The patch targets an obscure Tkinter drag-and-drop cursor API. No PR, no community interest in nearly two decades. Suggested close reason:
not planned. -
Added support for custom readline functions #44781 (opened Mar 28, 2007) — Added support for custom readline functions
Filed March 2007 to add a hook for custom readline completion functions. Last activity April 2022 (migration note only). No PR in 19 years. The
readlinemodule has very limited maintenance bandwidth and this niche hook has no champions. Suggested close reason:not planned. -
POSIX capabilities support #44335 (opened Dec 13, 2006) — POSIX capabilities support
Filed December 2006 to add a
capabilitiesmodule for Linux POSIX capability bits. Has an open PR (WIP: bpo-1615158 : POSIX capabilities support (In a separate module) #15815) but it has been stalled since 2022 with no reviewer activity. This is a Linux-only feature with limited stdlib precedent; 19 years of inaction suggests it belongs as a third-party package. Suggested close reason:not planned. -
SocketServer.DatagramRequestHandler with empty response #45276 (opened Aug 4, 2007) — SocketServer.DatagramRequestHandler with empty response
Filed August 2007.
SocketServerwas renamed tosocketserverin Python 3, and the underlying behavior described has not been addressed in 19 years. Last activity September 2025 was a triage note. No PR. Suggested close reason:not planned. -
mail message parsing glitch #44196 (opened Nov 5, 2006) — mail message parsing glitch
Filed November 2006. The
emailpackage was comprehensively overhauled in Python 3.3 with a new policy-based API. The original issue's parsing context (old-styleemailAPI) is largely irrelevant today. Last activity November 2023 (triage note only), no PR. Suggested close reason:not planned. -
filecmp.cmp's "shallow" option #42172 (opened Jul 8, 2005) — filecmp.cmp's "shallow" option documentation
Filed July 2005 requesting clarification of the
shallowparameter behavior infilecmp.cmp. Purely a documentation issue with a patch attached in 2014, but no PR was ever opened on GitHub. Last activity August 2023. 21 years is long enough to consider this stale. Suggested close reason:not planned.
Note: Issues #42550 (httplib 100-continue, has active PR #14880) and #43702 (email CTE behavior, still being triaged against Python 3.11) were reviewed but intentionally excluded as they may still have an actionable path to resolution.
Activity
[-]Recommend closing resolved or non-actionable issues (oldest-first batch)[/-][+]Recommend closing resolved or non-actionable issues (oldest-first batch, 2004–2007)[/+]terryjreedy commentedon May 29, 2026
Thank you for the work. I asked on our core dev discord triage channel about how we handle this and anything similar.
serhiy-storchaka commentedon May 29, 2026
Please don't close
reandtkinterissues. They all are at the bottom of my backlog.The
emailpackage has many issues, and we should only close old issues until we sure that they are fixed. For example, whileconvert()was removed, the replacement was not ideal, and there are many remnants that mix the old and the new approach. It should be carefully reviewed and rewritten.imaplibalso has many design issues. I worked on the mentioned issue, but have not finished the solution yet, it is hard, and requires many other changes to be done.urllib.parsestill very far from ideal. I planned several steps, with adding new options, deprecations, and breaking compatibility when time comes. It will take years until we can say that the main issues are fixed.Cookies support is in terrible state. I closed some old issues few weeks ago, but these modules require redesign, I have not even started it. I need the issues to be open to see the whole image.
Transparent gzip compression and redirection are nice to have features. If anybody provide PRs, this will be appreciated. But this an be not easy.
In general, I am against bulk-closing issues. They should be considered on a case-by-case basis.
citadelgrad commentedon May 29, 2026
@serhiy-storchaka Keeping them open indefinitely doesn't fix the problem; it just adds to the cognitive load of backlog triage and obscures active, high-priority issues. Closing them doesn't erase anything all info is perfectly preserved.
This is a step toward a cleaner, more manageable tracker.
terryjreedy commentedon May 30, 2026
Closing may not erase an issue, but it does mostly hide it by erasing 'someone still wants to consider this'. The default display for projects is all open issues, possible sorted by some topic. I have IDLE issues sorted by 'Topic', which has 22 ordered options. The GH search page allows selection by various criteria, but in particular by open/closed.
devdanzin commentedon May 30, 2026
I like the idea of bulk-analyzing old issues, but only if:
I'm generally against closing due to staleness: closing because something got fixed, or no further information was offered by the reporter, or some deprecation making the change unlikely, etc., all make sense to me. Closing because no one took a look at the issue in a long time feels less than ideal.
Here's some issue-by-issue feedback, if you're using some sort of agent/LLM for the analysis I'd like you to give it this feedback to see whether the conclusions change.
I still see
socket.gethostbyname()inLib/urllib/request.py, are those uses OK or should they also be converted togetaddrinfo? If they should, the issue should be kept open.Seems like a reasonable feature request to me, the fact that nobody else has asked for it (the other related issue, #38478, is the same report) makes closing an option, but I'd vote to keep it open. Sounds like a good issue for first time contributors.
A core developer has asked for cookie issues to remain open.
A core developer has asked for URL parsing issues to remain open.
Looks like a reasonable feature request to me, and has had some effort poured into it, as well as positive evaluations. I'd vote to keep it open.
A core developer has asked for
reissues to remain open.A core developer has asked for
reissues to remain open (though this one does seem closable to me).A core developer has asked for
emailissues to remain open.Reportedly still an issue, coming up with a reproducer would be valuable. I vote to keep open.
A core developer has asked for
imaplibissues to remain open.A core developer has asked for
tkinterissues to remain open (but this one does look closable to me).Looks like a reasonable report, but needs some effort to become actionable. Vote to keep open.
The mentioned missing functions are still missing in main, vote to keep open.
A core developer has asked for
tkinterissues to remain open.A core developer has asked for
tkinterissues to remain open.IMO subsumed by #41788, vote to close.
A lot of effort seems necessary to revive this one, a major new feature as proposed requires a DPO discussion these days. Vote to close, unless someone wants to champion the feature and discussion.
I've suggested closing this one before, vote for closing.
A core developer has asked for
emailissues to remain open.Actually not a purely documentation issue, has patch for tests, behavior and documentation. Vote to keep open.
So I agree with closing 3 out of 20. That shouldn't discourage bulk analysis IMO, just inform it so that future review align more closely with what is wanted from core developers and triagers.
If no one objects, I'm going to close #45276 and #44781 later tonight.
soreavis commentedon Jul 19, 2026
Since this list is still open, here's a roll-up of a full pass over all 22 issues, verified against main as of today (source reads plus a fresh build). Transparency first: the recent evidence comments on several of these issues are mine — I put the details (reproducers, source cites, and for #44672 a patch) on each issue where there was something concrete to add, and this comment is just the index tying them together.
Verified fixed at main — closable as completed:
_rset()+SSLErrorbeing anOSErrorsubclass); TLS reproducer on the issue.Message-id:case round-trips idempotently under both policies since Parsing adds whitespace to the front of long headers #124452 (Nov 2024); reproducer on the issue.Superseded or already covered — closable:
\p{...}landed in June via gh-95555: Support Unicode property escapes \p{...} in regular expressions #151969 underreshould support\p{...}character properties #95555; the request lives there now.rl_add_defuncallback ask plusrl_on_new_line; the two were linked in 2016); nothing landed at main.Close already suggested above, nothing new since:
Keep open — actively being worked:
Keep open — held for maintainer plans in those areas:
$Port), but cookies are held for the redesign.convert(), removed in 2007; the area is held for the email charset rework.Modules/_sre), declined before as too hard; free-threaded builds change the calculus anyway.Keep open — real work:
FTPHandler.ftp_openstill pre-resolves IPv4-only ahead of an IPv6-capableftplib; fix is dropping that line — the patch is up as gh-44672: Stop pre-resolving the FTP host in urllib.request #154192.email.encodersstill emit a duplicateContent-Transfer-Encodingheader; one-line fix per encoder (details on the issue).http_error_301aliases the 302 handler); agree it fits a first-time contributor — the more so since the design was already settled in the 2010 review (off-by-default, confined to the redirect handler, cache chained redirects: bpo msg97282/msg97264, accepted in msg97293 but never implemented). One caution for whoever picks it up: the surviving attachment implements the shape that review rejected (cache state onOpenerDirectorthrough a module-level global), so better to start fresh.Modules/readline.c; becomes the canonical readline issue if Added support for custom readline functions #44781 closes into it.Net: 7 more look closable now (#43311, #44196, #43715, #44781, #43453, #42172, #41525), 2 match the closes already suggested (#45276, #44335), and the keep-opens each have a concrete, non-staleness reason above. The per-issue evidence comments are on #43311, #44196, #43715, #45276, #44781, #44672, #43702, #43521, #43453, #42172, and #41525.
terryjreedy commentedon Jul 21, 2026
@serhiy-storchaka [EDITED] A new reviewer has sorted the suggested closings into 7 likely closeable (either completed or superceded/duplicate) and the remainder to be left open. If you (and Claude) were to review the 'closable' items and quickly decide either way (leave open unless close is obviously correct), this omnibus issue could be closed, as there is no reason to have open a list of random issues that are and should remain open.
citadelgrad commentedon Jul 22, 2026
Just trying to help clear the 5k+ backlog of issues.
urllib2 is part of std lib of python2 which no longer receives updates. So why are we keeping the 45217 issue open?
Make it make sense?!
soreavis commentedon Jul 22, 2026
@citadelgrad the name is what's dated — urllib2 became urllib.request in Python 3. The redirect handler is live at
Lib/urllib/request.py:722and still doesn't cache, so the 2007 request applies to current code.That's why the #45217 issue should stay open.
serhiy-storchaka commentedon Jul 22, 2026
Even if the issue is no longer reproduced with the Python 2 code, it can mean that the reproducer code should be updated to Python 3. I reopened such prematurely closed issues in past.