Skip to main content

Documentation Status DOI PyPI - Version

Research Software MetaCheck (a Pitfall/Warning Detection Tool)

This project provides an automated tool for detecting common metadata quality issues (pitfalls & Warnings) in software repositories. The tool analyzes SoMEF (Software Metadata Extraction Framework) output files to identify various problems in repository metadata files such as codemeta.json, package.json, setup.py, DESCRIPTION, and others.

Overview

MetaCheck identifies 29 different types of metadata quality issues across multiple programming languages (Python, Java, C++, C, R, Rust). These pitfalls range from version mismatches and license template placeholders to broken URLs and improperly formatted metadata fields.

You can visit our catalog to see in details what these pitfalls are, where are they usually detected and how to fix them.

Supported Pitfall Types

The tool detects the following categories of issues:

  • Version-related pitfalls: Version mismatches between metadata files and releases
  • License-related pitfalls: Template placeholders, copyright-only licenses, missing version specifications
  • URL validation pitfalls: Broken links for CI, software requirements, download URLs
  • Metadata format pitfalls: Improper field formatting, multiple authors in single fields, etc...
  • Identifier pitfalls: Invalid or missing unique identifiers, bare DOIs
  • Repository reference pitfalls: Mismatched code repositories, Git shorthand usage

Requirements

  • Python 3.11
  • Required Python packages:
    • requests (for URL validation)
    • pathlib (built-in)
    • json (built-in)
    • re (built-in)
    • somef (For extracting metadata from the repositories)

Installation

Using Poetry (Recommended)

  1. Clone the repository:

    git clone https://github.com/SoftwareUnderstanding/RsMetaCheck.git
    cd RsMetaCheck
    
  2. Install with Poetry:

    poetry install
    
  3. Configure SoMEF (optional but recommended): Initially, the installation process will run somef configure -a to automatically set it up and install the necessary packages but the rate limit will be low. If you need more, you should reconfigure SoMEF, you can run the following command:

    poetry run somef configure
    

    Then add your GitHub authentication token to avoid API rate limits when analyzing repositories in batches.

Using pip

Alternatively, you can install directly from GitHub:

pip install git+https://github.com/SoftwareUnderstanding/RsMetaCheck.git

Usage

For full usage instructions — including CLI options, GitHub Action integration, GitLab CI/CD setup, output format, and configuration — please refer to the usage documentation.

Troubleshooting

Common Issues

  1. "There is no valid repository URL" error: Ensure the JSON file that contains the repositories has a valid structure and that you are inputing the correct path
  2. Network timeouts: Some pitfalls validate URLs and may time out this is normal behavior

Performance Notes

  • URL validation pitfalls may take longer due to network requests
  • Large datasets may require several minutes to complete analysis
  • Progress is displayed in real-time showing which pitfalls are found

Contributing

The system is designed with modularity in mind. Each pitfall detector is implemented as a separate module in the scripts/ directory, making it easy to add new pitfall types or modify existing detection logic.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rsmetacheck-0.3.4.tar.gz (42.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rsmetacheck-0.3.4-py3-none-any.whl (62.9 kB view details)

Uploaded Python 3

File details

Details for the file rsmetacheck-0.3.4.tar.gz.

File metadata

  • Download URL: rsmetacheck-0.3.4.tar.gz
  • Upload date:
  • Size: 42.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.11.15 Linux/6.17.0-1018-azure

File hashes

Hashes for rsmetacheck-0.3.4.tar.gz
Algorithm Hash digest
SHA256 a8b25e3b992bf8763b4e65d1fecfa1b3b96c7c30439e312dfe29e284a32e2dff
MD5 ff812bc601d1d7cffb080e8b3c797027
BLAKE2b-256 36f94f1f0273947409918d05195be9a2977f062da6e7c28ee129e7ae0dfd34af

See more details on using hashes here.

File details

Details for the file rsmetacheck-0.3.4-py3-none-any.whl.

File metadata

  • Download URL: rsmetacheck-0.3.4-py3-none-any.whl
  • Upload date:
  • Size: 62.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.4.1 CPython/3.11.15 Linux/6.17.0-1018-azure

File hashes

Hashes for rsmetacheck-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 22eaff94a032589301f8aff27da69c9e64e39a36d6c5b7245cfd7f4323ef43ae
MD5 dbf0f5b22890815bcf2aabc848314b7c
BLAKE2b-256 ca4c29b28cb5069a432304afc1a330b352f9e6691765b9cb6fd7d8691027d5eb

See more details on using hashes here.

Release history Release notifications | RSS feed

0.3.5

2 files

This release

0.3.4 This release

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page