Skip to content

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 via versioningit
      • Use semantic versioning
        • Breaking changes pre-v1 should only happen on v0.X.0 releases
    • 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 the Typing :: 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.

Clone this wiki locally