[Python-Dev] Reorganize Python categories (Core, Library, ...)?
victor.stinner at gmail.com
Wed Oct 4 05:52:32 EDT 2017
Python uses a few categories to group bugs (on bugs.python.org) and
NEWS entries (in the Python changelog). List used by the blurb tool:
#.. section: Security
#.. section: Core and Builtins
#.. section: Library
#.. section: Documentation
#.. section: Tests
#.. section: Build
#.. section: Windows
#.. section: macOS
#.. section: IDLE
#.. section: Tools/Demos
#.. section: C API
My problem is that almost all changes go into "Library" category. When
I read long changelogs, it's sometimes hard to identify quickly the
context (ex: impacted modules) of a change.
It's also hard to find open bugs of a specific module on
bugs.python.org, since almost all bugs are in the very generic
"Library" category. Using full text returns "false positives".
I would prefer to see more specific categories like:
* Buildbots: only issues specific to buildbots
* Networking: socket, asyncio, asyncore, asynchat modules
* Security: ssl module but also vulnerabilities in any other part of
CPython -- we already added a Security category in NEWS/blurb
* Parallelim: multiprocessing and concurrent.futures modules
It's hard to find categories generic enough to not only contain a
single item, but not contain too many items neither. Other ideas:
* XML: xml.doc, xml.etree, xml.parsers, xml.sax modules
* Import machinery: imp and importlib modules
* Typing: abc and typing modules
The best would be to have a mapping of a module name into a category,
and make sure that all modules have a category. We might try to count
the number of commits and NEWS entries of the last 12 months to decide
if a category has the correct size.
I don't think that we need a distinct categoy for each module. We can
put many uncommon modules in a generic category.
By the way, we need maybe also a new "module name" field in the bug
tracker. But then comes the question of normalizing module names. For
example, should "email.message" be normalized to "email"? Maybe store
"email.message" but use "email" for search, display the module in the
issue title, etc.
More information about the Python-Dev