/osh-tool

A command line tool for Open Source Hardware (OSH) technical project linting (quality assessment).

Primary LanguageNimGNU Affero General Public License v3.0AGPL-3.0

osh-tool

License: AGPL-3.0-or-later REUSE status

In cooperation with FabCity Hamburg In cooperation with Open Source Ecology Germany

A command line tool for Open Source Hardware (OSH) technical project linting (quality assessment).

Download binaries (latest build, Linux & Windows, 64bit)

What it can do:

  • Check for (non standardized) OSH project design compliance
  • Create human-readable reports
  • Create machine-readable reports

Examples

Badges

To be used at the top of a README:

  • Meditation Bench - OSH - Openness
  • Agro Circle - OSH - Openness
  • OHLOOM - OSH - compliance
  • OHLOOM - OSH - machineReadability
  • OHLOOM - OSH - quality
  • OHLOOM - OSH - openness

Example Projects

Two sample hardware projects, using this tool to check their own Open Source'ness with the help of this tool, executed in CI. The generated report is linked to form the README in a badge (image after the title) with the text "OSH Report".

CI Type Sample Project Hosting Generated Report CI Script
GitHub Actions https://github.com/hoijui/MeditationBench Generated Report .github/workflows/check.yml
GitHub Actions 2 https://github.com/osegermany/AgroCircle Generated Report .github/workflows/check.yml
GitLab CI https://gitlab.com/OSEGermany/ohloom Generated Report .gitlab-ci.yml

Features

So far, It may only check/lint OSH projects, while later it is supposed to also initialize them with all sorts of standard files and tooling.

See src/checks for the currently supported checks, including at least:

  • Check README existence
  • Check LICENSE existence
  • Check okh.toml (Open Know-How OSH meta-data file) existence

Requires

To compile:

  • Nim and Nimble, version 0.10.0 or higher

Install

From repository

# Fetch the whole source code
git submodule update --init --recursive
# Latest released version
nimble install osh
# Latest developmental state inside git repository
nimble install osh@#head

From local sources

For example when using a local git clone.

nimble build
./osh --help

Usage

Simply run osh -h to see usage information.

For more details how to use it locally and on CI/build-bot, see the user documentation.

Community

Ask anything as an issue!

Similar Projects

We are not just standing on the shoulders of giants, but also toe on toe with them!

These are two of our big sister projects. They are similar both in spirit and in the way they are used on the command-line. They also work well in combination with this tool.

  • git - Master of history
  • reuse - Handles all things regarding licensing of a project and its sources

License

GNU Affero General Public License version 3

Funding

This project was funded by:

  • the European Union's Horizon 2020 research and innovation program, under grant agreement no. 869984, in the context of the OPEN!NEXT Project, from June 2021 (project start) until November 2021.

    Logo of the European Commission

  • the European Regional Development Fund (ERDF) in the context of the INTERFACER Project, from December 2021 until March 2023.

    Logo of the EU ERDF program