pypa / pypa/setuptools

[FR] Publish the pyproject.toml specification as a JSON schema

Open
#5,218 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement Needs Triage
Dominant language
Python
Stars
2.9k
Forks
1.4k
Avg merge
1d 1h
Merged PRs (30d)
1

Description

What's the problem this feature will solve?

Correctly implementing the pyproject.toml specification in a project with the help of tools such as Tombi.

(I am not affiliated with Tombi, but I emphatically endorse their VS Code extension.)

Describe the solution you'd like

Define the pyproject.toml specification as a JSON Schema.

Image

And publish it at PyPA schemas and/or other locations, such as JSON Schema Store, as appropriate.

Alternative Solutions

If I am interpreting things correctly, the folks at Tombi have created and published a JSON Schema. Through their tool and schema, I learned about the change to the project.license.file key. I originally came to https://github.com/pypa/setuptools/issues to ask PyPA to add the deprecated license classifier to the schema. (Cf. #4938) Due to the high quality of the schema, I incorrectly assumed that PyPA had made it.

(Again, I am not affiliated with @tombi-toml in any way, and I strongly encourage other people to consider using their tools.)

Additional context

toml is, of course, a specification. For better or for worse, the IT world tends to distribute precise specifications through JavaScript(!) Object Notation.

Why JSON Schema?

While JSON is probably the most popular format for exchanging data, JSON Schema is the vocabulary that enables JSON data consistency, validity, and interoperability at scale.

https://json-schema.org/

Code of Conduct
  • I agree to follow the PSF Code of Conduct

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the linked pyproject.toml specification, PyPA schemas page, and existing Tombi JSON Schema. Determine the schema's authoritative scope and publication location; the work is done when an agreed schema is published through the appropriate PyPA or JSON Schema Store location.

Written by the indexing model from the issue text.

Assessment

Tech stack
json, python
Domain
build-system, documentation
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.