-
Notifications
You must be signed in to change notification settings - Fork 1
Project Metadata
John T. Wodder II edited this page Nov 19, 2023
·
7 revisions
-
Python projects should always have the following fields set:
- name
- version
- This is either read from the
__version__
variable in the project's initfile or set viaversioningit
- Use semantic versioning
- Breaking changes pre-v1 should only happen on
v0.X.0
releases
- Breaking changes pre-v1 should only happen on
- This is either read from the
- author (name & email)
- short description/summary
- license
- long description — Read from
README.rst
- keywords
- classifiers
- Don't bother with "Development Status" classifiers
- Include classifiers for all supported Python versions (up through the most recently released) and implementations
- If the project is Python 3-only, include the
Programming Language :: Python :: 3 :: Only
classifier - Include a classifier for the license
- If the project provides type annotations (i.e., has a
py.typed
file), include theTyping :: Typed
classifier
- project URLs
- Include a "Source Code" entry pointing to the GitHub repository
- Include a "Bug Tracker" entry pointing to the GitHub repository's issues page
- If the project has a Read the Docs site, include a "Documentation" entry pointing to it
-
requires-python
— Should be in the form>=3.X
-
Development, testing, and documentation requirements should not be included in the project's runtime requirements (not even under extras/optional dependencies), as they are not relevant to consumers of the final built project.