Overview
JSON Schema is an evolving language, and the specification repository contains both the specification text and Pull Requests with suggested improvements and contributions.Types of Contributions
Editorial Contributions
Contributions that do not change the interpretation of the spec are encouraged and often merged quickly:- Improving legibility
- Fixing editorial errors
- Clearing up ambiguity
- Improving examples
Editorial contributions can be merged by a spec editor with minimal process.
Specification Changes
Contributions that meaningfully change the interpretation of the spec must follow the Specification Development Process.Submitting Issues
Issues should identify:- A problem, enhancement, or use case
- A proposed course of action for the draft
Support Channels
For questions and support (rather than issues), see the SUPPORT.md file.Creating Pull Requests
General Guidelines
Target the correct branch
Pull requests should generally be made to the
main branch.Exception: During a patch phase, target the patch branch (e.g., 2020-12-patch) instead.Reference related issues
If the pull request would solve a particular issue, reference the issue in the PR description.
What to Contribute
Editorial Suggestions
Improvements to clarity, grammar, and examples that don’t change behavior
Issue Resolutions
Pull requests that resolve open issues in the repository
Milestones
Milestones help organize the specification development work:- Each milestone estimates work for the next draft
- Named after the meta-schema draft number
- 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 expertise to create a PR
- Deferral to publish a draft sooner
The
draft-future milestone is for issues that should be addressed but have no specific timeline.Community Guidelines
Code of Conduct
All official channels follow the Code of Conduct, including:- Mailing list
- GitHub organization
- Slack server
Communication Channels
You can interact with the community through:Slack Workspace
Join the
#specification channel at json-schema.org/slack to:- Interact with community members
- Share new ideas
- Ask questions about specification development
GitHub Issues
Use the issues tracker for:
- Reporting problems
- Proposing enhancements
- Discussing specification changes
Architectural Decision Records (ADRs)
JSON Schema uses ADRs to document architectural decisions. When contributing features that require architectural decisions:- Use the ADR template from the
adr/template.mdfile - Follow the MADR format (More information at adr.github.io/madr)
- Include context, considered options, and decision rationale
ADRs are stored in the
adr/ directory and become part of the permanent record when features become stable.Getting Help
If you have questions about contributing:- Check the Specification Development Process documentation
- Review existing proposals for examples
- Ask in the
#specificationSlack channel - Reference the SUPPORT.md for additional resources