Skip to content

Commit

Permalink
Merge pull request #86 from dgarijo/main
Browse files Browse the repository at this point in the history
CodeMeta task
  • Loading branch information
dgarijo authored Oct 20, 2024
2 parents 2b861e4 + 5a94d6a commit 4648439
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 11 deletions.
18 changes: 10 additions & 8 deletions _data/sidebars/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,24 +42,26 @@ subitems:
url: /readable_code
- title: Creating a readthedocs file
url: /creating_readthedocs
- title: Creating code releases
url: /releasing_code
- title: Environmental sustainability
url: /environmental_sustainability
- title: How to write a good README
url: /how_to_make_a_good_readme
- title: How to choose a programming language?
url: /how_to_make_a_good_readme
- title: Reproducible software environments
url: /virtual_dev_environments
- title: How to write a CodeMeta file?
url: /codemeta
- title: Licensing software
url: /licensing_software
- title: Environmental sustainability
url: /environmental_sustainability
- title: Creating code releases
url: /releasing_code
- title: Obtaining a DOI for your code
url: /zenodo_doi
- title: Reproducible software environments
url: /virtual_dev_environments
- title: Testing your code
url: /testing_code
- title: Version control
url: /version_control
- title: Obtaining a DOI for your code
url: /zenodo_doi
- title: Your science domain
url: /science_domains_communities
subitems:
Expand Down
47 changes: 47 additions & 0 deletions pages/your_tasks/codemeta.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
title: Writing a CodeMeta file
description: Overview on how to write a CodeMeta file
contributors: ["Daniel Garijo"]
page_id: codemeta
related_pages: [zenodo_doi]
---
## What is CodeMeta?
[CodeMeta](https://codemeta.github.io/terms/) is a community standard for interchanging software metadata records. It consists on a set of properties that extend [Schema.org](https://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 <!-- do not delete this heading and write your text below it -->

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](https://everse.software/RSQKit/zenodo_doi), you won't need to fill in the corresponsing software metadata again. CodeMeta is recognized and used by major code repositories and registries like [Zenodo](https://zenodo.org/) ([Invenio RDM](https://inveniosoftware.org/products/rdm/)) and [Software Heritage](https://www.softwareheritage.org/).

But how to create a `codemeta.json` file?

### Considerations <!-- do not delete this heading and write your text below it -->
* You use a code repository such as [GitHub][github] as your software repository
* You are knowledgeable about the metadata you want to describe. See the [CodeMeta terms](https://codemeta.github.io/terms/) to understand which terms are expected. It is not needed to include a record of all terms, just the ones you know.

### Solutions <!-- do not delete this heading and write your text below it -->
* Create a `codemeta.json` file through any of the means below:
* By using the [CodeMeta Generator](https://codemeta.github.io/codemeta-generator/), a form-based service to help you describe valid CodeMeta records.
* By using the [Software Metadata Extraction Framework](https://github.com/KnowledgeCaptureAndDiscovery/somef/) command line and selecting the `-c` option to export a CodeMeta file generated from your README file and available documentation.
* Alternatively, the following [service](https://somef.linkeddata.es/) will allow you downloading auto-generated CodeMeta files (remember to double check the results).
* Manually, by using the following [template](https://github.com/codemeta/codemeta/blob/master/codemeta.json) as a reference. JSON-LD files can be validated with services like the [JSON-LD Playground](https://json-ld.org/playground/)
* Copy the file in your source code root directory

## How to cite this page <!-- do not delete this heading and write your text below it -->
TO DO.

## Tools and resources <!-- do not delete this heading and write your text below it -->
* [CodeMeta Generator](https://codemeta.github.io/codemeta-generator/): Online form to help manually create and validate CodeMeta files.
* [JSON-LD validator](https://json-ld.org/playground/): Service to validate JSON-LD files.
* [Software Metadata extraction framework (SOMEF)](https://github.com/KnowledgeCaptureAndDiscovery/somef/): Library designed to extract CodeMeta files from source code documentation.
* [Somef vider](https://somef.linkeddata.es/): A service running SOMEF to obtain CodeMeta files.
* [Sample CodeMeta file](https://github.com/codemeta/codemeta/blob/master/codemeta.json): CodeMeta example to use as a template for your repository.

## References <!-- do not delete this heading and write your text below it -->
<!--If work has been inspired or derived from other content (e.g., pages in RDMKit) make sure to reference it here. -->
To be added.


[github]: (https://github.com/)

2 changes: 1 addition & 1 deletion pages/your_tasks/how_to_make_a_good_readme.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: How to make a good README
search_exclude: true
description: Description of good practice to make a good README for research software.
description: Description of good practices on how to make a good README for research software.
contributors: ["Esteban González", "Aleksandra Nenadic", "Daniel Garijo"]
page_id: good_README
related_pages: []
Expand Down
1 change: 0 additions & 1 deletion pages/your_tasks/testing_code.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
---
title: Testing Code
search_exclude: false
description: Explains useful aspects about why and how to test code.
contributors: ["Aleksandra Nenadic", "Christian Hüser"]
page_id: testing_code
Expand Down
1 change: 0 additions & 1 deletion pages/your_tasks/zenodo_doi.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
---
title: Adding a DOI in your code releases with Zenodo
search_exclude: true
description: This page explains how to obtain a DOI via Zenodo for your code releases
contributors: ["Shoaib Sufi", "Daniel Garijo"]
page_id: zenodo_doi
Expand Down

0 comments on commit 4648439

Please sign in to comment.