What is CodeMeta?
CodeMeta is a community standard for interchanging software metadata records. It consists on a set of properties that extend Schema.org (a popular vocabulary designed to describe Digital Objects on the Web) with software-specific metadata (e.g., maintainer, build instructions, software documentation, etc.)
Why do you need a CodeMeta file?
Description
By adding a codemeta.json
file in your root source code repository, you will ease metadata propagation between different archival infrastructures. For example, when obtaining DOIs for your code releases, you won’t need to fill in the corresponding software metadata again. CodeMeta is recognised and used by major code repositories and registries like Zenodo, InvenioRDM and Software Heritage.
But how to create a codemeta.json
file?
Considerations
- You use a code repository such as GitHub as your software repository
- You are knowledgeable about the metadata you want to describe. See the CodeMeta terms to understand which terms are expected. It is not needed to include a record of all terms, just the ones you know.
Solutions
- Create a
codemeta.json
file through any of the means below:- By using the CodeMeta Generator, a form-based service to help you describe valid CodeMeta records.
- By using the SOMEF command line and selecting the
-c
option to export a CodeMeta file generated from your README file and available documentation.- Alternatively, the following SOMEF Vider will allow you downloading auto-generated CodeMeta files (remember to double check the results).
- Manually, by using the following template as a reference. JSON-LD files can be validated with services like the JSON-LD validator.
- Copy the file in your source code root directory.
Related pages
Skip tool tableTools and resources on this page
Tool or resource | Description | Related pages | Registry |
---|---|---|---|
CodeMeta Generator | A free, open-source project that creates a minimal metadata schema for research software and code | ||
GitHub | GitHub is a platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control. GitHub provides access control, bug tracking, software feature requests, task management, continuous integration, and wikis for every project. | Creating a CITATION.cf... Creating a 'Read the D... How to add your first ... Releasing code Software documentation Version control Digital Software Ident... | |
InvenioRDM | A turn-key research data management (RDM) repository based on Invenio Framework and Zenodo | ||
JSON-LD validator | Service to validate JSON-LD files | ||
Software Heritage | Collects, preserves, curates and makes available software in source code form as cultural heritage | ||
SOMEF | Creating README docume... | ||
SOMEF Vider | A service running SOMEF to obtain CodeMeta files | ||
Zenodo | Zenodo is a general-purpose open repository developed under the European OpenAIRE program and operated by CERN. It allows researchers to deposit research papers, data sets, research software, reports, and other research-related digital artefacts. | Releasing code Software documentation Digital Software Ident... |
How to cite this page
Daniel Garijo, "Writing a CodeMeta file". everse.software. http://everse.software/RSQKit/codemeta .