|
| 1 | +# Contribution Guide |
| 2 | + |
| 3 | +This guide is intended for people who want to contribute to content of the Git repository. |
| 4 | + |
| 5 | +## Layout |
| 6 | + |
| 7 | +The repository is laid out as such: |
| 8 | + |
| 9 | +* `scripts/`: Python scripts to manipulate the crosswalk table |
| 10 | +* `properties_description.csv`: A CSV files with human-readable information about each CodeMeta property. |
| 11 | +* `crosswalks/*.csv`: Two-column CSV files, that map between CodeMeta's properties and platform-specific terms. |
| 12 | +* `crosswalk.csv`: An aggregated table of all CSV files mentionned above; intended to be the main resource for readers. |
| 13 | + |
| 14 | +## About pull requests |
| 15 | + |
| 16 | +Do not commit changes to `crosswalk.csv`, as these will very likely create conflicts with other pull requests, and make either these PRs or yours unmergeable. |
| 17 | + |
| 18 | +`crosswalk.csv` will be updated by repository maintainers when appropriate. |
| 19 | + |
| 20 | +## Editing an existing mapping |
| 21 | + |
| 22 | +Open the CSV file in `crosswalks/` that contains your mapping. |
| 23 | +You may change the second column (ie. what comes after the comma on each line) to match the terms of the platform your new mapping covers. |
| 24 | + |
| 25 | +Then, run `scripts/aggregate.py`. This will build the new `crosswalk.csv` using the updated version of your mapping; and raise an error if you made a mistake (such as editing the first column). |
| 26 | + |
| 27 | +You can now commit your changes and send a pull request. Don't forget to **exclude** `crosswalk.csv` from the commit. |
| 28 | + |
| 29 | +## Contributing a new mapping |
| 30 | + |
| 31 | +To add a new platform mapping to CodeMeta, you have to add a new CSV file to `crosswalks/`. The filename is free-form, but please to avoid non-ASCII characters. The name is not used to build the aggregated table. |
| 32 | + |
| 33 | +You may copy any other CSV file from `crosswalks/` to write yours; the refer to the "Editing an existing mapping" section. |
| 34 | + |
| 35 | +## Adding a new CodeMeta property |
| 36 | + |
| 37 | +To do so, you should first edit `properties_description.csv` and add a line with the appropriate cells there; and edit `codemeta.jsonld` as well. |
| 38 | + |
| 39 | +Then, add that line to each `crosswalks/*.csv` file, in the same position as in `properties_description.csv`. |
| 40 | + |
| 41 | +Then, run `scripts/aggregate.py`. This will build the new `crosswalk.csv` with the new property; and raise an error if you made a mistake (such as editing the first column). |
| 42 | + |
| 43 | +You may then create a commit and send a pull request. Don't forget to **exclude** `crosswalk.csv` from the commit. |
0 commit comments