Closed karacolada closed 4 months ago
Assigned to R1 since the testst don't really align with R2.
Test general-essential sounds like it's asking for documentation, hence I'm checking README, wiki and a docs/ folder for keywords.
C1: Linting and other relevant checks are present in the automated build and test process (e.g. via the Jenkinsfile).
Unclear what I'm looking for. How is linting checked in the Jenkinsfile? What are "other relevant checks"? Keywords can be configured in the metrics YAML file though, so can be added by people who know more.
The difference between the badges in C2 and C3 is unclear to me. I interpreted this as:
Hence, the regexes used are slightly different.
C3 deployment is difficult to test for - is it mandatory to have multiple environments? If so, that could come in many shapes, so not straightforward to test for. Instead, the test currently just looks for "deploy" in an automated file (again using test requirements for keyword search config).
List of dependency files: https://github.com/librariesio/bibliothecary/blob/main/README.md
Could also use Bibliothecary, but it's a Ruby Gem. Going through the libraries.io API might be possible, see https://libraries.io/api
Libraries.io API can list dependencies. We could interpret this as "dependencies are machine-readable"? (https://libraries.io/api)
D5.2 page 20+29.
Detailed Description
Software is made more reusable by providing suitable machine-actionable information on dependencies, build and configuration.
Generic comments
Most programming languages provide standardised ways of providing dependency information in a machine-actionable format. Build and package management systems can be used to automate the installation process. It is hard to check the relevance / correctness of this information, but it is possible to automatically check for existence and error-free build. Detailed documentation also aids the reusability of software but it is difficult to automatically test for documentation coverage.
CESSDA comments
See Software Maturity Levels (SML) for: CMA1 - Documentation, CMA3 - Extensibility, CM4 - Modularity, CMA5 - Packaging, CMA6 - Portability, and CMA7 - Standards Compliance.
Source code documentation should use the de facto standard for chosen language, e.g: JavaDoc for Java (Manual). Although no language-specific coding conventions are mandated, the ‘Coding conventions for languages’ section of the Wikipedia Coding conventions page is a useful reference source for language-specific guidelines, if required (Software Code Structure guidelines).
Context
R1: Software is described with a plurality of accurate and relevant attributes. R2: Software includes qualified references to other software.
Possible Implementation
CESSDA