Skip to main content

Welcome

Thanks for taking the time to contribute! JSON Schema is an evolving language. The repository contains the specification text as well as Pull Requests with suggested improvements and contributions.

Types of Contributions

Editorial Contributions

Contributions that do not change the interpretation of the spec but instead improve legibility are encouraged and are often merged by a spec editor with little process. These include:
  • Fixing editorial errors
  • Improving legibility
  • Clearing up ambiguity
  • Improving examples

Substantive Changes

Contributions that meaningfully change the interpretation of the spec must follow the Specification Development Process. Changes that would affect implementation behavior should typically be opened as an issue first.

Issues

Issues should identify:
  • A problem, enhancement, or use case
  • Some proposed course of action for the draft
For alternate support channels, see the SUPPORT.md.

Pull Requests

We welcome pull requests, both for editorial suggestions and to resolve open issues.
1

Reference Issues

If the pull request would solve a particular issue, reference the issue in the pull request description.
2

Target the Correct Branch

Generally, pull requests should be made to the main branch unless it is a patch update and we are in a patch phase. In that case there will be a branch named something like 2020-12-patch that the PR should target instead.
3

Wait for Review

Most PRs, including all PRs that impact implementation behavior, will be left open for a minimum of 14 days. Minor wording fixes may be merged more quickly once approved by a project member.

Pull Request Guidelines

  • Reference related issues in the PR description
  • Target the appropriate branch (main or patch branch)
  • Be prepared to wait at least 14 days for substantive changes
  • Editorial fixes may be merged more quickly

Milestones

Each milestone is an estimation of the work that will be done for the next draft. Milestones are typically named after the meta-schema draft number, and the open milestone with the lowest draft number is the current active project.

Milestone Management

Issues may be removed from a milestone due to:
  • Lack of consensus
  • Lack of anyone with the correct expertise to make a PR
  • The desire to publish a draft and defer remaining issues to the next draft
Numbered milestones other than the lowest-numbered one are used to tentatively organize future work, but may be completely reorganized once work on that draft actually begins. The draft-future milestone is for issues for which there is an agreement that they should be addressed, but no specific timeline.

Code of Conduct

All official channels including the mailing list, GitHub organization and Slack server, follow the Code of Conduct.

Getting Help

You can join the #specification channel in the Slack workspace to:
  • Interact with other community members involved in Specification development
  • Share new ideas
  • Ask questions

Community Support

For questions about using JSON Schema or support with implementations, see the SUPPORT.md file for alternate channels.

Build docs developers (and LLMs) love