Skip to content

Conversation

M0nje
Copy link

@M0nje M0nje commented Sep 17, 2024

Description

Implementation of the metric FRSM-07-F3: Does the software metadata include the identifier of the software it describes?
The metric tests include:

  • FRSM-07-F3-1
    • Does the software include an identifier in the README or citation file?
    • def testZenodoDoiInReadme(self):
      Checks if the README file contains a zenodo DOI
    • def testZenodoDoiInCitationFile(self):
      Checks if the CITATION file contains a zenodo DOI
    • Final score is 2 that adds +1 when DOI is found in README or CITATION file
  • FRSM-07-F3-2
    • Does the identifier resolve to the same instance of the software?
    • Get zenodo metadata with zenodo api calls for given found DOIs
    • def compareResolvedUrlIdentifiers(self):
      Checks if the found related_identifiers from README or CITATION file resolve to the same instance of the software
    • def testResolvesSameContent(self, location, pid_url):
      Checks if a given DOI (pid_url) resolves to the same instance of the software
    • def resolveRelatedIdentifiersFromDoi(self, doi_url):
      Checks if zenodo metadata from given DOI fetched from zenodo api contains related_identifiers with GitHub link
    • Final score is 2 with 2 beeing both README and CITATION contain the same identifier that resolves to the same instance of the software and with 1 beeing only one of those contains the identifier that resolves to the same instance of the software

Related issue: #8

Motivation and context

This implements the metric FRSM-07-F3 which is essential for the usage of fuji

How has this been tested?

Tested with multiple urls and docker environment. My code is not affecting other metrics.

Screenshots (if appropriate)

Metric FRSM-07-F3 with url: https://github.com/pangaea-data-publisher/fuji
screenshot F3

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Code style update (formatting, renaming)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • Documentation content changes
  • Other (please describe):

Checklist

  • I have read the contributor guide.
  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant