Expanding the Jupyter Trove Classifier on PyPI

The trove_classifiers package powers the PyPI browsing UI. While these don’t do anything to a pip install solve (a sensible install_requires, or even extras_require are better), and are generally hard to get at programatically (there’s no API), can be straight up incorrect, etc… but are still useful for humans, and search engine robots, for finding things.

Thanks to @carrreau, we presently already represent:

Framework :: IPython
Framework :: Jupyter

On a deeper gaze into the existing ones, it looks like there is precedent for describing deeper parts of a stack and major X (or even minor X.y) versions.

Over on jupyterlab#9538 we’ve been talking about moving forward with at least getting some versioned sub-classifiers for JupyterLab, but we may as well go all-in, and do it for everything we can think of:

Framework :: Jupyter :: Kernels
Framework :: Jupyter :: Widgets
Framework :: Jupyter :: nbconvert
Framework :: Jupyter :: nbconvert :: 5
Framework :: Jupyter :: nbconvert :: 6
Framework :: Jupyter :: nbconvert :: Templates
Framework :: Jupyter :: nbconvert :: Preprocessors
Framework :: Jupyter :: nbconvert :: Postprocessors
Framework :: Jupyter :: nbconvert :: Exporters
Framework :: Jupyter :: nbconvert :: Filters
Framework :: Jupyter :: JupyterHub
Framework :: Jupyter :: JupyterHub :: 1
Framework :: Jupyter :: JupyterHub :: Services
Framework :: Jupyter :: JupyterHub :: Authenticators
Framework :: Jupyter :: JupyterHub :: Spawners
Framework :: Jupyter :: JupyterLab :: 1
Framework :: Jupyter :: JupyterLab :: 2
Framework :: Jupyter :: JupyterLab :: 3
Framework :: Jupyter :: JupyterLab :: Themes
Framework :: Jupyter :: JupyterLab :: Extensions
Framework :: Jupyter :: JupyterLab :: Renderers
Framework :: Jupyter :: JupyterLab :: Applications
Framework :: Jupyter :: Server :: Extension

The requirement is generally that there are “enough” of these to make it worth it, but I’d wager there’s enough first party ones of these to warrant all of them.

5 Likes

Corollary: I guess this is probably a JEP?

It looks good to me. Not sure if we need to add versions for old JupyterLab releases. I think it will be easier to get a smaller set of classifiers in as we need to show at least a few packages with maintainers willing to adopt those classifiers so unless there are any objections to the overall structure I think we could start by requesting one for JupyterLab (and extensions) and see how the process goes and then add others (giving more time for comments)?

1 Like

Agreed, it’s a small nit, but we’re still putting out security releases, and folk definitely still have 1.x deployed… as long as it’s not combinatorial, e.g. 1 : extensions, 3 : extensions.

i’ll do a “preflight” PR to the lab docs so we can actually comment on them line-by-line… and then have docs ready!

1 Like

Here is said PR: add trove classifer docs, usage by bollwyvl · Pull Request #10731 · jupyterlab/jupyterlab · GitHub

1 Like

… aaand the Real Deal PR is up: Add jupyterlab trove classifiers by bollwyvl · Pull Request #72 · pypa/trove-classifiers · GitHub

1 Like