Какие классы классификаторов Python я использую?
Список классификаторов Trove: http://pypi.python.org/pypi?:action=list_classifiers
Когда я создаю пакет PyPI, я не уверен, нужно ли включать "родителей" в кластеры, которые, очевидно, применяются к моему проекту.
Например, если я протестировал свой проект в Windows XP, то какое из следующих я должен включить:
'Operating System :: Microsoft',
'Operating System :: Microsoft :: Windows',
'Operating System :: Microsoft :: Windows :: Windows NT/2000',
Я тестировал только на Windows 7, а иногда и на Windows XP. Но ни один из них не является параметрами в списке классификаторов, поэтому я выбираю "NT/2000" как совпадение с совпадением, включая "родительские" классификаторы. Правильно ли это делать?
Аналогично, если мой проект проверен под Python 2.7, то я, очевидно, включаю классификатор:
'Programming Language :: Python :: 2.7',
Нужно ли также включать:
'Programming Language :: Python',
'Programming Language :: Python :: 2',
Первый - строгий "родительский", если исходный классификатор, поэтому включить его это, по-видимому, так же, как включать родительских "Windows" выше.
Обратите внимание, однако, что "Python:: 2" не является родителем классификатора "2.7" - это брат. В том числе было бы разумно, если бы оно предназначалось для указания того, что мой проект работает под некоторыми версиями Python 2.x, но не в том случае, если он предполагает, что мой проект работает под всеми релизами 2.x.
Ответы
Ответ 1
Технически вам не нужно включать родительские теги. Например, lxml перечисляет эти теги (но ни один из их родителей):
Topic :: Text Processing :: Markup :: HTML
Topic :: Text Processing :: Markup :: XML
И просматривается список пакетов, классифицированных Тема:: Обработка текста:: Разметка, lxml включен.
Является ли включение родительских тегов более ясным для пользователей, я не уверен.
Я бы взял Programming Language :: Python :: 2
для обозначения некоторых выпусков Python 2.x, а не для всех Python 2.x, и кажется, что многие проекты используют его так (например, lxml снова).
Что касается операционной системы, я бы использовал ее, чтобы определить, на что должен работать пакет, а не только те среды, которые вы смогли проверить. Поэтому я бы использовал только классификатор Windows для Windows-специфического инструмента, который не мог работать в других операционных системах. Он не является контрактом на поддержку.
Теги Windows и Windows NT/2000, вероятно, уже эквивалентны.