arduino / arduino/Arduino

[Library] Automate quality assurance testing of libraries

Open
#7,567 31 comments 1 reaction 0 assignees View on GitHub
Component: Board/Lib Manager feature request
Dominant language
Java
Stars
14.6k
Forks
7k
PR merge metrics
No merged PRs in 30d

Description

Hello,

In #6646 I mentioned that library manager should display license for each library.

I think a more general issue is that Arduino should be able to automate quality assurance of libraries.
http://downloads.arduino.cc/libraries/library_index.json could help

The presence of a license file is one point, but assurance that the code is still compilable is an other important point. Then, assurance, thanks to [unit tests](https://en.wikipedia.org/wiki/Unit_testing), that library have some chance to be still usable is a last point.

In JuliaLang we have https://pkg.julialang.org/ which list all libraries (outside of any IDE).
So, thanks to [continuous integration](https://en.wikipedia.org/wiki/Continuous_integration) and this quality assurance testing, we know if a library is compilable or not and if tests of a library are passing or not...

https://github.com/ianfixes/arduino_ci provides scripts to ensure that when a commit is made, it doesn't break library (prevents him from compiling) and that unit tests are still passing.

All this may be insufficient, we could still have broken eggs, but that's a begining.

Require developers to tag their release (with semantic versionning) and set up requirements (with a minimal version number for each dependencies) in a configuration file could be an other important point (discussed in #5795 )

Kind regards

Contributor guide

Open the contributing guide

Research direction

Start with the library_index.json data source and the arduino_ci scripts mentioned in the issue, then review the related discussions in #6646 and #5795. Define the scope of the proposed quality checks, including license presence, compilation, unit tests, release tagging, and dependency requirements; done would require an agreed automated workflow rather than a single isolated edit.

Written by the indexing model from the issue text.

Assessment

Tech stack
arduino
Domain
ci-cd, testing, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.