I Analyzed Every Open Issue in CPython. Here's What I Found.
What does it look like to read through 7,154 open issues and 42,089 comments on the world's most popular programming language?
It looks like 23 MB of raw discussion text. It looks like bug reports from January 2003 that are still open. It looks like one developer who has personally commented on 912 separate issues. It looks like a median first-response time of six minutes -- and 760 issues that have never received a single comment.
I pulled every open issue and every comment from python/cpython on GitHub, wrote scripts to fetch and analyze the data in parallel, and spent days sifting through what I found. This is a snapshot of what CPython's issue tracker tells us about the health, velocity, and pressure points of one of the most widely used programming languages in the world.
The numbers tell a complicated story. Not one of decline or crisis -- CPython is faster, more active, and more ambitious than ever. But the data also shows a project where the backlog is growing faster than it can be resolved, where a handful of people shoulder a disproportionate share of the maintenance burden, and where bugs from two decades ago sit quietly next to bleeding-edge free-threading crashes.
Here's what the data shows.
How I Did This
All data was collected on February 11, 2026 via the GitHub REST API. The dataset includes:
- 7,154 open issues (pull requests excluded) with titles, bodies (up to 3,000 characters), labels, and metadata
- 42,089 comments across those issues, fetched in parallel using 15 concurrent workers with automatic rate-limit handling
- Issue bodies and comment text totaling 23 MB of discussion
Analysis was performed using keyword matching, label aggregation, temporal analysis, and pattern detection across all text -- titles, bodies, and comments. No machine-learning classifiers; just careful regex and counting. The scripts, raw data descriptions, and methodology are available in the repository so you can verify and extend the analysis.
One caveat: issues migrated from the old bugs.python.org tracker (pre-2022) may have incomplete comment histories. The oldest issues in particular should be interpreted with that context.
The Big Picture
Let's start with the broadest possible view.
| Metric | Value |
| Total open issues | 7,154 |
| Total comments | 42,089 |
| Issues with at least one comment | 6,394 (89%) |
| Issues with zero comments | 760 (11%) |
| Average comments per issue | 5.9 |
| Median comments per issue | 4 |
| Most comments on a single issue | 123 |
| Average comment length | 546 characters |
| Issues with workarounds but no fix | 649 |
| Issues someone suggested closing | 349 |
Nearly half of all open issues (44.1%) are bugs. Over a third (35.7%) are feature requests. The remaining sliver includes 135 open crash reports, 79 security issues, and 1,232 issues that haven't been categorized at all -- a triage backlog in its own right.
| Type | Count | % |
| Bug | 3,155 | 44.1% |
| Feature request | 2,552 | 35.7% |
| Unlabeled | 1,232 | 17.2% |
| Crash | 135 | 1.9% |
| Security | 79 | 1.1% |
| Refactor | 30 | 0.4% |
The backlog isn't static. It's growing, and it's accelerating.
| Period | Issues | |
| 2003-2009 | 179 | ██ |
| 2010-2014 | 916 | ████████ |
| 2015-2019 | 1,621 | ██████████████ |
| 2020-2023 | 2,340 | ████████████████████ |
| 2024 | 867 | ████████ |
| 2025 | 1,087 | ██████████ (highest year) |
| 2026 | 144 | █ (6 weeks in) |
In 2015, CPython accumulated roughly 290 still-open issues per year. By 2020, that had nearly doubled to 530. In 2025, it hit 1,087 -- the highest single year ever. If you project the 2026 pace (144 issues in 6 weeks), the project is on track to exceed that record.
This doesn't mean CPython is falling apart. It means development velocity is increasing -- more features, more platforms, more contributors filing issues -- but resolution capacity isn't keeping pace. The backlog is a river that's widening faster than anyone can build bridges across it.
Where the Bugs Are
The standard library dominates everything. With 2,997 issues carrying a stdlib label, it accounts for 42% of all open issues. This shouldn't be surprising -- the stdlib is enormous, spanning everything from email parsing to GUI toolkits to multiprocessing -- but the concentration is striking.
| Component | Issues | % |
| Standard library | 2,997 | 41.9% |
| Documentation | 1,104 | 15.4% |
| Interpreter core | 947 | 13.2% |
| Extension modules | 449 | 6.3% |
| Tests | 359 | 5.0% |
| Build system | 313 | 4.4% |
| Performance | 278 | 3.9% |
Within the stdlib, three modules stand out as pain magnets:
- IDLE: 289 issues. Python's built-in IDE is showing its age, with bugs ranging from clipboard handling (#84632) to dedenting with Shift+Tab (#38066 -- open since February 2003).
- Multiprocessing: 279 issues. Deadlocks (#85880), race conditions on stdout flushing (#91776), and
pool.terminate()hanging (#87129) are among the confirmed still-active reports. - Email: 253 issues. The
emailmodule has been accumulating bugs since the early 2000s. Inconsistent newline handling (#40414) has been open since June 2004. Invalid RFC2047 encodings (#142424) are still being filed in 2025.
Windows: The #1 Platform Pain
Platform-specific issues tell a clear story:
| Platform | Issues |
| Windows | 486 |
| macOS | 120 |
| Unsupported platforms | 33 |
| Android | 11 |
| Linux | 10 |
| FreeBSD | 9 |
| WASI / iOS / Emscripten | 6 each |
Windows has four times more platform-specific issues than macOS. Issues range from webbrowser.open being incomplete (#52479, 55 comments), to tempfile misinterpreting access-denied errors (#66305, 53 comments), to the long-requested python3 executable for Windows (#99185, 48 comments).
The emerging platforms are worth watching. Android (11 issues), iOS (6), WASI (6), and Emscripten (6) have small counts, but they represent CPython's expanding platform ambitions -- and each new platform brings its own class of bugs. Five years ago, these platforms had zero CPython issues. Their presence in the tracker at all signals a fundamental expansion of what CPython is trying to be: not just a server-side and scripting language, but a runtime that works everywhere, from iPhones to WebAssembly.
How Fast Does CPython Respond?
This is where the data gets genuinely impressive.
| Metric | Value |
| Median time to first comment | 6 minutes |
| Average time to first comment | 467 hours (~19 days) |
| 90th percentile | 121 hours (~5 days) |
Yes, the median first response time is six minutes. That's not a typo.
| Response window | Issues | % |
| Under 1 hour | 3,132 | 64.0% |
| 1-24 hours | 988 | 20.2% |
| 1-7 days | 325 | 6.6% |
| 1-4 weeks | 142 | 2.9% |
| 1-3 months | 98 | 2.0% |
| 3+ months | 210 | 4.3% |
64% of issues receive their first comment within one hour. 84% get a response within a day. This is exceptional for an open-source project of this scale and reflects a combination of active triagers, bots, and core developers who file issues and immediately begin commenting on them.
But that average -- 467 hours -- tells a different story. It's skewed by a long tail of neglected issues. 210 issues waited over three months for any response. And then there are the 760 issues -- 10.6% of the total -- that have never received a single comment.
The 760 Ghost Issues
The oldest uncommented issues date to the tracker migration from bugs.python.org:
| Issue | Date | Title |
| #37883 | 2003-01-31 | test_resource fails when file size is limited |
| #38066 | 2003-02-27 | IDLE: Dedenting with Shift+Tab |
| #38464 | 2003-05-07 | Tkinter nametowidget with cloned menu widgets |
| #39128 | 2003-08-26 | email.Message param parsing problem II |
| #39936 | 2004-02-13 | pyconfig.h not placed in --includedir |
Some of these may have had comments on the old tracker that didn't migrate. But the newer uncommented issues represent a genuine gap: someone took the time to report a problem, and nobody responded. That's the kind of experience that discourages potential contributors. A first-time bug reporter who gets no acknowledgment within a week may never file a second issue. At scale, 760 unanswered issues represent hundreds of potentially lost community members.
The comment distribution overall follows a predictable pattern:
| Bucket | Issues | % |
| 0 comments | 760 | 10.6% |
| 1-2 comments | 1,925 | 26.9% |
| 3-5 comments | 1,928 | 26.9% |
| 6-10 comments | 1,435 | 20.1% |
| 11-20 comments | 816 | 11.4% |
| 21-50 comments | 258 | 3.6% |
| 50+ comments | 32 | 0.4% |
The bulk of issues (54%) have 1-5 comments -- enough for a report and brief discussion but often not resolution. 328 issues have 20+ comments, typically indicating contentious decisions or complex debugging. Only 32 issues have cracked 50 comments, and those are the marathon debates we'll get to shortly.
Who Keeps CPython Running?
Core developers write 34.8% of all comments -- 14,636 out of 42,089. That means roughly one in three comments on CPython issues comes from someone with commit access. The other 65% comes from the broader community: users reporting bugs, contributors offering patches, and bystanders weighing in on design debates.
But within that core group, the distribution is extremely concentrated.
The Top 15
| Developer | Comments | Issues touched | Known focus |
| serhiy-storchaka | 1,784 | 912 | stdlib, interpreter |
| terryjreedy | 1,615 | 708 | IDLE, docs, triage |
| vstinner | 1,223 | 473 | C API, performance, security |
| picnixz | 981 | 437 | various |
| bitdancer | 816 | 388 | email module |
| zooba | 722 | 295 | Windows, build |
| ncoghlan | 665 | 237 | packaging, import |
| pitrou | 587 | 285 | IO, networking |
| eryksun | 548 | 276 | Windows internals |
| vadmium | 544 | 299 | various |
| rhettinger | 492 | 283 | collections, itertools |
| gvanrossum | 470 | 176 | language design |
| encukou | 407 | 212 | C API |
| StanFromIreland | 378 | 258 | triage |
| gpshead | 371 | 196 | security, stdlib |
Serhiy Storchaka has commented on 912 separate issues -- nearly 13% of every open issue in the tracker. Terry Reedy has engaged with 708. Victor Stinner with 473. These three people alone have written 4,622 comments across 2,093 issues.
Guido van Rossum, Python's creator, remains active with 470 comments across 176 issues. He's the 12th most active commenter on open issues, still weighing in on language design and edge cases decades after stepping down as BDFL.
The Bus Factor
The top 5 commenters have written 6,418 comments -- 15% of all discussion on open CPython issues. The top 10 account for 9,699 comments (23%). This is a bus factor problem. If Serhiy Storchaka took a sabbatical, 912 issues would lose their most engaged reviewer. If Terry Reedy stepped back from IDLE, 289 IDLE issues would lose their primary maintainer.
The top issue reporters tell a related story. The people filing the most issues are almost exclusively core developers:
| Reporter | Issues filed |
| serhiy-storchaka | 146 |
| terryjreedy | 132 |
| ericsnowcurrently | 96 |
| ncoghlan | 83 |
| markshannon | 77 |
This means much of the backlog is self-identified technical debt -- problems the core team knows about but hasn't had time to fix. It's not primarily a flood of external user complaints. The people closest to the code are the ones documenting what needs work. In a sense, CPython's large issue count is a sign of self-awareness: the developers are rigorous about tracking problems, even when they know it will be months or years before anyone gets to them. A less disciplined project might just not file the issue.
What People Are Saying
Beyond who's commenting, what are they actually saying? Pattern analysis across all 42,089 comments reveals the texture of CPython's discussions:
| Pattern | Issues | % |
| References a PR or patch | 1,969 | 27.5% |
| Disagrees or pushes back | 1,674 | 23.4% |
| Discusses documentation | 1,507 | 21.1% |
| Agrees or supports | 1,359 | 19.0% |
| Mentions specific versions | 1,300 | 18.2% |
| Raises performance concerns | 787 | 11.0% |
| Posts a workaround | 649 | 9.1% |
| Flags as possible duplicate | 556 | 7.8% |
| Discusses deprecation | 464 | 6.5% |
| Raises backwards-compat concerns | 455 | 6.4% |
| Reports crash or segfault | 414 | 5.8% |
| Raises security concerns | 397 | 5.5% |
| Confirms reproduction | 383 | 5.4% |
| Suggests closing the issue | 349 | 4.9% |
| Reports a regression | 255 | 3.6% |
| Says issue is still relevant | 191 | 2.7% |
| Cannot reproduce | 162 | 2.3% |
A few things jump out.
27.5% of issues have had someone attempt a fix. Nearly 2,000 issues have at least one PR or patch referenced in the comments. That's a healthy sign -- but it also means 72.5% of open issues have no associated code contribution at all.
Disagreement outweighs agreement: 23.4% vs 19.0%. More issues contain pushback than support. This isn't necessarily bad -- healthy technical debate is how good software gets made -- but it suggests that decision friction is a real factor in why issues stay open. Some debates never reach consensus and nobody has the authority (or willingness) to make a final call.
649 issues have workarounds but no fix. That's 9.1% of all open issues where someone has said, in effect, "here's how to route around this bug." These are confirmed real-world pain points where users are living with broken behavior.
349 issues have close suggestions. The community itself thinks nearly 5% of the backlog should be shut down. A dedicated triage sprint targeting these could meaningfully shrink the issue count.
Reproduction gap: 5.4% confirmed vs 2.3% not reproduced. Most bugs lack any reproduction confirmation one way or the other, making it hard for maintainers to prioritize. Of the 3,155 open bugs, only 383 have explicit "I can reproduce this" confirmation in the comments, and only 162 have "cannot reproduce." That leaves roughly 83% of bugs in a limbo where nobody has publicly confirmed or denied the report. For maintainers trying to decide where to spend their limited time, this absence of signal is itself a problem.
255 issues report regressions. These are things that used to work and now don't -- arguably the highest-priority class of bug. Some are recent (3.14 regressions generating active discussion), but others have been flagged as regressions for years without being fixed.
The Hottest Debates
What are people arguing about right now? Here are the most actively discussed issues since January 2025:
| Issue | 2025+ comments | Total | Title |
| #126835 | 121 | 122 | Move const folding to the peephole optimizer |
| #138946 | 53 | 53 | list.sort enhancement: Adaptivity for binarysort |
| #130931 | 43 | 43 | Cython cannot use "pycore_frame.h" in 3.14a4 |
| #142516 | 40 | 40 | Memory leak in ssl library: Python 3.14 GC issue |
| #141004 | 40 | 40 | Document the entire C API |
| #91349 | 39 | 57 | Use zlib-ng rather than mainline stale zlib |
| #140036 | 38 | 38 | Python Decimal can hang in floor division |
| #141081 | 37 | 37 | Add .gitignore to each __pycache__ folder |
| #132413 | 37 | 37 | SIGSEGV in datetime.timedelta |
The patterns in the 2025 hot issues reveal CPython's current priorities:
Compiler and optimizer work dominates. #126835 (moving const folding to the peephole optimizer) is the most active issue of 2025 with 122 comments from just 5 participants -- a deep, intense technical discussion. #131798 (better uop coverage in the JIT optimizer) reflects the push to make Python faster.
3.14 regressions are generating urgent traffic. A memory leak in the SSL library (#142516), a SIGSEGV in datetime.timedelta (#132413), slot dataclasses leaking (#135228), and stack overflow detection conflicts with C++ Boost (#139653) are all active regressions being debugged.
Infrastructure modernization questions are drawing community interest. Should CPython use zlib-ng instead of zlib (#91349, running since 2022 with 57 comments)? Should vendored modules be moved to a vendor directory (#129222)? Should every __pycache__ folder get a .gitignore (#141081)?
The All-Time Most Debated
The longest-running discussions are a different category -- often API design disagreements where the community is split:
| Issue | Comments | Participants | Title |
| #78125 | 123 | 29 | Deprecate and remove code execution in pth files |
| #126835 | 122 | 5 | Move const folding to the peephole optimizer |
| #53580 | 87 | 28 | argparse doesn't accept options starting with dash |
| #59648 | 73 | 24 | datetime: no support for nanoseconds |
| #51067 | 70 | 24 | remove/delete method for zipfile objects |
| #52145 | 65 | 21 | Support parametrized tests in unittest |
There's a telling contrast here. Broad debates (many participants) tend to be API design issues: .pth file security (29 people), argparse dash handling (28 people), datetime nanosecond support (24 people). Deep debates (many comments, few participants) tend to be implementation details: const folding optimization (122 comments from 5 people).
The .pth file discussion (#78125) is perhaps the most emblematic. 123 comments from 29 participants, spanning years, about whether Python should allow arbitrary code execution in .pth files at interpreter startup. It touches on security, backwards compatibility, packaging workflows, and the fundamental question of how much the language should trust its own ecosystem. There's no easy answer, which is why the issue is still open.
The argparse issue (#53580) has been open for over a decade with 87 comments from 28 participants. The problem is simple to describe -- argparse rejects options that take arguments beginning with a dash, a regression from the older optparse module. The fix is not simple, because changing the parser's behavior would break existing code that relies on the current (broken) behavior. It's a perfect example of how backwards compatibility concerns can freeze even obvious bugs in place.
Then there's datetime nanosecond support (#59648). With 73 comments from 24 participants, this issue reflects a genuine gap: Python's datetime module is limited to microsecond precision in a world where nanosecond timestamps are increasingly common in databases, financial systems, and scientific computing. The discussion has run for years without resolution, partly because any change to datetime risks breaking the enormous ecosystem of code that depends on it.
The New Frontiers
Three major initiatives are reshaping CPython and creating new categories of issues:
Free-Threading (no-GIL)
- 99 issues mention free-threading in their discussions
- 71 issues carry the
topic-free-threadinglabel - Growing rapidly as Python 3.13+ ships with experimental free-threading support
The free-threading effort is exposing an entire class of bugs that were masked by the GIL. TSAN failures in PyO3 tests (#130421), Thread._handle breaking third-party code (#132578), and new race conditions in the interpreter are all symptoms of removing a lock that has protected CPython (and papered over thread-safety bugs) for 30 years.
Threading-related discussions already account for 13.4% of all issue comment text -- and this number is climbing. As free-threaded Python moves from experimental to default in future releases, expect this to become the dominant source of new issues.
JIT Compiler
- 58 issues carry the
topic-JITlabel - Active work on uop coverage (#131798), executor lifecycle (#139540), and integration with the optimizer
The JIT is still in early stages, but it's already generating complex debugging work. JIT executors not being properly freed (#139540), better uop coverage (#131798, 29 comments), and interactions with the peephole optimizer (#126835) are all active areas.
Subinterpreters
- 77 issues carry the
topic-subinterpreterslabel - Led by Eric Snow (96 issues filed, 291 comments), the most prolific reporter on subinterpreter work
Subinterpreters represent Python's answer to true parallelism without shared state. The issues here tend to be deep interpreter internals: crashes when importing modules in parallel (#90228, 60 comments), GIL state API compatibility (#59956, 57 comments), and custom environments in subinterpreters (#126977).
Together, these three initiatives account for over 200 labeled issues and are generating some of the most intense discussion in the tracker. They represent CPython's attempt to solve its three biggest historical limitations -- the GIL, interpreted performance, and true parallelism -- simultaneously. No other period in CPython's history has seen this many fundamental architectural changes happening in parallel.
The risk isn't that any one of these initiatives will fail. It's that their combined bug surface overwhelms the maintainers' capacity to debug and stabilize. Every new thread-safety bug in free-threading, every JIT executor lifecycle issue, every subinterpreter crash -- they all land in the same tracker, reviewed by many of the same people, competing for the same finite attention.
The Ancient Backlog
At the very bottom of the issue tracker, there are bugs from before Gmail existed.
| Issue | Date | Age | Title |
| #37883 | 2003-01-31 | 23 years | test_resource fails when file size is limited |
| #38066 | 2003-02-27 | 23 years | IDLE: Dedenting with Shift+Tab |
| #38464 | 2003-05-07 | 23 years | Tkinter nametowidget with cloned menu widgets |
| #39128 | 2003-08-26 | 22 years | email.Message param parsing problem II |
| #39936 | 2004-02-13 | 22 years | pyconfig.h not placed in --includedir |
| #40038 | 2004-03-16 | 22 years | imaplib: incorrect quoting in commands |
| #40414 | 2004-06-18 | 22 years | Inconsistent newline handling in email module |
| #40857 | 2004-09-02 | 21 years | PyThreadState_Next not thread safe |
179 issues from 2003-2009 are still open. They cluster around IDLE, Tkinter, and the email module -- subsystems that receive less active maintenance today. Some of these issues may no longer be relevant. Others may have been fixed incidentally over two decades of development. A few are probably still broken.
The ancient backlog tells us something important about open-source maintenance. These aren't critical bugs -- if they were, they'd have been fixed. They're the kind of edge cases and minor irritants that aren't important enough to prioritize but aren't wrong enough to close. They accumulate quietly, year after year, because no one has both the expertise and the motivation to either fix them or declare them won't-fix.
There's 916 issues from 2010-2014 still open. 1,621 from 2015-2019. The half-life of a CPython issue is long.
Some of these ancient issues are occasionally rediscovered. 191 issues have comments explicitly stating the problem is "still relevant" or "still happening" -- someone circled back months or years later to confirm the bug persists. _abc._abc_subclasscheck has poor performance and a suspected memory leak (#92810), confirmed still relevant in March 2025. Multiprocessing's Queue deadlock (#85880) was confirmed still active in 2023. Cross-module dataclass inheritance breaking get_type_hints (#89687) was confirmed in July 2025. These aren't theoretical problems -- they're bugs that people keep hitting, year after year.
The Velocity Problem
Comment activity on still-open issues tells the story of an accelerating project:
| Year | Comments | |
| 2010 | 755 | ███ |
| 2012 | 1,335 | ██████ |
| 2014 | 1,771 | ████████ |
| 2016 | 1,979 | █████████ |
| 2018 | 1,939 | █████████ |
| 2020 | 2,459 | ████████████ |
| 2022 | 3,064 | ███████████████ |
| 2024 | 4,692 | ███████████████████████ |
| 2025 | 7,243 | ████████████████████████████████████ |
Comment volume on open issues nearly doubled from 2024 to 2025: 4,692 to 7,243 (+54%). This isn't just people talking more -- it reflects more issues, more complex issues, and more active development on major features (free-threading, JIT, 3.14/3.15 release work).
The monthly data for 2025 shows sustained intensity:
| Month | Comments |
| January | 485 |
| February | 610 |
| March | 676 |
| May | 634 |
| July | 577 |
| September | 694 |
| October | 817 |
| November | 648 |
October 2025 was the single busiest month in the tracker's history for open-issue discussion, with 817 comments. There's no quiet season anymore.
To put this in perspective: the entire year of 2010 saw 755 comments on issues that remain open today. October 2025 alone exceeded that. A single month in 2025 generated more discussion than an entire year did fifteen years ago. The project's communication footprint has grown by an order of magnitude, and the people reading and responding to all of it are largely the same group they were a decade ago -- just with more on their plates.
What This Means
The data paints a portrait of a project at an inflection point. Here's the synthesis:
CPython's development velocity has never been higher. The number of issues filed, comments written, and features being developed simultaneously (free-threading, JIT, subinterpreters, new platform support) is at an all-time high. Comment volume grew 54% year-over-year. 2025 saw the most new issues in any single year.
The backlog is growing faster than it's being resolved. 1,087 new issues remained open from 2025 alone. The total of 7,154 open issues will likely exceed 8,000 by end of 2026 at current rates. This isn't a sign of poor quality -- it's a sign that CPython's scope and ambition are outpacing its capacity to close the loop on everything.
Maintainers are stretched thin. The top 5 commenters write 15% of all discussion. Serhiy Storchaka alone touches 13% of all open issues. Terry Reedy is the primary voice on 708 issues. The project's institutional knowledge and review capacity is concentrated in a remarkably small number of people. The bus factor is real.
There are clear onboarding opportunities. 1,104 documentation issues. 116 issues labeled easy. 349 issues the community thinks should be closed. 760 issues with zero comments that need at minimum a triage response. New contributors don't need to fix compiler internals to make a meaningful impact.
The "boring" modules need love. IDLE (289 issues), multiprocessing (279 issues), and email (253 issues) are the quiet maintenance backlog. They're not as exciting as the JIT compiler, but they're used by millions of people and they're accumulating bugs faster than anyone is fixing them. 649 issues have workarounds posted -- real bugs that real users are routing around.
Free-threading will change everything. With 99 issues already mentioning it and threading discussions accounting for 13.4% of comment text, the removal of the GIL is creating an entirely new class of bugs. This will likely be the dominant theme of CPython development over the next several years. The 436 issues already tagged with threading concerns are just the beginning.
The version transition creates sustained pressure. Issues mention Python 3.8-3.10 most frequently (over 1,000 mentions each), reflecting bugs that span EOL versions people are still running. Meanwhile, 3.13 (394 labeled issues), 3.14 (270), and 3.15 (203) are actively accumulating new reports. CPython doesn't just maintain one version -- it maintains the entire trailing edge of a language used by millions.
None of this is a crisis. CPython remains one of the best-maintained open-source projects in the world. A six-minute median response time is extraordinary. 64% of issues getting a comment within an hour is extraordinary. The breadth and depth of technical discussion happening in these 42,089 comments reflects a healthy, rigorous community.
But the data suggests the project is approaching a point where the gap between what CPython is trying to do and the people available to do it becomes harder to bridge. The answer isn't to do less. It's to find ways to bring more people in, to triage more aggressively, and to be honest about what the backlog tells us.
The issues are all there, in the open, for anyone to read. 7,154 of them and counting. And every one of them is an invitation -- to fix a bug, clarify a doc, triage a report, or just confirm that yes, this problem still exists and someone cares about it.
Appendix: Data and Methodology
Repository
All scripts, analysis results, and methodology details are available at the project repository.
What Was Collected
| Data | Details |
| Issues | 7,154 open issues via gh api with pagination, PRs filtered out |
| Bodies | Truncated to 3,000 characters per issue |
| Comments | 42,089 comments fetched via 15-worker parallel fetcher with rate-limit handling |
| Comment bodies | Truncated to 2,000 characters each |
| Total text | 23 MB across all titles, bodies, and comments |
How It Was Analyzed
- Topic detection: Keyword and regex matching across titles, bodies, and comment text
- Sentiment patterns: Regex-based detection of agreement, disagreement, workarounds, reproduction attempts, and close suggestions
- Response time: Calculated from issue
created_atto first commentcreated_at - Core developer identification: Cross-referenced against the list of CPython core developers with commit access
- Temporal analysis: Comments and issues bucketed by year, month, and response-time windows
Limitations
- Issues migrated from bugs.python.org may have incomplete comment histories
- Comment body truncation at 2,000 characters may miss context in very long comments
- Keyword-based topic detection has inherent false-positive and false-negative rates
- "Core developer" classification is based on known handles and may miss some contributors
- The analysis is a snapshot from February 11, 2026; the tracker changes daily
Scripts
| Script | Purpose |
fetch_comments_fast.py | Parallel comment fetcher (15 workers, resumable, handles rate limits) |
analyze_with_comments.py | Full analysis including comment content, sentiment, and response times |
analyze_issues.py | Title + body analysis (labels, categories, trends) |
Data collected February 11, 2026. All issue numbers link to the CPython GitHub repository. Analysis and scripts available for verification and reuse.