aboutsummaryrefslogtreecommitdiff

Contributing to gitinfo

Thank you for your interest in improving the .gitinfo specification!

Proposing Changes

For Minor Clarifications

  • Open an issue describing the ambiguity or unclear wording
  • Suggest specific text improvements
  • Reference relevant sections of the README

For New Fields

Before proposing a new field:

  1. Check existing issues to avoid duplicates
  2. Describe the use case — what problem does this field solve?
  3. Show compatibility — how does it interact with existing fields?
  4. Provide examples — include sample .gitinfo snippets

Open an issue with the following template:

## Proposed Field: `fieldName`

**Type:** string | array | object

**Description:** Brief description of the field's purpose.

**Use Case:** Why is this field needed? What problem does it solve?

**Example:**

```jsonc
{
  "fieldName": "example value",
}
```

Compatibility: How does this interact with existing fields?

### For Breaking Changes

Breaking changes require strong justification:

- Explain why the change cannot be made backward-compatible
- Propose a migration path for existing `.gitinfo` files
- Consider versioning implications

## Pull Requests

1. Fork the repository
2. Create a feature branch (`git checkout -b feature/new-field`)
3. Update both `README.md` and `gitinfo.schema.json`
4. Ensure the schema validates your examples
5. Submit a pull request with a clear description

## Style Guidelines

- Keep descriptions concise
- Use consistent terminology with existing documentation
- Follow JSONC conventions (trailing commas are allowed)
- Use SPDX identifiers for license references

## Questions?

Open an issue for discussion before investing significant effort in a proposal.