CW21 Hack Day - 2021-03-31 to 2021-04-01
Hopper-1949 - HP12-CW21
Hack Day idea proposer
Faruk Diblen, Daniel Garijo, Carlos Martinez, Mathew Bluteau, Paddy McCann
Slack: #howdescribedis
Idea name (provisional)
HowDescribedIs
- Further automation of howfairis
Hack Day Demo
Context and/or research domain
howfairis is a tool to measure level of adherence to the five recommendations on fair-software.eu website. It allows users to automatically check the compliance of their code and produce a badge displaying the score of their software.
Example badge generated by howfairis:
SOMEF is a tool for extracting automatically metadata from code repositories, based on their readme file. SOMEF creates a Codemeta.json file automatically.
Problem
howfairis aims to be as easy-to-use as possible for researchers. However, meeting these recommendations requires some manual labor. We would like to automate this as much as possible, for example by automatically generating Codemeta.json files for your repo based on the descriptions that are already there.
Solution
SOMEF can help generate codemeta files automatically. With the information identified by SOMEF, we can determine which metadata is missing, hence prompting developers to improve their readmes with that information, or complete the Codemeta.json files created by SOMEF.
We would like to create a GitHub action which makes this happen automatically.
Thanks to this work, users will help structure their software descriptions in a machine-readable manner, making them easier to find (through keywords, faceted search, etc.)
Diagrams / illustrations
Current workflow:
Proposed approach:
Action plan for hackday
- Test somef
- Test howfairis
- Howfairis GH action:
- Create initial GH action that checks if there is a codemeta (or citation?) file
- If not, run SOMEF
- (Step 0) Overview of GitHub Actions
- (Step 1) Github action to generate codemeta.json
- (Step 1.1) Create codemeta.json
- (Step 1.2) Send a PR with created file
- (Step 2) Detect citation information is present (codemeta.json)
- (Step 2.1) If not, run action from Step 1)