Skip to content

Latest commit

 

History

History
50 lines (40 loc) · 2 KB

long_description.md

File metadata and controls

50 lines (40 loc) · 2 KB

Long Description

Goals

Provide a way to include the long description as shown by a package index (typically a README file). There also needs to be a way to determine/specify the encoding for proper rendering.

Comparison

Flit

Has a description-file field which takes a file path relative to pyproject.toml. The file is expected to have a .md, .txt, or .rst file extension to infer the encoding.

Setuptools

Supports either a file path or string in its long_description field. It also supports an explicit long_description_content_type field to specify the encoding.

Poetry

Has a readme field that takes a file path. File must end in either .md or .rst to infer the encoding.

Cargo

Has a readme field that takes a file path. The documentation does not specify what encodings are supported, but based on how the Rust community very much supports Markdown the suspicion is Cargo/crates.io simply assumes Markdown as it's designed to never fail rendering.

npm

Has a description field. There is no specification of the encoding.

Npm does automatically include a file named README with any file extension. The README file is what npm will render as the long description at npmjs.com. The documentation explicitly suggests using Markdown and naming the file README.md, suggesting the file extension is how one denotes whether the file is Markdown or not.

Conclusions

  • All of the tools support using a file (some implicitly, some with an explicit path)
  • All of the tools support Markdown
  • All the Python tools support Markdown or reStructuredText