We encourage pull requests. Please use the following guidelines:
- in general, follow these recommendations on writing good commit messages
- make sure your PRs are focused, and link where possible to existing issues
- follow the instructions on the PR template
Regardless of the change, however, the current status of CSL requires us to be fairly conservative. For issue reports, please follow the template instructions, and include all specified information. It's important for us to be able to quickly understand what you are requesting, how broad the need is, and what implementation options there are.
At this point, changes to the CSL RELAX NG schema consist of the following:
- Changes to csl-categories.rnc, csl-terms.rnc, csl-types.rnc, or csl-variables.rnc
- Adding new variables, item types, locators, or terms; these can usually be added to minor x.x.x version changes.
- Changes to csl.rnc
- These are often more significant and may have an impact on compatability, and so are typically reserved for major x.x version changes.
The data schemas are intended to mirror the rnc
files, and so follow similar conventions. Ideally when we add variables, we add to both at the same time.
The repository includes a pre-commit configuration file, and a pre-commit hook, which will run linters for changes on any rnc
, json
, or yaml
files.
To install them, do the following from your local repo:
pip install pre-commit
pre-commit install