wospm/checker

A checker for project owners to measure their open source project.

Maintainers

Details

github.com/WOSPM/checker

Source

Issues

Fund package maintenance!
Patreon

Installs: 641

Dependents: 0

Suggesters: 0

Security: 0

Stars: 7

Watchers: 4

Forks: 1

Open Issues: 3

Type:project

0.4.0 2021-06-01 17:26 UTC

README

All Contributors Markdown Linter Checks All PHP Versions WOSPM CircleCI

A checker for project owners to measure their open source project if it is a welcoming project for contributors or not.

WOSPM Checker

Table Of Contents

Introduction

wospm-checker is a commandline tool to measure how an open source project welcomes users and possible contributors. The tool checks the repository against a list of metrics. The metrics are mostly inspired by Github's Open Source Guides.

How To Install And Use

Install the package with composer.

composer global require wospm/checker

You can use --help parameter to how the options and other information of the command.

wospm-checker --help

WOSPM Checker version: 0.0.1
Options:
    --output            The format of output. JSON, READABLE (Default), NO, HTML.
    --verbose           Show the progress or not. (0 => No, 1 => Detailed,
                        2 => Dots)
    --no-colors         Disable the console colors. It is enabled by default.
    --strict            Enable strict mode. The script will have a higher
                        bound to give success code.
    --version           Show version.
    --help              Print this help.

You can check your project by running the wospm-checker command in the root folder of your repo.

/full/path/to/wospm-checker

alt text

Github Action

It is also ready on Github marketplace as an action with name "WOSPM Checker Github Action" to use in your pipeline.

To Be Considered

GitHub Rest API Rate Limit ❗❗❗

wospm-checker uses GitHub Rest API to fecth repository information in some of the metric checks. There some limits in using this API. When you use wospm-checker very frequently, you may hit the wall of anonymous limit of the API.

Client error: `GET https://api.github.com/repos/user/repo/labels` resulted in a `403 Forbidden` response:
{
  "message": "API rate limit exceeded for XX.XX.XX.XXX. (But here's the good news: Authenticated requests get a higher (truncated...)

You can use your personal access token to have a bigger rate limit. In order to do this, you need to create a YML file with name .wospm under the root folder of the repository to be checked.

github:
    auth_token: PERSONAL_ACCESS_TOKEN

WOSPM Metrics

WOSPM metrics are measures to make quantitative assessments about the open sourse projects if they are contributor friendly or not. They are not scientific values which are mostly derived from Open Source Guides.

Metric Rules

  1. Every metric should check only one simple case
  2. Metrics can be dependent to each other (If there is no README, no need to make any check in README content etc.)
  3. Every metric should have a unique WOSPMXXX number and a unique title (uppercase and snake-case).

For more information about adding a new metric to the project, please Add New Metric section.

List of Existing Metrics

To see the details of the metrics, click the metric code for detailed document.

Code Title Description
WOSPM0001 USING_WOSPM You are using WOSPM checker. It is a good start.
WOSPM0002 README Every open source project should have a README file.
WOSPM0003 LICENSE Every open source project should have a LICENSE file.
WOSPM0004 CONTRIBUTING Every open source project should have a CONTRIBUTING file.
WOSPM0005 CODE_OF_CONDUCT Every open source project should have a CODE_OF_CONDUCT file.
WOSPM0006 README_TOC Every README file should have table of contents list.
WOSPM0007 LINK_TO_CONTRIBUTE README should have a link to CONTRIBUTING file.
WOSPM0008 LINK_TO_CODE_OF_CONDUCT README should have a link to CODE_OF_CONDUCT file.
WOSPM0009 README_ADEQUATE README should have atleast 200 words.
WOSPM0010 INSTALLATION_SECTION README file should have an installation section.
WOSPM0011 GITHUB_ISSUE_TEMPLATE You should have issue templates on Github.
WOSPM0012 GITHUB_PR_TEMPLATE You should have PR template on Github.
WOSPM0013 GITHUB_SHORT_DESCRIPTION Project should have a short description on Github.
WOSPM0014 GITHUB_TOPICS Related Github topics should be added to the repository.
WOSPM0015 GITHUB_LABELS Project should have issue labels.
WOSPM0016 GITHUB_LABELS_USED Labels should be used to highlight the issues.
WOSPM0017 GITHUB_CUSTOM_LABELS Creating custom labels is a good practice.
WOSPM0018 GITHUB_LABELS_GFI_HW good first issue and help wanted labels should exist.
WOSPM0019 GITHUB_CUSTOM_LABELS_USED At least one custom label should be associated to an issue.
WOSPM0020 GITHUB_LABELS_GFI_HW_USED good first issue and "help wanted" labels should be used.
WOSPM0021 GITHUB_RESPONSIVENESS Responsive owners encourage users to be contributors.
WOSPM0022 GITHUB_CUSTOM_LABEL_DESCRIPTON Custom labels should have descriptions.
WOSPM0023 NO_BROKEN_LINKS_IN_README No broken links exists in README.
WOSPM0024 CONTRIBUTORS_SECTION README file should have a contributors section.
WOSPM0025 CHANGELOG Project should have a changelog published.

Badges

After the check, the checker will generate a overall status for the project. There types of status are considered;

  • Perfect: It means that the porject covers 100 percent of the metrics. Perfect
  • Welcoming: It means that the project covers atleast 90 percent of the metrics. Welcoming
  • Not Ready: It means that the project is not ready to be accepted as Welcoming. The project covers between 50 and 90 percents of the metrics. Not Ready
  • Bad: I means that the project is in very bad status. The coverage is under 50 percent. Bad

The checker generates the badge code of the project at the end of the the execution.

Contributing

See CONTRIBUTING.md for information.

Code of Conduct

See CODE_OF_CONDUCT for information.

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Tom Mens

🤔

Mohammad Reza

💻

By all-contributors.

Contributions of any kind welcome!