PubInv / covid19-vent-list

A list projects to make emergency ventilators in response to COVID-19, focusing on free-libre open source
Creative Commons Zero v1.0 Universal
172 stars 43 forks source link

Evaluate also controller code bases #37

Closed synergiator closed 4 years ago

synergiator commented 4 years ago

Controller code bases introduce their own complexities; therefore it would be great to have an additional column and a testing workstream to grade code quality.

There are varieties of tools, we could start with simply linting to get an idea about a statc code quality.

I am open to discuss further details and implementation in this issue thread.

For example:

0. Code does not even compile*, no need to check static code quality.
1. Lots of warnings > 10
2. Some warnings, only 1 or 2 critical, total count < 10
3. Several non-critical warnings < 5
4. 1 or 2 minor warnings.
5. Zero warnings, assume 100% measurable static code quality.

* Provided documentation must contain instructions how to setup compilation environment, install required dependencies and run compilation and what the result should be. Ideally, these steps should be shared in form of a test script like Dockerfile or similar as part of the codebase.

Further metric could be code coverage whilee 100% code coverage is very expensive and rarely seen.

Further inspirations for graded code quality (a commercial tool but they have a great quality framework and also many industrial customers; I have reached out to their CEO in this context): https://www.tiobe.com/tqi/awards/

RobertLRead commented 4 years ago

This is a good idea. I don't think I would focus on warnings, and even code quality might be narrow...but the overall software capability and flexibility is something worth looking at. Let me talk to my colleague Enrique about this.

RobertLRead commented 4 years ago

I have added a column (far to the right) for notes on Software. I'm not ready to start scoring software; as projects become more advanced, I might develop some criteria. Thanks for the suggestion.

synergiator commented 4 years ago

I think, beyond academic interests, this quick and simple check can be reduced to most significant question:

"is there a transparent automation aka CI/CD to create controller flash file from sources?"

Implications:

The CI/CD automation is integral part of sites like GitHub and GitLab so the check should be easy.