Thank you for your interest in contributing to the Global Type System (GTS) Specification! This document provides guidelines and information for contributors.
- Git for version control
- Python 3.8+ (optional, for running reference implementations)
# Clone the repository
git clone <repository-url>
cd gts-python
# Optional: Install Python dependencies for reference implementations
pip install jsonschemagts-python/
- README.md # Main specification document
- CONTRIBUTING.md # This file
- LICENSE # License information
- gts/ # Example schemas and instances
├── events/ # Event-related examples
│ ├── schemas/ # JSON Schema definitions
│ └── instances/ # JSON instance examples
└── ... # Other domain examples
git checkout -b feature/your-feature-nameUse descriptive branch names:
feature/add-event-examplesfix/schema-validation-errordocs/clarify-chaining-rulesspec/minor-version-compatibility
Follow the specification standards and patterns described below.
TODO
Follow a structured commit message format:
<type>(<module>): <description>
<type>: change category (see table below)<module>(optional): the area touched (e.g., spec, examples, schemas)<description>: concise, imperative summary
Accepted commit types:
| Type | Meaning |
|---|---|
| feat | New feature |
| fix | Bug fixes in schemas or examples |
| docs | Documentation updates |
| examples | Adding or updating example schemas/instances |
| test | Adding or modifying validation tests |
| style | Formatting changes (whitespace, JSON formatting, etc.) |
| chore | Misc tasks (tooling, scripts) |
| breaking | Backward incompatible specification changes |
Best practices:
- Keep the title concise (ideally <50 chars)
- Use imperative mood (e.g., "Fix bug", not "Fixed bug")
- Make commits atomic (one logical change per commit)
- Add details in the body when necessary (what/why, not how)
- For breaking changes, either use
spec!:or include aBREAKING CHANGE:footer