Skip to main content
  • Home
  • Development
  • Documentation
  • Donate
  • Operational login
  • Browse the archive

swh logo
SoftwareHeritage
Software
Heritage
Archive
Features
  • Search

  • Downloads

  • Save code now

  • Add forge now

  • Help

  • 97502db
  • /
  • CONTRIBUTING.md
Raw File Download

To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.

  • content
  • directory
content badge
swh:1:cnt:0c764c609d0feefc5eeb2160beecaf7b6fbb2d83
directory badge
swh:1:dir:97502dbc87a8359adde433c436344f566296eebd

This interface enables to generate software citations, provided that the root directory of browsed objects contains a citation.cff or codemeta.json file.
Select below a type of object currently browsed in order to generate citations for them.

  • content
  • directory
(requires biblatex-software package)
Generating citation ...
(requires biblatex-software package)
Generating citation ...
CONTRIBUTING.md
# Contribution Guide

This guide is intended for people who want to contribute to content of the Git repository.

## Layout

The repository is laid out as such:

* `scripts/`: Python scripts to manipulate the crosswalk table
* `properties_description.csv`: A CSV files with human-readable information about each CodeMeta property.
* `crosswalks/*.csv`: Two-column CSV files, that map between CodeMeta's properties and platform-specific terms.
* `crosswalk.csv`: An aggregated table of all CSV files mentionned above; intended to be the main resource for readers.

## About pull requests

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.

`crosswalk.csv` will be updated by repository maintainers when appropriate.

## Editing an existing mapping

Open the CSV file in `crosswalks/` that contains your mapping.
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.

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).

You can now commit your changes and send a pull request. Don't forget to **exclude** `crosswalk.csv` from the commit.

## Contributing a new mapping

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.

You may copy any other CSV file from `crosswalks/` to write yours; the refer to the "Editing an existing mapping" section.

## Adding a new CodeMeta property

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.

Then, add that line to each `crosswalks/*.csv` file, in the same position as in `properties_description.csv`.

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).

You may then create a commit and send a pull request. Don't forget to **exclude** `crosswalk.csv` from the commit.

back to top

Software Heritage — Copyright (C) 2015–2026, The Software Heritage developers. License: GNU AGPLv3+.
The source code of Software Heritage itself is available on our development forge.
The source code files archived by Software Heritage are available under their own copyright and licenses.
Terms of use: Archive access, API— Content policy— Contact— JavaScript license information— Web API