From 87f561b15071af12991f1502feec1fc7ecbe0b24 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 27 Nov 2025 01:58:00 +0000 Subject: [PATCH 01/47] Automated update of RSQKit data files --- _data/quality_dimensions.yml | 197 +--------------- _data/quality_indicators.yml | 425 ----------------------------------- 2 files changed, 1 insertion(+), 621 deletions(-) diff --git a/_data/quality_dimensions.yml b/_data/quality_dimensions.yml index 0a5386bb..fe51488c 100644 --- a/_data/quality_dimensions.yml +++ b/_data/quality_dimensions.yml @@ -1,196 +1 @@ -- abbreviation: compatibility - description: "Degree to which a product, system or component can exchange information\ - \ with other products, systems or components, and/or perform its required\ - \ functions while sharing the same common environment and resources. This\ - \ characteristic is composed of the following sub-characteristics:\n -Co-existence\ - \ - Degree to which a product can perform its required functions efficiently\ - \ while sharing a common environment and resources with other products, without\ - \ detrimental impact on any other product.\n -Interoperability - Degree\ - \ to which a system, product or component can exchange information with other\ - \ products and mutually use the information that has been exchanged." - identifier: https://w3id.org/everse/i/dimensions/compatibility - name: Compatibility - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: fairness - description: 'FAIRness refers to the degree to which research software adheres - to the FAIR principles: Findable, Accessible, Interoperable, and Reusable. - These principles, adapted for research software, aim to enhance the discoverability, - accessibility, interoperability, and reusability of software, thereby maximizing - its value and impact in scientific research.' - identifier: https://w3id.org/everse/i/dimensions/fairness - name: FAIRness - source: - name: Introducing the FAIR Principles for research software - url: https://www.nature.com/articles/s41597-022-01710-x -- abbreviation: flexibility - description: "Degree to which a product can be adapted to changes in its requirements,\ - \ contexts of use or system environment. This characteristic is composed of\ - \ the following sub-characteristics:\n - Adaptability - Degree to which\ - \ a product or system can effectively and efficiently be adapted for or transferred\ - \ to different hardware, software or other operational or usage environments.\n\ - \ - Scalability - Degree to which a product can handle growing or shrinking\ - \ workloads or to adapt its capacity to handle variability.\n - Installability\ - \ - Degree of effectiveness and efficiency with which a product or system\ - \ can be successfully installed and/or uninstalled in a specified environment.\n\ - \ - Replaceability - Degree to which a product can replace another specified\ - \ software product for the same purpose in the same environment." - identifier: https://w3id.org/everse/i/dimensions/flexibility - name: Flexibility - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: functional_suitability - created: 03-04-2025 - description: "This characteristic represents the degree to which a product or\ - \ system provides functions that meet stated and implied needs when used under\ - \ specified conditions. This characteristic is composed of the following sub-characteristics:\ - \ \n Functional completeness - Degree to which the set of functions covers\ - \ all the specified tasks and intended users' objectives.\n Functional\ - \ correctness - Degree to which a product or system provides accurate results\ - \ when used by intended users.\n Functional appropriateness - Degree to\ - \ which the functions facilitate the accomplishment of specified tasks and\ - \ objectives." - identifier: https://w3id.org/everse/i/dimensions/functional_suitability - name: Functional suitability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: interaction_capability - description: "Degree to which a product or system can be interacted with by specified\ - \ users to exchange information via the user interface to complete specific\ - \ tasks in a variety of contexts of use. This characteristic is composed of\ - \ the following sub-characteristics:\n - Appropriateness recognizability\ - \ - Degree to which users can recognize whether a product or system is appropriate\ - \ for their needs.\n - Learnability - Degree to which the functions of\ - \ a product or system can be learnt to be used by specified users within a\ - \ specified amount of time.\n - Operability - Degree to which a product\ - \ or system has attributes that make it easy to operate and control.\n \ - \ - User error protection. Degree to which a system prevents users against\ - \ operation errors.\n - User engagement - Degree to which a user interface\ - \ presents functions and information in an inviting and motivating manner\ - \ encouraging continued interaction.\n - Inclusivity - Degree to which\ - \ a product or system can be used by people of various backgrounds (such as\ - \ people of various ages, abilities, cultures, ethnicities, languages, genders,\ - \ economic situations, etc.).\n - User assistance - Degree to which a product\ - \ can be used by people with the widest range of characteristics and capabilities\ - \ to achieve specified goals in a specified context of use.\n - Self-descriptiveness\ - \ - Degree to which a product presents appropriate information, where needed\ - \ by the user, to make its capabilities and use immediately obvious to the\ - \ user without excessive interactions with a product or other resources (such\ - \ as user documentation, help desks or other users)." - identifier: https://w3id.org/everse/i/dimensions/interaction_capability - name: Interaction Capability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: maintainability - description: "This characteristic represents the degree of effectiveness and efficiency\ - \ with which a product or system can be modified to improve it, correct it\ - \ or adapt it to changes in environment, and in requirements.This characteristic\ - \ is composed of the following sub-characteristics:\n - Modularity - Degree\ - \ to which a system or computer program is composed of discrete components\ - \ such that a change to one component has minimal impact on other components.\n\ - \ - Reusability - Degree to which a product can be used as an asset in\ - \ more than one system, or in building other assets.\n - Analysability\ - \ - Degree of effectiveness and efficiency with which it is possible to assess\ - \ the impact on a product or system of an intended change to one or more of\ - \ its parts, to diagnose a product for deficiencies or causes of failures,\ - \ or to identify parts to be modified.\n - Modifiability - Degree to which\ - \ a product or system can be effectively and efficiently modified without\ - \ introducing defects or degrading existing product quality.\n - Testability\ - \ - Degree of effectiveness and efficiency with which test criteria can be\ - \ established for a system, product or component and tests can be performed\ - \ to determine whether those criteria have been met." - identifier: https://w3id.org/everse/i/dimensions/maintainability - name: Maintainability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: performance_efficiency - description: "This characteristic represents the degree to which a product performs\ - \ its functions within specified time and throughput parameters and is efficient\ - \ in the use of resources (such as CPU, memory, storage, network devices,\ - \ energy, materials...) under specified conditions. This characteristic is\ - \ composed of the following sub-characteristics:\n -Time behaviour - Degree\ - \ to which the response time and throughput rates of a product or system,\ - \ when performing its functions, meet requirements.\n -Resource utilization\ - \ - Degree to which the amounts and types of resources used by a product or\ - \ system, when performing its functions, meet requirements.\n - Capacity\ - \ - Degree to which the maximum limits of a product or system parameter meet\ - \ requirements." - identifier: https://w3id.org/everse/i/dimensions/performance_efficiency - name: Performance Efficiency - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: reliability - description: "Degree to which a system, product or component performs specified\ - \ functions under specified conditions for a specified period of time. This\ - \ characteristic is composed of the following sub-characteristics:\n -\ - \ Faultlessness - Degree to which a system, product or component performs\ - \ specified functions without fault under normal operation.\n - Availability\ - \ - Degree to which a system, product or component is operational and accessible\ - \ when required for use.\n - Fault tolerance - Degree to which a system,\ - \ product or component operates as intended despite the presence of hardware\ - \ or software faults.\n - Recoverability - Degree to which, in the event\ - \ of an interruption or a failure, a product or system can recover the data\ - \ directly affected and re-establish the desired state of the system." - identifier: https://w3id.org/everse/i/dimensions/reliability - name: Reliability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: safety - description: "This characteristic represents the degree to which a product under\ - \ defined conditions to avoid a state in which human life, health, property,\ - \ or the environment is endangered. This characteristic is composed of the\ - \ following sub-characteristics:\n - Operational constraint - Degree to\ - \ which a product or system constrains its operation to within safe parameters\ - \ or states when encountering operational hazard.\n - Risk identification\ - \ - Degree to which a product can identify a course of events or operations\ - \ that can expose life, property or environment to unacceptable risk.\n \ - \ - Fail safe - Degree to which a product can automatically place itself\ - \ in a safe operating mode, or to revert to a safe condition in the event\ - \ of a failure.\n - Hazard warning - Degree to which a product or system\ - \ provides warnings of unacceptable risks to operations or internal controls\ - \ so that they can react in sufficient time to sustain safe operations.\n\ - \ - Safe integration - Degree to which a product can maintain safety during\ - \ and after integration with one or more components." - identifier: https://w3id.org/everse/i/dimensions/safety - name: Safety - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: security - description: "Degree to which a product or system defends against attack patterns\ - \ by malicious actors and protects information and data so that persons or\ - \ other products or systems have the degree of data access appropriate to\ - \ their types and levels of authorization. This characteristic is composed\ - \ of the following sub-characteristics:\n - Confidentiality - Degree to\ - \ which a product or system ensures that data are accessible only to those\ - \ authorized to have access.\n - Integrity - Degree to which a system,\ - \ product or component ensures that the state of its system and data are protected\ - \ from unauthorized modification or deletion either by malicious action or\ - \ computer error.\n - Non-repudiation - Degree to which actions or events\ - \ can be proven to have taken place so that the events or actions cannot be\ - \ repudiated later.\n - Accountability - Degree to which the actions of\ - \ an entity can be traced uniquely to the entity.\n - Authenticity - Degree\ - \ to which the identity of a subject or resource can be proved to be the one\ - \ claimed.\n - Resistance - Degree to which the product or system sustains\ - \ operations while under attack from a malicious actor." - identifier: https://w3id.org/everse/i/dimensions/security - name: Security - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: sustainability - description: The capacity of the software to endure. In other words, sustainability - means that the software will continue to be available in the future, on new - platforms, meeting new needs. - identifier: https://w3id.org/everse/i/dimensions/sustainability - name: Sustainability - source: - name: Defining Software Sustainability - url: https://danielskatzblog.wordpress.com/2016/09/13/defining-software-sustainability/ +[] diff --git a/_data/quality_indicators.yml b/_data/quality_indicators.yml index bbaa0497..c991bc7d 100644 --- a/_data/quality_indicators.yml +++ b/_data/quality_indicators.yml @@ -344,428 +344,3 @@ url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#code-review status: Active version: 1.0.0 -- abbreviation: listed_in_registry - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-06-2025 - description: The target source code repository is in a disciplinary or community - registry (e.g ascl.net, bio.tools, swMath, RRID portal, RSD, WikiData, DataCite, - etc.) to ensure that software can be found and accessed. - identifier: - '@id': https://w3id.org/everse/i/indicators/listed_in_registry - keywords: - - repository - - fair - - software heritage, zenodo - name: Software is listed in a registry - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - '@id': https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ - name: Accessibility and preservation. RSMD 2.3 - url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/#accessibility-and-preservation - status: Active - version: 1.0.0 -- abbreviation: metadata_is_up_to_date - author: - - '@type': schema:Person - name: Tom François - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Thomas Vuillaume - contact: - - '@type': schema:Person - name: Tom François - - '@type': schema:Person - name: Daniel Garijo - created: 24-09-2025 - description: Metadata information reflects the current description of a software - project. This indicator ensures that the current project metadata provides - up to date, accurate and relevant information about a software component. - identifier: - '@id': https://w3id.org/everse/i/indicators/metadata_is_up_to_date - keywords: - - metadata - - software - - fair - - findability - - maintainability - name: Software has up-to-date metadata - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/maintainability - source: - - name: 'EOSC-SWRelMan-11: Metadata: Supportability, Maintainability, Availability.' - url: https://doi.org/10.5281/zenodo.10647227 - status: Active - version: 1.0.0 -- abbreviation: no_critical_vulnerability - author: - - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - '@type': schema:Person - name: Tom François - schema:email: tom.francois@lapp.in2p3.fr - created: 03-04-2025 - description: Checks if reported critical vulnerabilities have been fixed - identifier: - '@id': https://w3id.org/everse/i/indicators/no_critical_vulnerability - keywords: - - security - - critical - - vulnerability - name: No critical vulnerabilities - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/security - source: - - '@id': https://www.bestpractices.dev/en/criteria/0#0.vulnerabilities_critical_fixed - name: OpenSSF Best practice Critical Vulnerability Fixed - status: Active - version: 1.0.0 -- abbreviation: no_leaked_credentials - author: - - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - '@type': schema:Person - name: Tom François - schema:email: tom.francois@lapp.in2p3.fr - description: Checks if hardcoded secrets like passwords, API keys, and tokens - is stored in the public git repository - identifier: - '@id': https://w3id.org/everse/i/indicators/no_leaked_credentials - keywords: - - security - - credential - - leak - - secret - - password - name: No leaked credentials - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/security - source: - - '@id': https://www.bestpractices.dev/en/criteria/0#0.no_leaked_credentials - name: OpenSSF Best practice No Leaked Credentials - status: Active - version: 1.0.0 -- abbreviation: persistent_and_unique_identifier - alternateName: FRSM-01 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator tries to determine if the software identifier is based - on a suitable identifier scheme, and test it can be resolved. This is done - by checking if the identifier uses an identifier scheme contained in a list - of globally unique identifier schemes - identifier: - '@id': https://w3id.org/everse/i/indicators/persistent_and_unique_identifier - keywords: - - identifier - - unique - - fair - - persistent - - metadata - name: Software has persistent and unique identifier - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - status: Active - version: 1.0.0 -- abbreviation: repository_workflows - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator tries aims determine if a software project makes use - of workflows to automate processes like testing and deployment. - identifier: - '@id': https://w3id.org/everse/i/indicators/repository_workflows - keywords: - - workflows - - github - - fair - - repository - name: Software has ci/cd workflows in its repository - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/maintainability - source: - - name: 'OpenSSF Scorecard: CI-Tests' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#ci-tests - status: Active - version: 1.0.0 -- abbreviation: requirements_specified - alternateName: FRSM-13 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator tries to determine if the project specifies what is - required to use the software. - identifier: - '@id': https://w3id.org/everse/i/indicators/requirements_specified - keywords: - - documentation - - requirements - - dependencies - - fair - name: Software specifies requirements - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/flexibility - - '@id': https://w3id.org/everse/i/dimensions/maintainability - source: - - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - - name: 'RSMD Guidelines - Re-execute: dependencies and execution environment' - url: https://fair-impact.github.io/RSMD-guidelines/7.Re-execute/ - status: Active - version: 1.0.0 -- abbreviation: software_documentation - alternateName: FRSM-05 - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if a software project comes with - many forms of documentation like readme or readthedocs - identifier: - '@id': https://w3id.org/everse/i/indicators/software_documentation - keywords: - - documentation - - fair - - usage - - readme - name: Software has documentation - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/interaction_capability - source: - name: FLOSS Best Practices Criteria - url: https://www.bestpractices.dev/en/criteria/0#0.documentation_basics - status: Active - version: 1.0.0 -- abbreviation: software_has_tests - alternateName: FRSM-14 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: Evaluates the extent to which the software has been tested, including - unit tests, integration tests, and system tests, to ensure reliability and - correctness. - identifier: - '@id': https://w3id.org/everse/i/indicators/software_has_tests - keywords: - - test - - functionality - - fair - name: Software provides tests. - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/reliability - source: - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - status: Active - version: 1.0.0 -- abbreviation: static_analysis_common_vulnerabilities - author: - '@type': Organization - name: OpenSSF - url: https://openssf.org/ - contactPoint: - '@type': schema:Person - email: thomas.vuillaume@lapp.in2p3.fr - name: Thomas Vuillaume - created: 03-04-2025 - description: At least one static code analysis tool used includes rules or techniques - to detect common vulnerabilities specific to the language or environment. - identifier: - '@id': https://w3id.org/everse/i/indicators/static_analysis_common_vulnerabilities - keywords: - - security - - vulnerabilities - - static analysis - name: has static analysis for common vulnerabilities - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/security - source: - '@id': https://www.bestpractices.dev/en/criteria/0 - name: FLOSS Best Practices Criteria (Passing Badge) - url: https://www.bestpractices.dev/en/criteria/0#0.static_analysis_common_vulnerabilities - status: Active - version: 1.0.0 -- abbreviation: fuzzing_use - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-06-2025 - description: 'This indicator checks that If the software produced by the project - includes software written using a memory-unsafe language (e.g., C or C++), - then at least one dynamic tool (e.g., a fuzzer or web application scanner) - be routinely used in combination with a mechanism to detect memory safety - problems such as buffer overwrites. ' - identifier: - '@id': https://w3id.org/everse/i/indicators/fuzzing_use - keywords: - - fuzzing - - test - - code - name: Software uses fuzzing - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/safety - source: - name: 'OpenSSF Scorecard: Fuzzing' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#fuzzing - status: Active - version: 1.0.0 -- abbreviation: uses_tool_for_warnings_or_mistakes - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 27-06-2025 - description: This indicator checks that the project enables one or more compiler - warning flags, a "safe" language mode, or uses a separate "linter" tool to - look for code quality errors or common simple mistakes, if there is at least - one FLOSS tool that can implement this criterion in the selected language. - identifier: - '@id': https://w3id.org/everse/i/indicators/uses_tool_for_warnings_or_mistakes - keywords: - - linting - - code analysis - - fair - name: Software uses a tool for warnings or mistakes - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/maintainability - source: - - name: 'OpenSSF Best Practices badge: Warning Flags' - url: https://www.bestpractices.dev/en/criteria/0#0.warnings - - '@id': https://zenodo.org/records/10723608 - name: Ensure Software Quality - url: https://zenodo.org/records/10723608 - status: Active - version: 1.0.0 -- abbreviation: version_control_use - alternateName: FRSM-17 - author: - - '@type': schema:Organization - name: Elixir focus group - url: https://zenodo.org/communities/elixir/records - - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if a software project uses version - control. - identifier: - '@id': https://w3id.org/everse/i/indicators/version_control_use - keywords: - - version - - control - - fair - - repository - - identifier - name: Software makes use of version control - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - - name: 'Software Quality Indicators: extraction, categorisation and recommendations - from canonical sources' - url: https://doi.org/10.5281/zenodo.15474784 - - name: Reference and identification. RSMD-3.1 - url: https://fair-impact.github.io/RSMD-guidelines/3.Reference_identification/ - status: Active - version: 1.0.0 -- abbreviation: versioning_standards_use - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 14-07-2025 - description: This indicator aims to determine if the version (or versions) of - a software tool follows an established community convention like semantic - versioning (SemVer) or calendar versioning (CalVer). - identifier: - '@id': https://w3id.org/everse/i/indicators/versioning_standards_use - keywords: - - version - - versioning - - fair - - releases - name: Software follows versioning standards - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - '@id': https://doi.org/10.5281/zenodo.15535629 - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://doi.org/10.5281/zenodo.15535629 - status: Active - version: 1.0.0 From a0dca31ee083df2f60e3a949023f6657d8b04050 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 28 Nov 2025 01:57:45 +0000 Subject: [PATCH 02/47] Automated update of RSQKit data files --- _data/quality_dimensions.yml | 197 +++++++++++++++- _data/quality_indicators.yml | 425 +++++++++++++++++++++++++++++++++++ 2 files changed, 621 insertions(+), 1 deletion(-) diff --git a/_data/quality_dimensions.yml b/_data/quality_dimensions.yml index fe51488c..0a5386bb 100644 --- a/_data/quality_dimensions.yml +++ b/_data/quality_dimensions.yml @@ -1 +1,196 @@ -[] +- abbreviation: compatibility + description: "Degree to which a product, system or component can exchange information\ + \ with other products, systems or components, and/or perform its required\ + \ functions while sharing the same common environment and resources. This\ + \ characteristic is composed of the following sub-characteristics:\n -Co-existence\ + \ - Degree to which a product can perform its required functions efficiently\ + \ while sharing a common environment and resources with other products, without\ + \ detrimental impact on any other product.\n -Interoperability - Degree\ + \ to which a system, product or component can exchange information with other\ + \ products and mutually use the information that has been exchanged." + identifier: https://w3id.org/everse/i/dimensions/compatibility + name: Compatibility + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: fairness + description: 'FAIRness refers to the degree to which research software adheres + to the FAIR principles: Findable, Accessible, Interoperable, and Reusable. + These principles, adapted for research software, aim to enhance the discoverability, + accessibility, interoperability, and reusability of software, thereby maximizing + its value and impact in scientific research.' + identifier: https://w3id.org/everse/i/dimensions/fairness + name: FAIRness + source: + name: Introducing the FAIR Principles for research software + url: https://www.nature.com/articles/s41597-022-01710-x +- abbreviation: flexibility + description: "Degree to which a product can be adapted to changes in its requirements,\ + \ contexts of use or system environment. This characteristic is composed of\ + \ the following sub-characteristics:\n - Adaptability - Degree to which\ + \ a product or system can effectively and efficiently be adapted for or transferred\ + \ to different hardware, software or other operational or usage environments.\n\ + \ - Scalability - Degree to which a product can handle growing or shrinking\ + \ workloads or to adapt its capacity to handle variability.\n - Installability\ + \ - Degree of effectiveness and efficiency with which a product or system\ + \ can be successfully installed and/or uninstalled in a specified environment.\n\ + \ - Replaceability - Degree to which a product can replace another specified\ + \ software product for the same purpose in the same environment." + identifier: https://w3id.org/everse/i/dimensions/flexibility + name: Flexibility + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: functional_suitability + created: 03-04-2025 + description: "This characteristic represents the degree to which a product or\ + \ system provides functions that meet stated and implied needs when used under\ + \ specified conditions. This characteristic is composed of the following sub-characteristics:\ + \ \n Functional completeness - Degree to which the set of functions covers\ + \ all the specified tasks and intended users' objectives.\n Functional\ + \ correctness - Degree to which a product or system provides accurate results\ + \ when used by intended users.\n Functional appropriateness - Degree to\ + \ which the functions facilitate the accomplishment of specified tasks and\ + \ objectives." + identifier: https://w3id.org/everse/i/dimensions/functional_suitability + name: Functional suitability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: interaction_capability + description: "Degree to which a product or system can be interacted with by specified\ + \ users to exchange information via the user interface to complete specific\ + \ tasks in a variety of contexts of use. This characteristic is composed of\ + \ the following sub-characteristics:\n - Appropriateness recognizability\ + \ - Degree to which users can recognize whether a product or system is appropriate\ + \ for their needs.\n - Learnability - Degree to which the functions of\ + \ a product or system can be learnt to be used by specified users within a\ + \ specified amount of time.\n - Operability - Degree to which a product\ + \ or system has attributes that make it easy to operate and control.\n \ + \ - User error protection. Degree to which a system prevents users against\ + \ operation errors.\n - User engagement - Degree to which a user interface\ + \ presents functions and information in an inviting and motivating manner\ + \ encouraging continued interaction.\n - Inclusivity - Degree to which\ + \ a product or system can be used by people of various backgrounds (such as\ + \ people of various ages, abilities, cultures, ethnicities, languages, genders,\ + \ economic situations, etc.).\n - User assistance - Degree to which a product\ + \ can be used by people with the widest range of characteristics and capabilities\ + \ to achieve specified goals in a specified context of use.\n - Self-descriptiveness\ + \ - Degree to which a product presents appropriate information, where needed\ + \ by the user, to make its capabilities and use immediately obvious to the\ + \ user without excessive interactions with a product or other resources (such\ + \ as user documentation, help desks or other users)." + identifier: https://w3id.org/everse/i/dimensions/interaction_capability + name: Interaction Capability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: maintainability + description: "This characteristic represents the degree of effectiveness and efficiency\ + \ with which a product or system can be modified to improve it, correct it\ + \ or adapt it to changes in environment, and in requirements.This characteristic\ + \ is composed of the following sub-characteristics:\n - Modularity - Degree\ + \ to which a system or computer program is composed of discrete components\ + \ such that a change to one component has minimal impact on other components.\n\ + \ - Reusability - Degree to which a product can be used as an asset in\ + \ more than one system, or in building other assets.\n - Analysability\ + \ - Degree of effectiveness and efficiency with which it is possible to assess\ + \ the impact on a product or system of an intended change to one or more of\ + \ its parts, to diagnose a product for deficiencies or causes of failures,\ + \ or to identify parts to be modified.\n - Modifiability - Degree to which\ + \ a product or system can be effectively and efficiently modified without\ + \ introducing defects or degrading existing product quality.\n - Testability\ + \ - Degree of effectiveness and efficiency with which test criteria can be\ + \ established for a system, product or component and tests can be performed\ + \ to determine whether those criteria have been met." + identifier: https://w3id.org/everse/i/dimensions/maintainability + name: Maintainability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: performance_efficiency + description: "This characteristic represents the degree to which a product performs\ + \ its functions within specified time and throughput parameters and is efficient\ + \ in the use of resources (such as CPU, memory, storage, network devices,\ + \ energy, materials...) under specified conditions. This characteristic is\ + \ composed of the following sub-characteristics:\n -Time behaviour - Degree\ + \ to which the response time and throughput rates of a product or system,\ + \ when performing its functions, meet requirements.\n -Resource utilization\ + \ - Degree to which the amounts and types of resources used by a product or\ + \ system, when performing its functions, meet requirements.\n - Capacity\ + \ - Degree to which the maximum limits of a product or system parameter meet\ + \ requirements." + identifier: https://w3id.org/everse/i/dimensions/performance_efficiency + name: Performance Efficiency + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: reliability + description: "Degree to which a system, product or component performs specified\ + \ functions under specified conditions for a specified period of time. This\ + \ characteristic is composed of the following sub-characteristics:\n -\ + \ Faultlessness - Degree to which a system, product or component performs\ + \ specified functions without fault under normal operation.\n - Availability\ + \ - Degree to which a system, product or component is operational and accessible\ + \ when required for use.\n - Fault tolerance - Degree to which a system,\ + \ product or component operates as intended despite the presence of hardware\ + \ or software faults.\n - Recoverability - Degree to which, in the event\ + \ of an interruption or a failure, a product or system can recover the data\ + \ directly affected and re-establish the desired state of the system." + identifier: https://w3id.org/everse/i/dimensions/reliability + name: Reliability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: safety + description: "This characteristic represents the degree to which a product under\ + \ defined conditions to avoid a state in which human life, health, property,\ + \ or the environment is endangered. This characteristic is composed of the\ + \ following sub-characteristics:\n - Operational constraint - Degree to\ + \ which a product or system constrains its operation to within safe parameters\ + \ or states when encountering operational hazard.\n - Risk identification\ + \ - Degree to which a product can identify a course of events or operations\ + \ that can expose life, property or environment to unacceptable risk.\n \ + \ - Fail safe - Degree to which a product can automatically place itself\ + \ in a safe operating mode, or to revert to a safe condition in the event\ + \ of a failure.\n - Hazard warning - Degree to which a product or system\ + \ provides warnings of unacceptable risks to operations or internal controls\ + \ so that they can react in sufficient time to sustain safe operations.\n\ + \ - Safe integration - Degree to which a product can maintain safety during\ + \ and after integration with one or more components." + identifier: https://w3id.org/everse/i/dimensions/safety + name: Safety + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: security + description: "Degree to which a product or system defends against attack patterns\ + \ by malicious actors and protects information and data so that persons or\ + \ other products or systems have the degree of data access appropriate to\ + \ their types and levels of authorization. This characteristic is composed\ + \ of the following sub-characteristics:\n - Confidentiality - Degree to\ + \ which a product or system ensures that data are accessible only to those\ + \ authorized to have access.\n - Integrity - Degree to which a system,\ + \ product or component ensures that the state of its system and data are protected\ + \ from unauthorized modification or deletion either by malicious action or\ + \ computer error.\n - Non-repudiation - Degree to which actions or events\ + \ can be proven to have taken place so that the events or actions cannot be\ + \ repudiated later.\n - Accountability - Degree to which the actions of\ + \ an entity can be traced uniquely to the entity.\n - Authenticity - Degree\ + \ to which the identity of a subject or resource can be proved to be the one\ + \ claimed.\n - Resistance - Degree to which the product or system sustains\ + \ operations while under attack from a malicious actor." + identifier: https://w3id.org/everse/i/dimensions/security + name: Security + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: sustainability + description: The capacity of the software to endure. In other words, sustainability + means that the software will continue to be available in the future, on new + platforms, meeting new needs. + identifier: https://w3id.org/everse/i/dimensions/sustainability + name: Sustainability + source: + name: Defining Software Sustainability + url: https://danielskatzblog.wordpress.com/2016/09/13/defining-software-sustainability/ diff --git a/_data/quality_indicators.yml b/_data/quality_indicators.yml index c991bc7d..bbaa0497 100644 --- a/_data/quality_indicators.yml +++ b/_data/quality_indicators.yml @@ -344,3 +344,428 @@ url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#code-review status: Active version: 1.0.0 +- abbreviation: listed_in_registry + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-06-2025 + description: The target source code repository is in a disciplinary or community + registry (e.g ascl.net, bio.tools, swMath, RRID portal, RSD, WikiData, DataCite, + etc.) to ensure that software can be found and accessed. + identifier: + '@id': https://w3id.org/everse/i/indicators/listed_in_registry + keywords: + - repository + - fair + - software heritage, zenodo + name: Software is listed in a registry + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + '@id': https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ + name: Accessibility and preservation. RSMD 2.3 + url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/#accessibility-and-preservation + status: Active + version: 1.0.0 +- abbreviation: metadata_is_up_to_date + author: + - '@type': schema:Person + name: Tom François + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Thomas Vuillaume + contact: + - '@type': schema:Person + name: Tom François + - '@type': schema:Person + name: Daniel Garijo + created: 24-09-2025 + description: Metadata information reflects the current description of a software + project. This indicator ensures that the current project metadata provides + up to date, accurate and relevant information about a software component. + identifier: + '@id': https://w3id.org/everse/i/indicators/metadata_is_up_to_date + keywords: + - metadata + - software + - fair + - findability + - maintainability + name: Software has up-to-date metadata + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/maintainability + source: + - name: 'EOSC-SWRelMan-11: Metadata: Supportability, Maintainability, Availability.' + url: https://doi.org/10.5281/zenodo.10647227 + status: Active + version: 1.0.0 +- abbreviation: no_critical_vulnerability + author: + - '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + '@type': schema:Person + name: Tom François + schema:email: tom.francois@lapp.in2p3.fr + created: 03-04-2025 + description: Checks if reported critical vulnerabilities have been fixed + identifier: + '@id': https://w3id.org/everse/i/indicators/no_critical_vulnerability + keywords: + - security + - critical + - vulnerability + name: No critical vulnerabilities + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/security + source: + - '@id': https://www.bestpractices.dev/en/criteria/0#0.vulnerabilities_critical_fixed + name: OpenSSF Best practice Critical Vulnerability Fixed + status: Active + version: 1.0.0 +- abbreviation: no_leaked_credentials + author: + - '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + '@type': schema:Person + name: Tom François + schema:email: tom.francois@lapp.in2p3.fr + description: Checks if hardcoded secrets like passwords, API keys, and tokens + is stored in the public git repository + identifier: + '@id': https://w3id.org/everse/i/indicators/no_leaked_credentials + keywords: + - security + - credential + - leak + - secret + - password + name: No leaked credentials + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/security + source: + - '@id': https://www.bestpractices.dev/en/criteria/0#0.no_leaked_credentials + name: OpenSSF Best practice No Leaked Credentials + status: Active + version: 1.0.0 +- abbreviation: persistent_and_unique_identifier + alternateName: FRSM-01 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator tries to determine if the software identifier is based + on a suitable identifier scheme, and test it can be resolved. This is done + by checking if the identifier uses an identifier scheme contained in a list + of globally unique identifier schemes + identifier: + '@id': https://w3id.org/everse/i/indicators/persistent_and_unique_identifier + keywords: + - identifier + - unique + - fair + - persistent + - metadata + name: Software has persistent and unique identifier + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + status: Active + version: 1.0.0 +- abbreviation: repository_workflows + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator tries aims determine if a software project makes use + of workflows to automate processes like testing and deployment. + identifier: + '@id': https://w3id.org/everse/i/indicators/repository_workflows + keywords: + - workflows + - github + - fair + - repository + name: Software has ci/cd workflows in its repository + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/maintainability + source: + - name: 'OpenSSF Scorecard: CI-Tests' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#ci-tests + status: Active + version: 1.0.0 +- abbreviation: requirements_specified + alternateName: FRSM-13 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator tries to determine if the project specifies what is + required to use the software. + identifier: + '@id': https://w3id.org/everse/i/indicators/requirements_specified + keywords: + - documentation + - requirements + - dependencies + - fair + name: Software specifies requirements + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/flexibility + - '@id': https://w3id.org/everse/i/dimensions/maintainability + source: + - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + - name: 'RSMD Guidelines - Re-execute: dependencies and execution environment' + url: https://fair-impact.github.io/RSMD-guidelines/7.Re-execute/ + status: Active + version: 1.0.0 +- abbreviation: software_documentation + alternateName: FRSM-05 + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if a software project comes with + many forms of documentation like readme or readthedocs + identifier: + '@id': https://w3id.org/everse/i/indicators/software_documentation + keywords: + - documentation + - fair + - usage + - readme + name: Software has documentation + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/interaction_capability + source: + name: FLOSS Best Practices Criteria + url: https://www.bestpractices.dev/en/criteria/0#0.documentation_basics + status: Active + version: 1.0.0 +- abbreviation: software_has_tests + alternateName: FRSM-14 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: Evaluates the extent to which the software has been tested, including + unit tests, integration tests, and system tests, to ensure reliability and + correctness. + identifier: + '@id': https://w3id.org/everse/i/indicators/software_has_tests + keywords: + - test + - functionality + - fair + name: Software provides tests. + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/reliability + source: + name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + status: Active + version: 1.0.0 +- abbreviation: static_analysis_common_vulnerabilities + author: + '@type': Organization + name: OpenSSF + url: https://openssf.org/ + contactPoint: + '@type': schema:Person + email: thomas.vuillaume@lapp.in2p3.fr + name: Thomas Vuillaume + created: 03-04-2025 + description: At least one static code analysis tool used includes rules or techniques + to detect common vulnerabilities specific to the language or environment. + identifier: + '@id': https://w3id.org/everse/i/indicators/static_analysis_common_vulnerabilities + keywords: + - security + - vulnerabilities + - static analysis + name: has static analysis for common vulnerabilities + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/security + source: + '@id': https://www.bestpractices.dev/en/criteria/0 + name: FLOSS Best Practices Criteria (Passing Badge) + url: https://www.bestpractices.dev/en/criteria/0#0.static_analysis_common_vulnerabilities + status: Active + version: 1.0.0 +- abbreviation: fuzzing_use + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-06-2025 + description: 'This indicator checks that If the software produced by the project + includes software written using a memory-unsafe language (e.g., C or C++), + then at least one dynamic tool (e.g., a fuzzer or web application scanner) + be routinely used in combination with a mechanism to detect memory safety + problems such as buffer overwrites. ' + identifier: + '@id': https://w3id.org/everse/i/indicators/fuzzing_use + keywords: + - fuzzing + - test + - code + name: Software uses fuzzing + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/safety + source: + name: 'OpenSSF Scorecard: Fuzzing' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#fuzzing + status: Active + version: 1.0.0 +- abbreviation: uses_tool_for_warnings_or_mistakes + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 27-06-2025 + description: This indicator checks that the project enables one or more compiler + warning flags, a "safe" language mode, or uses a separate "linter" tool to + look for code quality errors or common simple mistakes, if there is at least + one FLOSS tool that can implement this criterion in the selected language. + identifier: + '@id': https://w3id.org/everse/i/indicators/uses_tool_for_warnings_or_mistakes + keywords: + - linting + - code analysis + - fair + name: Software uses a tool for warnings or mistakes + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/maintainability + source: + - name: 'OpenSSF Best Practices badge: Warning Flags' + url: https://www.bestpractices.dev/en/criteria/0#0.warnings + - '@id': https://zenodo.org/records/10723608 + name: Ensure Software Quality + url: https://zenodo.org/records/10723608 + status: Active + version: 1.0.0 +- abbreviation: version_control_use + alternateName: FRSM-17 + author: + - '@type': schema:Organization + name: Elixir focus group + url: https://zenodo.org/communities/elixir/records + - '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if a software project uses version + control. + identifier: + '@id': https://w3id.org/everse/i/indicators/version_control_use + keywords: + - version + - control + - fair + - repository + - identifier + name: Software makes use of version control + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + - name: 'Software Quality Indicators: extraction, categorisation and recommendations + from canonical sources' + url: https://doi.org/10.5281/zenodo.15474784 + - name: Reference and identification. RSMD-3.1 + url: https://fair-impact.github.io/RSMD-guidelines/3.Reference_identification/ + status: Active + version: 1.0.0 +- abbreviation: versioning_standards_use + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 14-07-2025 + description: This indicator aims to determine if the version (or versions) of + a software tool follows an established community convention like semantic + versioning (SemVer) or calendar versioning (CalVer). + identifier: + '@id': https://w3id.org/everse/i/indicators/versioning_standards_use + keywords: + - version + - versioning + - fair + - releases + name: Software follows versioning standards + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + '@id': https://doi.org/10.5281/zenodo.15535629 + name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://doi.org/10.5281/zenodo.15535629 + status: Active + version: 1.0.0 From b176cacab4ecffad817f62c5b1386c7b2cd2ab2d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 29 Nov 2025 01:57:17 +0000 Subject: [PATCH 03/47] Automated update of RSQKit data files --- _data/quality_dimensions.yml | 69 ------------------------------------ 1 file changed, 69 deletions(-) diff --git a/_data/quality_dimensions.yml b/_data/quality_dimensions.yml index 0a5386bb..c3725832 100644 --- a/_data/quality_dimensions.yml +++ b/_data/quality_dimensions.yml @@ -125,72 +125,3 @@ source: name: ISO/IEC 25010 standard url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: reliability - description: "Degree to which a system, product or component performs specified\ - \ functions under specified conditions for a specified period of time. This\ - \ characteristic is composed of the following sub-characteristics:\n -\ - \ Faultlessness - Degree to which a system, product or component performs\ - \ specified functions without fault under normal operation.\n - Availability\ - \ - Degree to which a system, product or component is operational and accessible\ - \ when required for use.\n - Fault tolerance - Degree to which a system,\ - \ product or component operates as intended despite the presence of hardware\ - \ or software faults.\n - Recoverability - Degree to which, in the event\ - \ of an interruption or a failure, a product or system can recover the data\ - \ directly affected and re-establish the desired state of the system." - identifier: https://w3id.org/everse/i/dimensions/reliability - name: Reliability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: safety - description: "This characteristic represents the degree to which a product under\ - \ defined conditions to avoid a state in which human life, health, property,\ - \ or the environment is endangered. This characteristic is composed of the\ - \ following sub-characteristics:\n - Operational constraint - Degree to\ - \ which a product or system constrains its operation to within safe parameters\ - \ or states when encountering operational hazard.\n - Risk identification\ - \ - Degree to which a product can identify a course of events or operations\ - \ that can expose life, property or environment to unacceptable risk.\n \ - \ - Fail safe - Degree to which a product can automatically place itself\ - \ in a safe operating mode, or to revert to a safe condition in the event\ - \ of a failure.\n - Hazard warning - Degree to which a product or system\ - \ provides warnings of unacceptable risks to operations or internal controls\ - \ so that they can react in sufficient time to sustain safe operations.\n\ - \ - Safe integration - Degree to which a product can maintain safety during\ - \ and after integration with one or more components." - identifier: https://w3id.org/everse/i/dimensions/safety - name: Safety - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: security - description: "Degree to which a product or system defends against attack patterns\ - \ by malicious actors and protects information and data so that persons or\ - \ other products or systems have the degree of data access appropriate to\ - \ their types and levels of authorization. This characteristic is composed\ - \ of the following sub-characteristics:\n - Confidentiality - Degree to\ - \ which a product or system ensures that data are accessible only to those\ - \ authorized to have access.\n - Integrity - Degree to which a system,\ - \ product or component ensures that the state of its system and data are protected\ - \ from unauthorized modification or deletion either by malicious action or\ - \ computer error.\n - Non-repudiation - Degree to which actions or events\ - \ can be proven to have taken place so that the events or actions cannot be\ - \ repudiated later.\n - Accountability - Degree to which the actions of\ - \ an entity can be traced uniquely to the entity.\n - Authenticity - Degree\ - \ to which the identity of a subject or resource can be proved to be the one\ - \ claimed.\n - Resistance - Degree to which the product or system sustains\ - \ operations while under attack from a malicious actor." - identifier: https://w3id.org/everse/i/dimensions/security - name: Security - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: sustainability - description: The capacity of the software to endure. In other words, sustainability - means that the software will continue to be available in the future, on new - platforms, meeting new needs. - identifier: https://w3id.org/everse/i/dimensions/sustainability - name: Sustainability - source: - name: Defining Software Sustainability - url: https://danielskatzblog.wordpress.com/2016/09/13/defining-software-sustainability/ From a5d08d55724fdb89b13713597680ca09f5b70297 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 30 Nov 2025 02:11:39 +0000 Subject: [PATCH 04/47] Automated update of RSQKit data files --- _data/quality_dimensions.yml | 69 ++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/_data/quality_dimensions.yml b/_data/quality_dimensions.yml index c3725832..0a5386bb 100644 --- a/_data/quality_dimensions.yml +++ b/_data/quality_dimensions.yml @@ -125,3 +125,72 @@ source: name: ISO/IEC 25010 standard url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: reliability + description: "Degree to which a system, product or component performs specified\ + \ functions under specified conditions for a specified period of time. This\ + \ characteristic is composed of the following sub-characteristics:\n -\ + \ Faultlessness - Degree to which a system, product or component performs\ + \ specified functions without fault under normal operation.\n - Availability\ + \ - Degree to which a system, product or component is operational and accessible\ + \ when required for use.\n - Fault tolerance - Degree to which a system,\ + \ product or component operates as intended despite the presence of hardware\ + \ or software faults.\n - Recoverability - Degree to which, in the event\ + \ of an interruption or a failure, a product or system can recover the data\ + \ directly affected and re-establish the desired state of the system." + identifier: https://w3id.org/everse/i/dimensions/reliability + name: Reliability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: safety + description: "This characteristic represents the degree to which a product under\ + \ defined conditions to avoid a state in which human life, health, property,\ + \ or the environment is endangered. This characteristic is composed of the\ + \ following sub-characteristics:\n - Operational constraint - Degree to\ + \ which a product or system constrains its operation to within safe parameters\ + \ or states when encountering operational hazard.\n - Risk identification\ + \ - Degree to which a product can identify a course of events or operations\ + \ that can expose life, property or environment to unacceptable risk.\n \ + \ - Fail safe - Degree to which a product can automatically place itself\ + \ in a safe operating mode, or to revert to a safe condition in the event\ + \ of a failure.\n - Hazard warning - Degree to which a product or system\ + \ provides warnings of unacceptable risks to operations or internal controls\ + \ so that they can react in sufficient time to sustain safe operations.\n\ + \ - Safe integration - Degree to which a product can maintain safety during\ + \ and after integration with one or more components." + identifier: https://w3id.org/everse/i/dimensions/safety + name: Safety + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: security + description: "Degree to which a product or system defends against attack patterns\ + \ by malicious actors and protects information and data so that persons or\ + \ other products or systems have the degree of data access appropriate to\ + \ their types and levels of authorization. This characteristic is composed\ + \ of the following sub-characteristics:\n - Confidentiality - Degree to\ + \ which a product or system ensures that data are accessible only to those\ + \ authorized to have access.\n - Integrity - Degree to which a system,\ + \ product or component ensures that the state of its system and data are protected\ + \ from unauthorized modification or deletion either by malicious action or\ + \ computer error.\n - Non-repudiation - Degree to which actions or events\ + \ can be proven to have taken place so that the events or actions cannot be\ + \ repudiated later.\n - Accountability - Degree to which the actions of\ + \ an entity can be traced uniquely to the entity.\n - Authenticity - Degree\ + \ to which the identity of a subject or resource can be proved to be the one\ + \ claimed.\n - Resistance - Degree to which the product or system sustains\ + \ operations while under attack from a malicious actor." + identifier: https://w3id.org/everse/i/dimensions/security + name: Security + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: sustainability + description: The capacity of the software to endure. In other words, sustainability + means that the software will continue to be available in the future, on new + platforms, meeting new needs. + identifier: https://w3id.org/everse/i/dimensions/sustainability + name: Sustainability + source: + name: Defining Software Sustainability + url: https://danielskatzblog.wordpress.com/2016/09/13/defining-software-sustainability/ From e2da104139fe6c3f592987955e565ee06da28219 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 1 Dec 2025 02:25:54 +0000 Subject: [PATCH 05/47] Automated update of RSQKit data files --- _data/quality_dimensions.yml | 197 +-------- _data/quality_indicators.yml | 772 +---------------------------------- 2 files changed, 2 insertions(+), 967 deletions(-) diff --git a/_data/quality_dimensions.yml b/_data/quality_dimensions.yml index 0a5386bb..fe51488c 100644 --- a/_data/quality_dimensions.yml +++ b/_data/quality_dimensions.yml @@ -1,196 +1 @@ -- abbreviation: compatibility - description: "Degree to which a product, system or component can exchange information\ - \ with other products, systems or components, and/or perform its required\ - \ functions while sharing the same common environment and resources. This\ - \ characteristic is composed of the following sub-characteristics:\n -Co-existence\ - \ - Degree to which a product can perform its required functions efficiently\ - \ while sharing a common environment and resources with other products, without\ - \ detrimental impact on any other product.\n -Interoperability - Degree\ - \ to which a system, product or component can exchange information with other\ - \ products and mutually use the information that has been exchanged." - identifier: https://w3id.org/everse/i/dimensions/compatibility - name: Compatibility - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: fairness - description: 'FAIRness refers to the degree to which research software adheres - to the FAIR principles: Findable, Accessible, Interoperable, and Reusable. - These principles, adapted for research software, aim to enhance the discoverability, - accessibility, interoperability, and reusability of software, thereby maximizing - its value and impact in scientific research.' - identifier: https://w3id.org/everse/i/dimensions/fairness - name: FAIRness - source: - name: Introducing the FAIR Principles for research software - url: https://www.nature.com/articles/s41597-022-01710-x -- abbreviation: flexibility - description: "Degree to which a product can be adapted to changes in its requirements,\ - \ contexts of use or system environment. This characteristic is composed of\ - \ the following sub-characteristics:\n - Adaptability - Degree to which\ - \ a product or system can effectively and efficiently be adapted for or transferred\ - \ to different hardware, software or other operational or usage environments.\n\ - \ - Scalability - Degree to which a product can handle growing or shrinking\ - \ workloads or to adapt its capacity to handle variability.\n - Installability\ - \ - Degree of effectiveness and efficiency with which a product or system\ - \ can be successfully installed and/or uninstalled in a specified environment.\n\ - \ - Replaceability - Degree to which a product can replace another specified\ - \ software product for the same purpose in the same environment." - identifier: https://w3id.org/everse/i/dimensions/flexibility - name: Flexibility - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: functional_suitability - created: 03-04-2025 - description: "This characteristic represents the degree to which a product or\ - \ system provides functions that meet stated and implied needs when used under\ - \ specified conditions. This characteristic is composed of the following sub-characteristics:\ - \ \n Functional completeness - Degree to which the set of functions covers\ - \ all the specified tasks and intended users' objectives.\n Functional\ - \ correctness - Degree to which a product or system provides accurate results\ - \ when used by intended users.\n Functional appropriateness - Degree to\ - \ which the functions facilitate the accomplishment of specified tasks and\ - \ objectives." - identifier: https://w3id.org/everse/i/dimensions/functional_suitability - name: Functional suitability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: interaction_capability - description: "Degree to which a product or system can be interacted with by specified\ - \ users to exchange information via the user interface to complete specific\ - \ tasks in a variety of contexts of use. This characteristic is composed of\ - \ the following sub-characteristics:\n - Appropriateness recognizability\ - \ - Degree to which users can recognize whether a product or system is appropriate\ - \ for their needs.\n - Learnability - Degree to which the functions of\ - \ a product or system can be learnt to be used by specified users within a\ - \ specified amount of time.\n - Operability - Degree to which a product\ - \ or system has attributes that make it easy to operate and control.\n \ - \ - User error protection. Degree to which a system prevents users against\ - \ operation errors.\n - User engagement - Degree to which a user interface\ - \ presents functions and information in an inviting and motivating manner\ - \ encouraging continued interaction.\n - Inclusivity - Degree to which\ - \ a product or system can be used by people of various backgrounds (such as\ - \ people of various ages, abilities, cultures, ethnicities, languages, genders,\ - \ economic situations, etc.).\n - User assistance - Degree to which a product\ - \ can be used by people with the widest range of characteristics and capabilities\ - \ to achieve specified goals in a specified context of use.\n - Self-descriptiveness\ - \ - Degree to which a product presents appropriate information, where needed\ - \ by the user, to make its capabilities and use immediately obvious to the\ - \ user without excessive interactions with a product or other resources (such\ - \ as user documentation, help desks or other users)." - identifier: https://w3id.org/everse/i/dimensions/interaction_capability - name: Interaction Capability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: maintainability - description: "This characteristic represents the degree of effectiveness and efficiency\ - \ with which a product or system can be modified to improve it, correct it\ - \ or adapt it to changes in environment, and in requirements.This characteristic\ - \ is composed of the following sub-characteristics:\n - Modularity - Degree\ - \ to which a system or computer program is composed of discrete components\ - \ such that a change to one component has minimal impact on other components.\n\ - \ - Reusability - Degree to which a product can be used as an asset in\ - \ more than one system, or in building other assets.\n - Analysability\ - \ - Degree of effectiveness and efficiency with which it is possible to assess\ - \ the impact on a product or system of an intended change to one or more of\ - \ its parts, to diagnose a product for deficiencies or causes of failures,\ - \ or to identify parts to be modified.\n - Modifiability - Degree to which\ - \ a product or system can be effectively and efficiently modified without\ - \ introducing defects or degrading existing product quality.\n - Testability\ - \ - Degree of effectiveness and efficiency with which test criteria can be\ - \ established for a system, product or component and tests can be performed\ - \ to determine whether those criteria have been met." - identifier: https://w3id.org/everse/i/dimensions/maintainability - name: Maintainability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: performance_efficiency - description: "This characteristic represents the degree to which a product performs\ - \ its functions within specified time and throughput parameters and is efficient\ - \ in the use of resources (such as CPU, memory, storage, network devices,\ - \ energy, materials...) under specified conditions. This characteristic is\ - \ composed of the following sub-characteristics:\n -Time behaviour - Degree\ - \ to which the response time and throughput rates of a product or system,\ - \ when performing its functions, meet requirements.\n -Resource utilization\ - \ - Degree to which the amounts and types of resources used by a product or\ - \ system, when performing its functions, meet requirements.\n - Capacity\ - \ - Degree to which the maximum limits of a product or system parameter meet\ - \ requirements." - identifier: https://w3id.org/everse/i/dimensions/performance_efficiency - name: Performance Efficiency - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: reliability - description: "Degree to which a system, product or component performs specified\ - \ functions under specified conditions for a specified period of time. This\ - \ characteristic is composed of the following sub-characteristics:\n -\ - \ Faultlessness - Degree to which a system, product or component performs\ - \ specified functions without fault under normal operation.\n - Availability\ - \ - Degree to which a system, product or component is operational and accessible\ - \ when required for use.\n - Fault tolerance - Degree to which a system,\ - \ product or component operates as intended despite the presence of hardware\ - \ or software faults.\n - Recoverability - Degree to which, in the event\ - \ of an interruption or a failure, a product or system can recover the data\ - \ directly affected and re-establish the desired state of the system." - identifier: https://w3id.org/everse/i/dimensions/reliability - name: Reliability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: safety - description: "This characteristic represents the degree to which a product under\ - \ defined conditions to avoid a state in which human life, health, property,\ - \ or the environment is endangered. This characteristic is composed of the\ - \ following sub-characteristics:\n - Operational constraint - Degree to\ - \ which a product or system constrains its operation to within safe parameters\ - \ or states when encountering operational hazard.\n - Risk identification\ - \ - Degree to which a product can identify a course of events or operations\ - \ that can expose life, property or environment to unacceptable risk.\n \ - \ - Fail safe - Degree to which a product can automatically place itself\ - \ in a safe operating mode, or to revert to a safe condition in the event\ - \ of a failure.\n - Hazard warning - Degree to which a product or system\ - \ provides warnings of unacceptable risks to operations or internal controls\ - \ so that they can react in sufficient time to sustain safe operations.\n\ - \ - Safe integration - Degree to which a product can maintain safety during\ - \ and after integration with one or more components." - identifier: https://w3id.org/everse/i/dimensions/safety - name: Safety - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: security - description: "Degree to which a product or system defends against attack patterns\ - \ by malicious actors and protects information and data so that persons or\ - \ other products or systems have the degree of data access appropriate to\ - \ their types and levels of authorization. This characteristic is composed\ - \ of the following sub-characteristics:\n - Confidentiality - Degree to\ - \ which a product or system ensures that data are accessible only to those\ - \ authorized to have access.\n - Integrity - Degree to which a system,\ - \ product or component ensures that the state of its system and data are protected\ - \ from unauthorized modification or deletion either by malicious action or\ - \ computer error.\n - Non-repudiation - Degree to which actions or events\ - \ can be proven to have taken place so that the events or actions cannot be\ - \ repudiated later.\n - Accountability - Degree to which the actions of\ - \ an entity can be traced uniquely to the entity.\n - Authenticity - Degree\ - \ to which the identity of a subject or resource can be proved to be the one\ - \ claimed.\n - Resistance - Degree to which the product or system sustains\ - \ operations while under attack from a malicious actor." - identifier: https://w3id.org/everse/i/dimensions/security - name: Security - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: sustainability - description: The capacity of the software to endure. In other words, sustainability - means that the software will continue to be available in the future, on new - platforms, meeting new needs. - identifier: https://w3id.org/everse/i/dimensions/sustainability - name: Sustainability - source: - name: Defining Software Sustainability - url: https://danielskatzblog.wordpress.com/2016/09/13/defining-software-sustainability/ +[] diff --git a/_data/quality_indicators.yml b/_data/quality_indicators.yml index bbaa0497..fe51488c 100644 --- a/_data/quality_indicators.yml +++ b/_data/quality_indicators.yml @@ -1,771 +1 @@ -- abbreviation: archived_in_scholarly_repository - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-06-2025 - description: 'The source code repository is archived in a scholarly repository - (e.g Zenodo, HAL) to ensure that software can be found and accessed in a scholarly - context ' - identifier: - '@id': https://w3id.org/everse/i/indicators/archived_in_scholarly_repository - keywords: - - repository - - fair - - scholar - name: Software is archived in a scholarly repository - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - '@id': https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ - name: Accessibility and preservation. RSMD 2.2 - url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/#accessibility-and-preservation - status: Active - version: 1.0.0 -- abbreviation: archived_in_software_heritage - alternateName: FRSM-08 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-06-2025 - description: The source code repository is found in the universal source code - archive, Software Heritage, to ensure long-term access to the full development - history. - identifier: - '@id': https://w3id.org/everse/i/indicators/archived_in_software_heritage - keywords: - - repository - - fair - - software heritage - name: Software is archived in Software Heritage - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - '@id': https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ - name: Accessibility and preservation. RSMD 2.1 - url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/#accessibility-and-preservation - status: Active - version: 1.0.0 -- abbreviation: codemeta_completeness - author: - - '@type': schema:Person - name: Thomas Vuillaume - - '@type': schema:Person - name: Daniel Garijo - contact: - '@type': Person - name: Thomas Vuillaume - created: 20-03-2025 - description: Indicator that checks the completeness of a codemeta.json file, i.e., - the percentage of properties that are filled with metadata. This indicator - does not assess the quality of the metadata fields available. - identifier: - '@id': https://w3id.org/everse/i/indicators/codemeta_completeness - keywords: - - codemeta - - metadata - - fair - name: CodeMeta completeness - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - status: Active - version: 1.0.0 -- abbreviation: dependency_management - author: - '@type': Person - name: Faruk Diblen - contact: - '@type': Person - name: Faruk Diblen - created: 03-04-2025 - description: Reviews how external libraries and dependencies are managed to ensure - compatibility and security. - identifier: - '@id': https://w3id.org/everse/i/indicators/dependency_management - keywords: - - sustaninability - - dependencies - name: Software has dependency management solution - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/sustainability - - '@id': https://w3id.org/everse/i/dimensions/security - - '@id': https://w3id.org/everse/i/dimensions/compatibility - source: - - identifier: https://zenodo.org/record/14852424 - name: 'Software Quality Indicators from BioHackathon 2024 (Sheet: Sustanability, - Row: Su7)' - url: https://zenodo.org/records/14852424/files/Software%20Quality%20Indicators.xlsx - - name: RSMD checklist - url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ - status: Active - version: 1.0.0 -- abbreviation: descriptive_metadata - alternateName: FRSM-06 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: 'This indicator aims to determine if a software component comes with - descriptive metadata that provides information. This includes, but is not - limited to: name, domain, programming language, date created, date of first - publication, keywords, related links, etc..' - identifier: - '@id': https://w3id.org/everse/i/indicators/descriptive_metadata - keywords: - - metadata - - software - - fair - - findability - name: Software has descriptive metadata - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - - name: Description & classification. RSMD-4.1 - url: https://fair-impact.github.io/RSMD-guidelines/4.Description_Classification/ - status: Active - version: 1.0.0 -- abbreviation: has_ci-tests - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if the project runs tests before - pull requests are merged. - identifier: - '@id': https://w3id.org/everse/i/indicators/software_has_ci-tests - keywords: - - continuous - - integration - - test - name: Software has continuous integration tests - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/maintainability - source: - name: 'OpenSSF Scorecard: CI-Tests' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#ci-tests - status: Active - version: 1.0.0 -- abbreviation: software_has_citation - alternateName: FRSM-12 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if the project uses a citation to - reference contributors and authors (e.g., through a CFF file, in the README, - etc). - identifier: - '@id': https://w3id.org/everse/i/indicators/software_has_citation - keywords: - - citation - - metadata - - fair - - contributors - name: Software uses citation - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - status: Active - version: 1.0.0 -- abbreviation: software_has_license - alternateName: FRSM-15 - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This check tries to determine if the project has published a license - identifier: - '@id': https://w3id.org/everse/i/indicators/software_has_license - keywords: - - license - - metadata - - fair - name: Software has license - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - - name: 'OpenSSF Scorecard: License' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#license - - name: Reuse, licensing and legal aspects. RSMD-6.2 - url: https://fair-impact.github.io/RSMD-guidelines/6.Reuse_legal/ - status: Active - version: 1.0.0 -- abbreviation: has_no_linting_issues - alternateName: has_no_linting_issues - author: - '@type': schema:Organization - name: Super-Linter - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-06-2025 - description: The project addresses or resolves warnings identified by compilers, - safe modes, or linters. - identifier: - '@id': https://w3id.org/everse/i/indicators/has_no_linting_issues - keywords: - - linting - - code analysis - - fair - name: Software has no linting issues - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/maintainability - source: - - name: Super-Linter - url: https://github.com/super-linter/super-linter - - name: OpenSSF best practices - url: https://www.bestpractices.dev/en/criteria/0#0.warnings_fixed - status: Active - version: 1.0.0 -- abbreviation: has_published_package - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if a software project is published - as a downloadable package. - identifier: - '@id': https://w3id.org/everse/i/indicators/has_published_package - keywords: - - release - - fair - - package - - packaging - name: Software is published as a downloadable package - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/flexibility - source: - name: 'OpenSSF Scorecard: Packaging' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#packaging - status: Active - version: 1.0.0 -- abbreviation: has_releases - alternateName: FRSM-03 - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: To enable collaborative review, the project's source repository MUST - include interim versions for review between releases; it MUST NOT include - only final releases. This indicator determines if a software project has releases. - This can be achieved by looking for tags or using software that retrieves - related data. - identifier: - '@id': https://w3id.org/everse/i/indicators/has_releases - keywords: - - releases - - repository - - fair - name: Software has releases - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/maintainability - - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - name: OpenSSF Best Practices (change control) - url: https://www.bestpractices.dev/en/criteria/0#0.repo_interim - status: Active - version: 1.0.0 -- abbreviation: human_code_review_requirement - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if a software project requires human - code review before pull requests. - identifier: - '@id': https://w3id.org/everse/i/indicators/human_code_review_requirement - keywords: - - human-in-the-loop - - pull request - - review - name: Software requires human code review. - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/functional_suitability - source: - name: 'OpenSSF Scorecard: Code-Review' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#code-review - status: Active - version: 1.0.0 -- abbreviation: listed_in_registry - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-06-2025 - description: The target source code repository is in a disciplinary or community - registry (e.g ascl.net, bio.tools, swMath, RRID portal, RSD, WikiData, DataCite, - etc.) to ensure that software can be found and accessed. - identifier: - '@id': https://w3id.org/everse/i/indicators/listed_in_registry - keywords: - - repository - - fair - - software heritage, zenodo - name: Software is listed in a registry - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - '@id': https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ - name: Accessibility and preservation. RSMD 2.3 - url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/#accessibility-and-preservation - status: Active - version: 1.0.0 -- abbreviation: metadata_is_up_to_date - author: - - '@type': schema:Person - name: Tom François - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Thomas Vuillaume - contact: - - '@type': schema:Person - name: Tom François - - '@type': schema:Person - name: Daniel Garijo - created: 24-09-2025 - description: Metadata information reflects the current description of a software - project. This indicator ensures that the current project metadata provides - up to date, accurate and relevant information about a software component. - identifier: - '@id': https://w3id.org/everse/i/indicators/metadata_is_up_to_date - keywords: - - metadata - - software - - fair - - findability - - maintainability - name: Software has up-to-date metadata - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/maintainability - source: - - name: 'EOSC-SWRelMan-11: Metadata: Supportability, Maintainability, Availability.' - url: https://doi.org/10.5281/zenodo.10647227 - status: Active - version: 1.0.0 -- abbreviation: no_critical_vulnerability - author: - - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - '@type': schema:Person - name: Tom François - schema:email: tom.francois@lapp.in2p3.fr - created: 03-04-2025 - description: Checks if reported critical vulnerabilities have been fixed - identifier: - '@id': https://w3id.org/everse/i/indicators/no_critical_vulnerability - keywords: - - security - - critical - - vulnerability - name: No critical vulnerabilities - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/security - source: - - '@id': https://www.bestpractices.dev/en/criteria/0#0.vulnerabilities_critical_fixed - name: OpenSSF Best practice Critical Vulnerability Fixed - status: Active - version: 1.0.0 -- abbreviation: no_leaked_credentials - author: - - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - '@type': schema:Person - name: Tom François - schema:email: tom.francois@lapp.in2p3.fr - description: Checks if hardcoded secrets like passwords, API keys, and tokens - is stored in the public git repository - identifier: - '@id': https://w3id.org/everse/i/indicators/no_leaked_credentials - keywords: - - security - - credential - - leak - - secret - - password - name: No leaked credentials - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/security - source: - - '@id': https://www.bestpractices.dev/en/criteria/0#0.no_leaked_credentials - name: OpenSSF Best practice No Leaked Credentials - status: Active - version: 1.0.0 -- abbreviation: persistent_and_unique_identifier - alternateName: FRSM-01 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator tries to determine if the software identifier is based - on a suitable identifier scheme, and test it can be resolved. This is done - by checking if the identifier uses an identifier scheme contained in a list - of globally unique identifier schemes - identifier: - '@id': https://w3id.org/everse/i/indicators/persistent_and_unique_identifier - keywords: - - identifier - - unique - - fair - - persistent - - metadata - name: Software has persistent and unique identifier - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - status: Active - version: 1.0.0 -- abbreviation: repository_workflows - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator tries aims determine if a software project makes use - of workflows to automate processes like testing and deployment. - identifier: - '@id': https://w3id.org/everse/i/indicators/repository_workflows - keywords: - - workflows - - github - - fair - - repository - name: Software has ci/cd workflows in its repository - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/maintainability - source: - - name: 'OpenSSF Scorecard: CI-Tests' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#ci-tests - status: Active - version: 1.0.0 -- abbreviation: requirements_specified - alternateName: FRSM-13 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator tries to determine if the project specifies what is - required to use the software. - identifier: - '@id': https://w3id.org/everse/i/indicators/requirements_specified - keywords: - - documentation - - requirements - - dependencies - - fair - name: Software specifies requirements - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/flexibility - - '@id': https://w3id.org/everse/i/dimensions/maintainability - source: - - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - - name: 'RSMD Guidelines - Re-execute: dependencies and execution environment' - url: https://fair-impact.github.io/RSMD-guidelines/7.Re-execute/ - status: Active - version: 1.0.0 -- abbreviation: software_documentation - alternateName: FRSM-05 - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if a software project comes with - many forms of documentation like readme or readthedocs - identifier: - '@id': https://w3id.org/everse/i/indicators/software_documentation - keywords: - - documentation - - fair - - usage - - readme - name: Software has documentation - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/interaction_capability - source: - name: FLOSS Best Practices Criteria - url: https://www.bestpractices.dev/en/criteria/0#0.documentation_basics - status: Active - version: 1.0.0 -- abbreviation: software_has_tests - alternateName: FRSM-14 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: Evaluates the extent to which the software has been tested, including - unit tests, integration tests, and system tests, to ensure reliability and - correctness. - identifier: - '@id': https://w3id.org/everse/i/indicators/software_has_tests - keywords: - - test - - functionality - - fair - name: Software provides tests. - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/reliability - source: - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - status: Active - version: 1.0.0 -- abbreviation: static_analysis_common_vulnerabilities - author: - '@type': Organization - name: OpenSSF - url: https://openssf.org/ - contactPoint: - '@type': schema:Person - email: thomas.vuillaume@lapp.in2p3.fr - name: Thomas Vuillaume - created: 03-04-2025 - description: At least one static code analysis tool used includes rules or techniques - to detect common vulnerabilities specific to the language or environment. - identifier: - '@id': https://w3id.org/everse/i/indicators/static_analysis_common_vulnerabilities - keywords: - - security - - vulnerabilities - - static analysis - name: has static analysis for common vulnerabilities - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/security - source: - '@id': https://www.bestpractices.dev/en/criteria/0 - name: FLOSS Best Practices Criteria (Passing Badge) - url: https://www.bestpractices.dev/en/criteria/0#0.static_analysis_common_vulnerabilities - status: Active - version: 1.0.0 -- abbreviation: fuzzing_use - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-06-2025 - description: 'This indicator checks that If the software produced by the project - includes software written using a memory-unsafe language (e.g., C or C++), - then at least one dynamic tool (e.g., a fuzzer or web application scanner) - be routinely used in combination with a mechanism to detect memory safety - problems such as buffer overwrites. ' - identifier: - '@id': https://w3id.org/everse/i/indicators/fuzzing_use - keywords: - - fuzzing - - test - - code - name: Software uses fuzzing - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/safety - source: - name: 'OpenSSF Scorecard: Fuzzing' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#fuzzing - status: Active - version: 1.0.0 -- abbreviation: uses_tool_for_warnings_or_mistakes - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 27-06-2025 - description: This indicator checks that the project enables one or more compiler - warning flags, a "safe" language mode, or uses a separate "linter" tool to - look for code quality errors or common simple mistakes, if there is at least - one FLOSS tool that can implement this criterion in the selected language. - identifier: - '@id': https://w3id.org/everse/i/indicators/uses_tool_for_warnings_or_mistakes - keywords: - - linting - - code analysis - - fair - name: Software uses a tool for warnings or mistakes - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/maintainability - source: - - name: 'OpenSSF Best Practices badge: Warning Flags' - url: https://www.bestpractices.dev/en/criteria/0#0.warnings - - '@id': https://zenodo.org/records/10723608 - name: Ensure Software Quality - url: https://zenodo.org/records/10723608 - status: Active - version: 1.0.0 -- abbreviation: version_control_use - alternateName: FRSM-17 - author: - - '@type': schema:Organization - name: Elixir focus group - url: https://zenodo.org/communities/elixir/records - - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if a software project uses version - control. - identifier: - '@id': https://w3id.org/everse/i/indicators/version_control_use - keywords: - - version - - control - - fair - - repository - - identifier - name: Software makes use of version control - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - - name: 'Software Quality Indicators: extraction, categorisation and recommendations - from canonical sources' - url: https://doi.org/10.5281/zenodo.15474784 - - name: Reference and identification. RSMD-3.1 - url: https://fair-impact.github.io/RSMD-guidelines/3.Reference_identification/ - status: Active - version: 1.0.0 -- abbreviation: versioning_standards_use - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 14-07-2025 - description: This indicator aims to determine if the version (or versions) of - a software tool follows an established community convention like semantic - versioning (SemVer) or calendar versioning (CalVer). - identifier: - '@id': https://w3id.org/everse/i/indicators/versioning_standards_use - keywords: - - version - - versioning - - fair - - releases - name: Software follows versioning standards - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - '@id': https://doi.org/10.5281/zenodo.15535629 - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://doi.org/10.5281/zenodo.15535629 - status: Active - version: 1.0.0 +[] From 144f0743b81362f7c5881e9da2cacfc25611c8d7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 2 Dec 2025 02:02:28 +0000 Subject: [PATCH 06/47] Automated update of RSQKit data files --- _data/quality_dimensions.yml | 197 ++++++++- _data/quality_indicators.yml | 772 ++++++++++++++++++++++++++++++++++- 2 files changed, 967 insertions(+), 2 deletions(-) diff --git a/_data/quality_dimensions.yml b/_data/quality_dimensions.yml index fe51488c..0a5386bb 100644 --- a/_data/quality_dimensions.yml +++ b/_data/quality_dimensions.yml @@ -1 +1,196 @@ -[] +- abbreviation: compatibility + description: "Degree to which a product, system or component can exchange information\ + \ with other products, systems or components, and/or perform its required\ + \ functions while sharing the same common environment and resources. This\ + \ characteristic is composed of the following sub-characteristics:\n -Co-existence\ + \ - Degree to which a product can perform its required functions efficiently\ + \ while sharing a common environment and resources with other products, without\ + \ detrimental impact on any other product.\n -Interoperability - Degree\ + \ to which a system, product or component can exchange information with other\ + \ products and mutually use the information that has been exchanged." + identifier: https://w3id.org/everse/i/dimensions/compatibility + name: Compatibility + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: fairness + description: 'FAIRness refers to the degree to which research software adheres + to the FAIR principles: Findable, Accessible, Interoperable, and Reusable. + These principles, adapted for research software, aim to enhance the discoverability, + accessibility, interoperability, and reusability of software, thereby maximizing + its value and impact in scientific research.' + identifier: https://w3id.org/everse/i/dimensions/fairness + name: FAIRness + source: + name: Introducing the FAIR Principles for research software + url: https://www.nature.com/articles/s41597-022-01710-x +- abbreviation: flexibility + description: "Degree to which a product can be adapted to changes in its requirements,\ + \ contexts of use or system environment. This characteristic is composed of\ + \ the following sub-characteristics:\n - Adaptability - Degree to which\ + \ a product or system can effectively and efficiently be adapted for or transferred\ + \ to different hardware, software or other operational or usage environments.\n\ + \ - Scalability - Degree to which a product can handle growing or shrinking\ + \ workloads or to adapt its capacity to handle variability.\n - Installability\ + \ - Degree of effectiveness and efficiency with which a product or system\ + \ can be successfully installed and/or uninstalled in a specified environment.\n\ + \ - Replaceability - Degree to which a product can replace another specified\ + \ software product for the same purpose in the same environment." + identifier: https://w3id.org/everse/i/dimensions/flexibility + name: Flexibility + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: functional_suitability + created: 03-04-2025 + description: "This characteristic represents the degree to which a product or\ + \ system provides functions that meet stated and implied needs when used under\ + \ specified conditions. This characteristic is composed of the following sub-characteristics:\ + \ \n Functional completeness - Degree to which the set of functions covers\ + \ all the specified tasks and intended users' objectives.\n Functional\ + \ correctness - Degree to which a product or system provides accurate results\ + \ when used by intended users.\n Functional appropriateness - Degree to\ + \ which the functions facilitate the accomplishment of specified tasks and\ + \ objectives." + identifier: https://w3id.org/everse/i/dimensions/functional_suitability + name: Functional suitability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: interaction_capability + description: "Degree to which a product or system can be interacted with by specified\ + \ users to exchange information via the user interface to complete specific\ + \ tasks in a variety of contexts of use. This characteristic is composed of\ + \ the following sub-characteristics:\n - Appropriateness recognizability\ + \ - Degree to which users can recognize whether a product or system is appropriate\ + \ for their needs.\n - Learnability - Degree to which the functions of\ + \ a product or system can be learnt to be used by specified users within a\ + \ specified amount of time.\n - Operability - Degree to which a product\ + \ or system has attributes that make it easy to operate and control.\n \ + \ - User error protection. Degree to which a system prevents users against\ + \ operation errors.\n - User engagement - Degree to which a user interface\ + \ presents functions and information in an inviting and motivating manner\ + \ encouraging continued interaction.\n - Inclusivity - Degree to which\ + \ a product or system can be used by people of various backgrounds (such as\ + \ people of various ages, abilities, cultures, ethnicities, languages, genders,\ + \ economic situations, etc.).\n - User assistance - Degree to which a product\ + \ can be used by people with the widest range of characteristics and capabilities\ + \ to achieve specified goals in a specified context of use.\n - Self-descriptiveness\ + \ - Degree to which a product presents appropriate information, where needed\ + \ by the user, to make its capabilities and use immediately obvious to the\ + \ user without excessive interactions with a product or other resources (such\ + \ as user documentation, help desks or other users)." + identifier: https://w3id.org/everse/i/dimensions/interaction_capability + name: Interaction Capability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: maintainability + description: "This characteristic represents the degree of effectiveness and efficiency\ + \ with which a product or system can be modified to improve it, correct it\ + \ or adapt it to changes in environment, and in requirements.This characteristic\ + \ is composed of the following sub-characteristics:\n - Modularity - Degree\ + \ to which a system or computer program is composed of discrete components\ + \ such that a change to one component has minimal impact on other components.\n\ + \ - Reusability - Degree to which a product can be used as an asset in\ + \ more than one system, or in building other assets.\n - Analysability\ + \ - Degree of effectiveness and efficiency with which it is possible to assess\ + \ the impact on a product or system of an intended change to one or more of\ + \ its parts, to diagnose a product for deficiencies or causes of failures,\ + \ or to identify parts to be modified.\n - Modifiability - Degree to which\ + \ a product or system can be effectively and efficiently modified without\ + \ introducing defects or degrading existing product quality.\n - Testability\ + \ - Degree of effectiveness and efficiency with which test criteria can be\ + \ established for a system, product or component and tests can be performed\ + \ to determine whether those criteria have been met." + identifier: https://w3id.org/everse/i/dimensions/maintainability + name: Maintainability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: performance_efficiency + description: "This characteristic represents the degree to which a product performs\ + \ its functions within specified time and throughput parameters and is efficient\ + \ in the use of resources (such as CPU, memory, storage, network devices,\ + \ energy, materials...) under specified conditions. This characteristic is\ + \ composed of the following sub-characteristics:\n -Time behaviour - Degree\ + \ to which the response time and throughput rates of a product or system,\ + \ when performing its functions, meet requirements.\n -Resource utilization\ + \ - Degree to which the amounts and types of resources used by a product or\ + \ system, when performing its functions, meet requirements.\n - Capacity\ + \ - Degree to which the maximum limits of a product or system parameter meet\ + \ requirements." + identifier: https://w3id.org/everse/i/dimensions/performance_efficiency + name: Performance Efficiency + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: reliability + description: "Degree to which a system, product or component performs specified\ + \ functions under specified conditions for a specified period of time. This\ + \ characteristic is composed of the following sub-characteristics:\n -\ + \ Faultlessness - Degree to which a system, product or component performs\ + \ specified functions without fault under normal operation.\n - Availability\ + \ - Degree to which a system, product or component is operational and accessible\ + \ when required for use.\n - Fault tolerance - Degree to which a system,\ + \ product or component operates as intended despite the presence of hardware\ + \ or software faults.\n - Recoverability - Degree to which, in the event\ + \ of an interruption or a failure, a product or system can recover the data\ + \ directly affected and re-establish the desired state of the system." + identifier: https://w3id.org/everse/i/dimensions/reliability + name: Reliability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: safety + description: "This characteristic represents the degree to which a product under\ + \ defined conditions to avoid a state in which human life, health, property,\ + \ or the environment is endangered. This characteristic is composed of the\ + \ following sub-characteristics:\n - Operational constraint - Degree to\ + \ which a product or system constrains its operation to within safe parameters\ + \ or states when encountering operational hazard.\n - Risk identification\ + \ - Degree to which a product can identify a course of events or operations\ + \ that can expose life, property or environment to unacceptable risk.\n \ + \ - Fail safe - Degree to which a product can automatically place itself\ + \ in a safe operating mode, or to revert to a safe condition in the event\ + \ of a failure.\n - Hazard warning - Degree to which a product or system\ + \ provides warnings of unacceptable risks to operations or internal controls\ + \ so that they can react in sufficient time to sustain safe operations.\n\ + \ - Safe integration - Degree to which a product can maintain safety during\ + \ and after integration with one or more components." + identifier: https://w3id.org/everse/i/dimensions/safety + name: Safety + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: security + description: "Degree to which a product or system defends against attack patterns\ + \ by malicious actors and protects information and data so that persons or\ + \ other products or systems have the degree of data access appropriate to\ + \ their types and levels of authorization. This characteristic is composed\ + \ of the following sub-characteristics:\n - Confidentiality - Degree to\ + \ which a product or system ensures that data are accessible only to those\ + \ authorized to have access.\n - Integrity - Degree to which a system,\ + \ product or component ensures that the state of its system and data are protected\ + \ from unauthorized modification or deletion either by malicious action or\ + \ computer error.\n - Non-repudiation - Degree to which actions or events\ + \ can be proven to have taken place so that the events or actions cannot be\ + \ repudiated later.\n - Accountability - Degree to which the actions of\ + \ an entity can be traced uniquely to the entity.\n - Authenticity - Degree\ + \ to which the identity of a subject or resource can be proved to be the one\ + \ claimed.\n - Resistance - Degree to which the product or system sustains\ + \ operations while under attack from a malicious actor." + identifier: https://w3id.org/everse/i/dimensions/security + name: Security + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: sustainability + description: The capacity of the software to endure. In other words, sustainability + means that the software will continue to be available in the future, on new + platforms, meeting new needs. + identifier: https://w3id.org/everse/i/dimensions/sustainability + name: Sustainability + source: + name: Defining Software Sustainability + url: https://danielskatzblog.wordpress.com/2016/09/13/defining-software-sustainability/ diff --git a/_data/quality_indicators.yml b/_data/quality_indicators.yml index fe51488c..bbaa0497 100644 --- a/_data/quality_indicators.yml +++ b/_data/quality_indicators.yml @@ -1 +1,771 @@ -[] +- abbreviation: archived_in_scholarly_repository + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-06-2025 + description: 'The source code repository is archived in a scholarly repository + (e.g Zenodo, HAL) to ensure that software can be found and accessed in a scholarly + context ' + identifier: + '@id': https://w3id.org/everse/i/indicators/archived_in_scholarly_repository + keywords: + - repository + - fair + - scholar + name: Software is archived in a scholarly repository + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + '@id': https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ + name: Accessibility and preservation. RSMD 2.2 + url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/#accessibility-and-preservation + status: Active + version: 1.0.0 +- abbreviation: archived_in_software_heritage + alternateName: FRSM-08 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-06-2025 + description: The source code repository is found in the universal source code + archive, Software Heritage, to ensure long-term access to the full development + history. + identifier: + '@id': https://w3id.org/everse/i/indicators/archived_in_software_heritage + keywords: + - repository + - fair + - software heritage + name: Software is archived in Software Heritage + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + '@id': https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ + name: Accessibility and preservation. RSMD 2.1 + url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/#accessibility-and-preservation + status: Active + version: 1.0.0 +- abbreviation: codemeta_completeness + author: + - '@type': schema:Person + name: Thomas Vuillaume + - '@type': schema:Person + name: Daniel Garijo + contact: + '@type': Person + name: Thomas Vuillaume + created: 20-03-2025 + description: Indicator that checks the completeness of a codemeta.json file, i.e., + the percentage of properties that are filled with metadata. This indicator + does not assess the quality of the metadata fields available. + identifier: + '@id': https://w3id.org/everse/i/indicators/codemeta_completeness + keywords: + - codemeta + - metadata + - fair + name: CodeMeta completeness + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + status: Active + version: 1.0.0 +- abbreviation: dependency_management + author: + '@type': Person + name: Faruk Diblen + contact: + '@type': Person + name: Faruk Diblen + created: 03-04-2025 + description: Reviews how external libraries and dependencies are managed to ensure + compatibility and security. + identifier: + '@id': https://w3id.org/everse/i/indicators/dependency_management + keywords: + - sustaninability + - dependencies + name: Software has dependency management solution + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/sustainability + - '@id': https://w3id.org/everse/i/dimensions/security + - '@id': https://w3id.org/everse/i/dimensions/compatibility + source: + - identifier: https://zenodo.org/record/14852424 + name: 'Software Quality Indicators from BioHackathon 2024 (Sheet: Sustanability, + Row: Su7)' + url: https://zenodo.org/records/14852424/files/Software%20Quality%20Indicators.xlsx + - name: RSMD checklist + url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ + status: Active + version: 1.0.0 +- abbreviation: descriptive_metadata + alternateName: FRSM-06 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: 'This indicator aims to determine if a software component comes with + descriptive metadata that provides information. This includes, but is not + limited to: name, domain, programming language, date created, date of first + publication, keywords, related links, etc..' + identifier: + '@id': https://w3id.org/everse/i/indicators/descriptive_metadata + keywords: + - metadata + - software + - fair + - findability + name: Software has descriptive metadata + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + - name: Description & classification. RSMD-4.1 + url: https://fair-impact.github.io/RSMD-guidelines/4.Description_Classification/ + status: Active + version: 1.0.0 +- abbreviation: has_ci-tests + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if the project runs tests before + pull requests are merged. + identifier: + '@id': https://w3id.org/everse/i/indicators/software_has_ci-tests + keywords: + - continuous + - integration + - test + name: Software has continuous integration tests + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/maintainability + source: + name: 'OpenSSF Scorecard: CI-Tests' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#ci-tests + status: Active + version: 1.0.0 +- abbreviation: software_has_citation + alternateName: FRSM-12 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if the project uses a citation to + reference contributors and authors (e.g., through a CFF file, in the README, + etc). + identifier: + '@id': https://w3id.org/everse/i/indicators/software_has_citation + keywords: + - citation + - metadata + - fair + - contributors + name: Software uses citation + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + status: Active + version: 1.0.0 +- abbreviation: software_has_license + alternateName: FRSM-15 + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This check tries to determine if the project has published a license + identifier: + '@id': https://w3id.org/everse/i/indicators/software_has_license + keywords: + - license + - metadata + - fair + name: Software has license + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + - name: 'OpenSSF Scorecard: License' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#license + - name: Reuse, licensing and legal aspects. RSMD-6.2 + url: https://fair-impact.github.io/RSMD-guidelines/6.Reuse_legal/ + status: Active + version: 1.0.0 +- abbreviation: has_no_linting_issues + alternateName: has_no_linting_issues + author: + '@type': schema:Organization + name: Super-Linter + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-06-2025 + description: The project addresses or resolves warnings identified by compilers, + safe modes, or linters. + identifier: + '@id': https://w3id.org/everse/i/indicators/has_no_linting_issues + keywords: + - linting + - code analysis + - fair + name: Software has no linting issues + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/maintainability + source: + - name: Super-Linter + url: https://github.com/super-linter/super-linter + - name: OpenSSF best practices + url: https://www.bestpractices.dev/en/criteria/0#0.warnings_fixed + status: Active + version: 1.0.0 +- abbreviation: has_published_package + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if a software project is published + as a downloadable package. + identifier: + '@id': https://w3id.org/everse/i/indicators/has_published_package + keywords: + - release + - fair + - package + - packaging + name: Software is published as a downloadable package + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/flexibility + source: + name: 'OpenSSF Scorecard: Packaging' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#packaging + status: Active + version: 1.0.0 +- abbreviation: has_releases + alternateName: FRSM-03 + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: To enable collaborative review, the project's source repository MUST + include interim versions for review between releases; it MUST NOT include + only final releases. This indicator determines if a software project has releases. + This can be achieved by looking for tags or using software that retrieves + related data. + identifier: + '@id': https://w3id.org/everse/i/indicators/has_releases + keywords: + - releases + - repository + - fair + name: Software has releases + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/maintainability + - '@id': https://w3id.org/everse/i/dimensions/fairness + source: + name: OpenSSF Best Practices (change control) + url: https://www.bestpractices.dev/en/criteria/0#0.repo_interim + status: Active + version: 1.0.0 +- abbreviation: human_code_review_requirement + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if a software project requires human + code review before pull requests. + identifier: + '@id': https://w3id.org/everse/i/indicators/human_code_review_requirement + keywords: + - human-in-the-loop + - pull request + - review + name: Software requires human code review. + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/functional_suitability + source: + name: 'OpenSSF Scorecard: Code-Review' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#code-review + status: Active + version: 1.0.0 +- abbreviation: listed_in_registry + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-06-2025 + description: The target source code repository is in a disciplinary or community + registry (e.g ascl.net, bio.tools, swMath, RRID portal, RSD, WikiData, DataCite, + etc.) to ensure that software can be found and accessed. + identifier: + '@id': https://w3id.org/everse/i/indicators/listed_in_registry + keywords: + - repository + - fair + - software heritage, zenodo + name: Software is listed in a registry + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + '@id': https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ + name: Accessibility and preservation. RSMD 2.3 + url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/#accessibility-and-preservation + status: Active + version: 1.0.0 +- abbreviation: metadata_is_up_to_date + author: + - '@type': schema:Person + name: Tom François + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Thomas Vuillaume + contact: + - '@type': schema:Person + name: Tom François + - '@type': schema:Person + name: Daniel Garijo + created: 24-09-2025 + description: Metadata information reflects the current description of a software + project. This indicator ensures that the current project metadata provides + up to date, accurate and relevant information about a software component. + identifier: + '@id': https://w3id.org/everse/i/indicators/metadata_is_up_to_date + keywords: + - metadata + - software + - fair + - findability + - maintainability + name: Software has up-to-date metadata + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/maintainability + source: + - name: 'EOSC-SWRelMan-11: Metadata: Supportability, Maintainability, Availability.' + url: https://doi.org/10.5281/zenodo.10647227 + status: Active + version: 1.0.0 +- abbreviation: no_critical_vulnerability + author: + - '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + '@type': schema:Person + name: Tom François + schema:email: tom.francois@lapp.in2p3.fr + created: 03-04-2025 + description: Checks if reported critical vulnerabilities have been fixed + identifier: + '@id': https://w3id.org/everse/i/indicators/no_critical_vulnerability + keywords: + - security + - critical + - vulnerability + name: No critical vulnerabilities + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/security + source: + - '@id': https://www.bestpractices.dev/en/criteria/0#0.vulnerabilities_critical_fixed + name: OpenSSF Best practice Critical Vulnerability Fixed + status: Active + version: 1.0.0 +- abbreviation: no_leaked_credentials + author: + - '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + '@type': schema:Person + name: Tom François + schema:email: tom.francois@lapp.in2p3.fr + description: Checks if hardcoded secrets like passwords, API keys, and tokens + is stored in the public git repository + identifier: + '@id': https://w3id.org/everse/i/indicators/no_leaked_credentials + keywords: + - security + - credential + - leak + - secret + - password + name: No leaked credentials + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/security + source: + - '@id': https://www.bestpractices.dev/en/criteria/0#0.no_leaked_credentials + name: OpenSSF Best practice No Leaked Credentials + status: Active + version: 1.0.0 +- abbreviation: persistent_and_unique_identifier + alternateName: FRSM-01 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator tries to determine if the software identifier is based + on a suitable identifier scheme, and test it can be resolved. This is done + by checking if the identifier uses an identifier scheme contained in a list + of globally unique identifier schemes + identifier: + '@id': https://w3id.org/everse/i/indicators/persistent_and_unique_identifier + keywords: + - identifier + - unique + - fair + - persistent + - metadata + name: Software has persistent and unique identifier + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + status: Active + version: 1.0.0 +- abbreviation: repository_workflows + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator tries aims determine if a software project makes use + of workflows to automate processes like testing and deployment. + identifier: + '@id': https://w3id.org/everse/i/indicators/repository_workflows + keywords: + - workflows + - github + - fair + - repository + name: Software has ci/cd workflows in its repository + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/maintainability + source: + - name: 'OpenSSF Scorecard: CI-Tests' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#ci-tests + status: Active + version: 1.0.0 +- abbreviation: requirements_specified + alternateName: FRSM-13 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator tries to determine if the project specifies what is + required to use the software. + identifier: + '@id': https://w3id.org/everse/i/indicators/requirements_specified + keywords: + - documentation + - requirements + - dependencies + - fair + name: Software specifies requirements + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/flexibility + - '@id': https://w3id.org/everse/i/dimensions/maintainability + source: + - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + - name: 'RSMD Guidelines - Re-execute: dependencies and execution environment' + url: https://fair-impact.github.io/RSMD-guidelines/7.Re-execute/ + status: Active + version: 1.0.0 +- abbreviation: software_documentation + alternateName: FRSM-05 + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if a software project comes with + many forms of documentation like readme or readthedocs + identifier: + '@id': https://w3id.org/everse/i/indicators/software_documentation + keywords: + - documentation + - fair + - usage + - readme + name: Software has documentation + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/interaction_capability + source: + name: FLOSS Best Practices Criteria + url: https://www.bestpractices.dev/en/criteria/0#0.documentation_basics + status: Active + version: 1.0.0 +- abbreviation: software_has_tests + alternateName: FRSM-14 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: Evaluates the extent to which the software has been tested, including + unit tests, integration tests, and system tests, to ensure reliability and + correctness. + identifier: + '@id': https://w3id.org/everse/i/indicators/software_has_tests + keywords: + - test + - functionality + - fair + name: Software provides tests. + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/reliability + source: + name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + status: Active + version: 1.0.0 +- abbreviation: static_analysis_common_vulnerabilities + author: + '@type': Organization + name: OpenSSF + url: https://openssf.org/ + contactPoint: + '@type': schema:Person + email: thomas.vuillaume@lapp.in2p3.fr + name: Thomas Vuillaume + created: 03-04-2025 + description: At least one static code analysis tool used includes rules or techniques + to detect common vulnerabilities specific to the language or environment. + identifier: + '@id': https://w3id.org/everse/i/indicators/static_analysis_common_vulnerabilities + keywords: + - security + - vulnerabilities + - static analysis + name: has static analysis for common vulnerabilities + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/security + source: + '@id': https://www.bestpractices.dev/en/criteria/0 + name: FLOSS Best Practices Criteria (Passing Badge) + url: https://www.bestpractices.dev/en/criteria/0#0.static_analysis_common_vulnerabilities + status: Active + version: 1.0.0 +- abbreviation: fuzzing_use + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-06-2025 + description: 'This indicator checks that If the software produced by the project + includes software written using a memory-unsafe language (e.g., C or C++), + then at least one dynamic tool (e.g., a fuzzer or web application scanner) + be routinely used in combination with a mechanism to detect memory safety + problems such as buffer overwrites. ' + identifier: + '@id': https://w3id.org/everse/i/indicators/fuzzing_use + keywords: + - fuzzing + - test + - code + name: Software uses fuzzing + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/safety + source: + name: 'OpenSSF Scorecard: Fuzzing' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#fuzzing + status: Active + version: 1.0.0 +- abbreviation: uses_tool_for_warnings_or_mistakes + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 27-06-2025 + description: This indicator checks that the project enables one or more compiler + warning flags, a "safe" language mode, or uses a separate "linter" tool to + look for code quality errors or common simple mistakes, if there is at least + one FLOSS tool that can implement this criterion in the selected language. + identifier: + '@id': https://w3id.org/everse/i/indicators/uses_tool_for_warnings_or_mistakes + keywords: + - linting + - code analysis + - fair + name: Software uses a tool for warnings or mistakes + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/maintainability + source: + - name: 'OpenSSF Best Practices badge: Warning Flags' + url: https://www.bestpractices.dev/en/criteria/0#0.warnings + - '@id': https://zenodo.org/records/10723608 + name: Ensure Software Quality + url: https://zenodo.org/records/10723608 + status: Active + version: 1.0.0 +- abbreviation: version_control_use + alternateName: FRSM-17 + author: + - '@type': schema:Organization + name: Elixir focus group + url: https://zenodo.org/communities/elixir/records + - '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if a software project uses version + control. + identifier: + '@id': https://w3id.org/everse/i/indicators/version_control_use + keywords: + - version + - control + - fair + - repository + - identifier + name: Software makes use of version control + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + - name: 'Software Quality Indicators: extraction, categorisation and recommendations + from canonical sources' + url: https://doi.org/10.5281/zenodo.15474784 + - name: Reference and identification. RSMD-3.1 + url: https://fair-impact.github.io/RSMD-guidelines/3.Reference_identification/ + status: Active + version: 1.0.0 +- abbreviation: versioning_standards_use + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 14-07-2025 + description: This indicator aims to determine if the version (or versions) of + a software tool follows an established community convention like semantic + versioning (SemVer) or calendar versioning (CalVer). + identifier: + '@id': https://w3id.org/everse/i/indicators/versioning_standards_use + keywords: + - version + - versioning + - fair + - releases + name: Software follows versioning standards + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + '@id': https://doi.org/10.5281/zenodo.15535629 + name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://doi.org/10.5281/zenodo.15535629 + status: Active + version: 1.0.0 From a637ad0095ed6bfee555aa2d1f89da89f66ccd84 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 3 Dec 2025 02:01:54 +0000 Subject: [PATCH 07/47] Automated update of RSQKit data files --- _data/quality_indicators.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/_data/quality_indicators.yml b/_data/quality_indicators.yml index bbaa0497..4a66d056 100644 --- a/_data/quality_indicators.yml +++ b/_data/quality_indicators.yml @@ -192,6 +192,7 @@ name: Software uses citation qualityDimension: '@id': https://w3id.org/everse/i/dimensions/fairness + sameAs: https://doi.org/10.25504/FAIRsharing.c585c5 source: name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary context @@ -312,6 +313,7 @@ qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/maintainability - '@id': https://w3id.org/everse/i/dimensions/fairness + sameAs: https://doi.org/10.25504/FAIRsharing.ef9fc3 source: name: OpenSSF Best Practices (change control) url: https://www.bestpractices.dev/en/criteria/0#0.repo_interim @@ -484,6 +486,7 @@ name: Software has persistent and unique identifier qualityDimension: '@id': https://w3id.org/everse/i/dimensions/fairness + sameAs: https://doi.org/10.25504/FAIRsharing.87c9a8 source: name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary context @@ -543,6 +546,7 @@ - '@id': https://w3id.org/everse/i/dimensions/fairness - '@id': https://w3id.org/everse/i/dimensions/flexibility - '@id': https://w3id.org/everse/i/dimensions/maintainability + sameAs: https://doi.org/10.25504/FAIRsharing.b8eeb9 source: - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary context @@ -576,6 +580,7 @@ qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - '@id': https://w3id.org/everse/i/dimensions/interaction_capability + sameAs: https://doi.org/10.25504/FAIRsharing.452bcd source: name: FLOSS Best Practices Criteria url: https://www.bestpractices.dev/en/criteria/0#0.documentation_basics @@ -605,6 +610,7 @@ qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - '@id': https://w3id.org/everse/i/dimensions/reliability + sameAs: https://doi.org/10.25504/FAIRsharing.a2dd1a source: name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary context @@ -728,6 +734,7 @@ name: Software makes use of version control qualityDimension: '@id': https://w3id.org/everse/i/dimensions/fairness + sameAs: https://doi.org/10.25504/FAIRsharing.d2b2c5 source: - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary context From fcd2affb5e82c3293b0dcda5ef8960c3f6b07ae3 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 6 Dec 2025 01:56:43 +0000 Subject: [PATCH 08/47] Automated update of RSQKit data files --- _data/quality_dimensions.yml | 197 +---------- _data/quality_indicators.yml | 635 ----------------------------------- 2 files changed, 1 insertion(+), 831 deletions(-) diff --git a/_data/quality_dimensions.yml b/_data/quality_dimensions.yml index 0a5386bb..fe51488c 100644 --- a/_data/quality_dimensions.yml +++ b/_data/quality_dimensions.yml @@ -1,196 +1 @@ -- abbreviation: compatibility - description: "Degree to which a product, system or component can exchange information\ - \ with other products, systems or components, and/or perform its required\ - \ functions while sharing the same common environment and resources. This\ - \ characteristic is composed of the following sub-characteristics:\n -Co-existence\ - \ - Degree to which a product can perform its required functions efficiently\ - \ while sharing a common environment and resources with other products, without\ - \ detrimental impact on any other product.\n -Interoperability - Degree\ - \ to which a system, product or component can exchange information with other\ - \ products and mutually use the information that has been exchanged." - identifier: https://w3id.org/everse/i/dimensions/compatibility - name: Compatibility - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: fairness - description: 'FAIRness refers to the degree to which research software adheres - to the FAIR principles: Findable, Accessible, Interoperable, and Reusable. - These principles, adapted for research software, aim to enhance the discoverability, - accessibility, interoperability, and reusability of software, thereby maximizing - its value and impact in scientific research.' - identifier: https://w3id.org/everse/i/dimensions/fairness - name: FAIRness - source: - name: Introducing the FAIR Principles for research software - url: https://www.nature.com/articles/s41597-022-01710-x -- abbreviation: flexibility - description: "Degree to which a product can be adapted to changes in its requirements,\ - \ contexts of use or system environment. This characteristic is composed of\ - \ the following sub-characteristics:\n - Adaptability - Degree to which\ - \ a product or system can effectively and efficiently be adapted for or transferred\ - \ to different hardware, software or other operational or usage environments.\n\ - \ - Scalability - Degree to which a product can handle growing or shrinking\ - \ workloads or to adapt its capacity to handle variability.\n - Installability\ - \ - Degree of effectiveness and efficiency with which a product or system\ - \ can be successfully installed and/or uninstalled in a specified environment.\n\ - \ - Replaceability - Degree to which a product can replace another specified\ - \ software product for the same purpose in the same environment." - identifier: https://w3id.org/everse/i/dimensions/flexibility - name: Flexibility - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: functional_suitability - created: 03-04-2025 - description: "This characteristic represents the degree to which a product or\ - \ system provides functions that meet stated and implied needs when used under\ - \ specified conditions. This characteristic is composed of the following sub-characteristics:\ - \ \n Functional completeness - Degree to which the set of functions covers\ - \ all the specified tasks and intended users' objectives.\n Functional\ - \ correctness - Degree to which a product or system provides accurate results\ - \ when used by intended users.\n Functional appropriateness - Degree to\ - \ which the functions facilitate the accomplishment of specified tasks and\ - \ objectives." - identifier: https://w3id.org/everse/i/dimensions/functional_suitability - name: Functional suitability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: interaction_capability - description: "Degree to which a product or system can be interacted with by specified\ - \ users to exchange information via the user interface to complete specific\ - \ tasks in a variety of contexts of use. This characteristic is composed of\ - \ the following sub-characteristics:\n - Appropriateness recognizability\ - \ - Degree to which users can recognize whether a product or system is appropriate\ - \ for their needs.\n - Learnability - Degree to which the functions of\ - \ a product or system can be learnt to be used by specified users within a\ - \ specified amount of time.\n - Operability - Degree to which a product\ - \ or system has attributes that make it easy to operate and control.\n \ - \ - User error protection. Degree to which a system prevents users against\ - \ operation errors.\n - User engagement - Degree to which a user interface\ - \ presents functions and information in an inviting and motivating manner\ - \ encouraging continued interaction.\n - Inclusivity - Degree to which\ - \ a product or system can be used by people of various backgrounds (such as\ - \ people of various ages, abilities, cultures, ethnicities, languages, genders,\ - \ economic situations, etc.).\n - User assistance - Degree to which a product\ - \ can be used by people with the widest range of characteristics and capabilities\ - \ to achieve specified goals in a specified context of use.\n - Self-descriptiveness\ - \ - Degree to which a product presents appropriate information, where needed\ - \ by the user, to make its capabilities and use immediately obvious to the\ - \ user without excessive interactions with a product or other resources (such\ - \ as user documentation, help desks or other users)." - identifier: https://w3id.org/everse/i/dimensions/interaction_capability - name: Interaction Capability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: maintainability - description: "This characteristic represents the degree of effectiveness and efficiency\ - \ with which a product or system can be modified to improve it, correct it\ - \ or adapt it to changes in environment, and in requirements.This characteristic\ - \ is composed of the following sub-characteristics:\n - Modularity - Degree\ - \ to which a system or computer program is composed of discrete components\ - \ such that a change to one component has minimal impact on other components.\n\ - \ - Reusability - Degree to which a product can be used as an asset in\ - \ more than one system, or in building other assets.\n - Analysability\ - \ - Degree of effectiveness and efficiency with which it is possible to assess\ - \ the impact on a product or system of an intended change to one or more of\ - \ its parts, to diagnose a product for deficiencies or causes of failures,\ - \ or to identify parts to be modified.\n - Modifiability - Degree to which\ - \ a product or system can be effectively and efficiently modified without\ - \ introducing defects or degrading existing product quality.\n - Testability\ - \ - Degree of effectiveness and efficiency with which test criteria can be\ - \ established for a system, product or component and tests can be performed\ - \ to determine whether those criteria have been met." - identifier: https://w3id.org/everse/i/dimensions/maintainability - name: Maintainability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: performance_efficiency - description: "This characteristic represents the degree to which a product performs\ - \ its functions within specified time and throughput parameters and is efficient\ - \ in the use of resources (such as CPU, memory, storage, network devices,\ - \ energy, materials...) under specified conditions. This characteristic is\ - \ composed of the following sub-characteristics:\n -Time behaviour - Degree\ - \ to which the response time and throughput rates of a product or system,\ - \ when performing its functions, meet requirements.\n -Resource utilization\ - \ - Degree to which the amounts and types of resources used by a product or\ - \ system, when performing its functions, meet requirements.\n - Capacity\ - \ - Degree to which the maximum limits of a product or system parameter meet\ - \ requirements." - identifier: https://w3id.org/everse/i/dimensions/performance_efficiency - name: Performance Efficiency - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: reliability - description: "Degree to which a system, product or component performs specified\ - \ functions under specified conditions for a specified period of time. This\ - \ characteristic is composed of the following sub-characteristics:\n -\ - \ Faultlessness - Degree to which a system, product or component performs\ - \ specified functions without fault under normal operation.\n - Availability\ - \ - Degree to which a system, product or component is operational and accessible\ - \ when required for use.\n - Fault tolerance - Degree to which a system,\ - \ product or component operates as intended despite the presence of hardware\ - \ or software faults.\n - Recoverability - Degree to which, in the event\ - \ of an interruption or a failure, a product or system can recover the data\ - \ directly affected and re-establish the desired state of the system." - identifier: https://w3id.org/everse/i/dimensions/reliability - name: Reliability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: safety - description: "This characteristic represents the degree to which a product under\ - \ defined conditions to avoid a state in which human life, health, property,\ - \ or the environment is endangered. This characteristic is composed of the\ - \ following sub-characteristics:\n - Operational constraint - Degree to\ - \ which a product or system constrains its operation to within safe parameters\ - \ or states when encountering operational hazard.\n - Risk identification\ - \ - Degree to which a product can identify a course of events or operations\ - \ that can expose life, property or environment to unacceptable risk.\n \ - \ - Fail safe - Degree to which a product can automatically place itself\ - \ in a safe operating mode, or to revert to a safe condition in the event\ - \ of a failure.\n - Hazard warning - Degree to which a product or system\ - \ provides warnings of unacceptable risks to operations or internal controls\ - \ so that they can react in sufficient time to sustain safe operations.\n\ - \ - Safe integration - Degree to which a product can maintain safety during\ - \ and after integration with one or more components." - identifier: https://w3id.org/everse/i/dimensions/safety - name: Safety - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: security - description: "Degree to which a product or system defends against attack patterns\ - \ by malicious actors and protects information and data so that persons or\ - \ other products or systems have the degree of data access appropriate to\ - \ their types and levels of authorization. This characteristic is composed\ - \ of the following sub-characteristics:\n - Confidentiality - Degree to\ - \ which a product or system ensures that data are accessible only to those\ - \ authorized to have access.\n - Integrity - Degree to which a system,\ - \ product or component ensures that the state of its system and data are protected\ - \ from unauthorized modification or deletion either by malicious action or\ - \ computer error.\n - Non-repudiation - Degree to which actions or events\ - \ can be proven to have taken place so that the events or actions cannot be\ - \ repudiated later.\n - Accountability - Degree to which the actions of\ - \ an entity can be traced uniquely to the entity.\n - Authenticity - Degree\ - \ to which the identity of a subject or resource can be proved to be the one\ - \ claimed.\n - Resistance - Degree to which the product or system sustains\ - \ operations while under attack from a malicious actor." - identifier: https://w3id.org/everse/i/dimensions/security - name: Security - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: sustainability - description: The capacity of the software to endure. In other words, sustainability - means that the software will continue to be available in the future, on new - platforms, meeting new needs. - identifier: https://w3id.org/everse/i/dimensions/sustainability - name: Sustainability - source: - name: Defining Software Sustainability - url: https://danielskatzblog.wordpress.com/2016/09/13/defining-software-sustainability/ +[] diff --git a/_data/quality_indicators.yml b/_data/quality_indicators.yml index 4a66d056..c5c8bdf3 100644 --- a/_data/quality_indicators.yml +++ b/_data/quality_indicators.yml @@ -141,638 +141,3 @@ url: https://fair-impact.github.io/RSMD-guidelines/4.Description_Classification/ status: Active version: 1.0.0 -- abbreviation: has_ci-tests - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if the project runs tests before - pull requests are merged. - identifier: - '@id': https://w3id.org/everse/i/indicators/software_has_ci-tests - keywords: - - continuous - - integration - - test - name: Software has continuous integration tests - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/maintainability - source: - name: 'OpenSSF Scorecard: CI-Tests' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#ci-tests - status: Active - version: 1.0.0 -- abbreviation: software_has_citation - alternateName: FRSM-12 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if the project uses a citation to - reference contributors and authors (e.g., through a CFF file, in the README, - etc). - identifier: - '@id': https://w3id.org/everse/i/indicators/software_has_citation - keywords: - - citation - - metadata - - fair - - contributors - name: Software uses citation - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - sameAs: https://doi.org/10.25504/FAIRsharing.c585c5 - source: - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - status: Active - version: 1.0.0 -- abbreviation: software_has_license - alternateName: FRSM-15 - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This check tries to determine if the project has published a license - identifier: - '@id': https://w3id.org/everse/i/indicators/software_has_license - keywords: - - license - - metadata - - fair - name: Software has license - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - - name: 'OpenSSF Scorecard: License' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#license - - name: Reuse, licensing and legal aspects. RSMD-6.2 - url: https://fair-impact.github.io/RSMD-guidelines/6.Reuse_legal/ - status: Active - version: 1.0.0 -- abbreviation: has_no_linting_issues - alternateName: has_no_linting_issues - author: - '@type': schema:Organization - name: Super-Linter - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-06-2025 - description: The project addresses or resolves warnings identified by compilers, - safe modes, or linters. - identifier: - '@id': https://w3id.org/everse/i/indicators/has_no_linting_issues - keywords: - - linting - - code analysis - - fair - name: Software has no linting issues - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/maintainability - source: - - name: Super-Linter - url: https://github.com/super-linter/super-linter - - name: OpenSSF best practices - url: https://www.bestpractices.dev/en/criteria/0#0.warnings_fixed - status: Active - version: 1.0.0 -- abbreviation: has_published_package - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if a software project is published - as a downloadable package. - identifier: - '@id': https://w3id.org/everse/i/indicators/has_published_package - keywords: - - release - - fair - - package - - packaging - name: Software is published as a downloadable package - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/flexibility - source: - name: 'OpenSSF Scorecard: Packaging' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#packaging - status: Active - version: 1.0.0 -- abbreviation: has_releases - alternateName: FRSM-03 - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: To enable collaborative review, the project's source repository MUST - include interim versions for review between releases; it MUST NOT include - only final releases. This indicator determines if a software project has releases. - This can be achieved by looking for tags or using software that retrieves - related data. - identifier: - '@id': https://w3id.org/everse/i/indicators/has_releases - keywords: - - releases - - repository - - fair - name: Software has releases - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/maintainability - - '@id': https://w3id.org/everse/i/dimensions/fairness - sameAs: https://doi.org/10.25504/FAIRsharing.ef9fc3 - source: - name: OpenSSF Best Practices (change control) - url: https://www.bestpractices.dev/en/criteria/0#0.repo_interim - status: Active - version: 1.0.0 -- abbreviation: human_code_review_requirement - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if a software project requires human - code review before pull requests. - identifier: - '@id': https://w3id.org/everse/i/indicators/human_code_review_requirement - keywords: - - human-in-the-loop - - pull request - - review - name: Software requires human code review. - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/functional_suitability - source: - name: 'OpenSSF Scorecard: Code-Review' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#code-review - status: Active - version: 1.0.0 -- abbreviation: listed_in_registry - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-06-2025 - description: The target source code repository is in a disciplinary or community - registry (e.g ascl.net, bio.tools, swMath, RRID portal, RSD, WikiData, DataCite, - etc.) to ensure that software can be found and accessed. - identifier: - '@id': https://w3id.org/everse/i/indicators/listed_in_registry - keywords: - - repository - - fair - - software heritage, zenodo - name: Software is listed in a registry - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - '@id': https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ - name: Accessibility and preservation. RSMD 2.3 - url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/#accessibility-and-preservation - status: Active - version: 1.0.0 -- abbreviation: metadata_is_up_to_date - author: - - '@type': schema:Person - name: Tom François - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Thomas Vuillaume - contact: - - '@type': schema:Person - name: Tom François - - '@type': schema:Person - name: Daniel Garijo - created: 24-09-2025 - description: Metadata information reflects the current description of a software - project. This indicator ensures that the current project metadata provides - up to date, accurate and relevant information about a software component. - identifier: - '@id': https://w3id.org/everse/i/indicators/metadata_is_up_to_date - keywords: - - metadata - - software - - fair - - findability - - maintainability - name: Software has up-to-date metadata - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/maintainability - source: - - name: 'EOSC-SWRelMan-11: Metadata: Supportability, Maintainability, Availability.' - url: https://doi.org/10.5281/zenodo.10647227 - status: Active - version: 1.0.0 -- abbreviation: no_critical_vulnerability - author: - - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - '@type': schema:Person - name: Tom François - schema:email: tom.francois@lapp.in2p3.fr - created: 03-04-2025 - description: Checks if reported critical vulnerabilities have been fixed - identifier: - '@id': https://w3id.org/everse/i/indicators/no_critical_vulnerability - keywords: - - security - - critical - - vulnerability - name: No critical vulnerabilities - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/security - source: - - '@id': https://www.bestpractices.dev/en/criteria/0#0.vulnerabilities_critical_fixed - name: OpenSSF Best practice Critical Vulnerability Fixed - status: Active - version: 1.0.0 -- abbreviation: no_leaked_credentials - author: - - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - '@type': schema:Person - name: Tom François - schema:email: tom.francois@lapp.in2p3.fr - description: Checks if hardcoded secrets like passwords, API keys, and tokens - is stored in the public git repository - identifier: - '@id': https://w3id.org/everse/i/indicators/no_leaked_credentials - keywords: - - security - - credential - - leak - - secret - - password - name: No leaked credentials - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/security - source: - - '@id': https://www.bestpractices.dev/en/criteria/0#0.no_leaked_credentials - name: OpenSSF Best practice No Leaked Credentials - status: Active - version: 1.0.0 -- abbreviation: persistent_and_unique_identifier - alternateName: FRSM-01 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator tries to determine if the software identifier is based - on a suitable identifier scheme, and test it can be resolved. This is done - by checking if the identifier uses an identifier scheme contained in a list - of globally unique identifier schemes - identifier: - '@id': https://w3id.org/everse/i/indicators/persistent_and_unique_identifier - keywords: - - identifier - - unique - - fair - - persistent - - metadata - name: Software has persistent and unique identifier - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - sameAs: https://doi.org/10.25504/FAIRsharing.87c9a8 - source: - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - status: Active - version: 1.0.0 -- abbreviation: repository_workflows - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator tries aims determine if a software project makes use - of workflows to automate processes like testing and deployment. - identifier: - '@id': https://w3id.org/everse/i/indicators/repository_workflows - keywords: - - workflows - - github - - fair - - repository - name: Software has ci/cd workflows in its repository - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/maintainability - source: - - name: 'OpenSSF Scorecard: CI-Tests' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#ci-tests - status: Active - version: 1.0.0 -- abbreviation: requirements_specified - alternateName: FRSM-13 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator tries to determine if the project specifies what is - required to use the software. - identifier: - '@id': https://w3id.org/everse/i/indicators/requirements_specified - keywords: - - documentation - - requirements - - dependencies - - fair - name: Software specifies requirements - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/flexibility - - '@id': https://w3id.org/everse/i/dimensions/maintainability - sameAs: https://doi.org/10.25504/FAIRsharing.b8eeb9 - source: - - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - - name: 'RSMD Guidelines - Re-execute: dependencies and execution environment' - url: https://fair-impact.github.io/RSMD-guidelines/7.Re-execute/ - status: Active - version: 1.0.0 -- abbreviation: software_documentation - alternateName: FRSM-05 - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if a software project comes with - many forms of documentation like readme or readthedocs - identifier: - '@id': https://w3id.org/everse/i/indicators/software_documentation - keywords: - - documentation - - fair - - usage - - readme - name: Software has documentation - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/interaction_capability - sameAs: https://doi.org/10.25504/FAIRsharing.452bcd - source: - name: FLOSS Best Practices Criteria - url: https://www.bestpractices.dev/en/criteria/0#0.documentation_basics - status: Active - version: 1.0.0 -- abbreviation: software_has_tests - alternateName: FRSM-14 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: Evaluates the extent to which the software has been tested, including - unit tests, integration tests, and system tests, to ensure reliability and - correctness. - identifier: - '@id': https://w3id.org/everse/i/indicators/software_has_tests - keywords: - - test - - functionality - - fair - name: Software provides tests. - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/reliability - sameAs: https://doi.org/10.25504/FAIRsharing.a2dd1a - source: - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - status: Active - version: 1.0.0 -- abbreviation: static_analysis_common_vulnerabilities - author: - '@type': Organization - name: OpenSSF - url: https://openssf.org/ - contactPoint: - '@type': schema:Person - email: thomas.vuillaume@lapp.in2p3.fr - name: Thomas Vuillaume - created: 03-04-2025 - description: At least one static code analysis tool used includes rules or techniques - to detect common vulnerabilities specific to the language or environment. - identifier: - '@id': https://w3id.org/everse/i/indicators/static_analysis_common_vulnerabilities - keywords: - - security - - vulnerabilities - - static analysis - name: has static analysis for common vulnerabilities - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/security - source: - '@id': https://www.bestpractices.dev/en/criteria/0 - name: FLOSS Best Practices Criteria (Passing Badge) - url: https://www.bestpractices.dev/en/criteria/0#0.static_analysis_common_vulnerabilities - status: Active - version: 1.0.0 -- abbreviation: fuzzing_use - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-06-2025 - description: 'This indicator checks that If the software produced by the project - includes software written using a memory-unsafe language (e.g., C or C++), - then at least one dynamic tool (e.g., a fuzzer or web application scanner) - be routinely used in combination with a mechanism to detect memory safety - problems such as buffer overwrites. ' - identifier: - '@id': https://w3id.org/everse/i/indicators/fuzzing_use - keywords: - - fuzzing - - test - - code - name: Software uses fuzzing - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/safety - source: - name: 'OpenSSF Scorecard: Fuzzing' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#fuzzing - status: Active - version: 1.0.0 -- abbreviation: uses_tool_for_warnings_or_mistakes - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 27-06-2025 - description: This indicator checks that the project enables one or more compiler - warning flags, a "safe" language mode, or uses a separate "linter" tool to - look for code quality errors or common simple mistakes, if there is at least - one FLOSS tool that can implement this criterion in the selected language. - identifier: - '@id': https://w3id.org/everse/i/indicators/uses_tool_for_warnings_or_mistakes - keywords: - - linting - - code analysis - - fair - name: Software uses a tool for warnings or mistakes - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/maintainability - source: - - name: 'OpenSSF Best Practices badge: Warning Flags' - url: https://www.bestpractices.dev/en/criteria/0#0.warnings - - '@id': https://zenodo.org/records/10723608 - name: Ensure Software Quality - url: https://zenodo.org/records/10723608 - status: Active - version: 1.0.0 -- abbreviation: version_control_use - alternateName: FRSM-17 - author: - - '@type': schema:Organization - name: Elixir focus group - url: https://zenodo.org/communities/elixir/records - - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if a software project uses version - control. - identifier: - '@id': https://w3id.org/everse/i/indicators/version_control_use - keywords: - - version - - control - - fair - - repository - - identifier - name: Software makes use of version control - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - sameAs: https://doi.org/10.25504/FAIRsharing.d2b2c5 - source: - - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - - name: 'Software Quality Indicators: extraction, categorisation and recommendations - from canonical sources' - url: https://doi.org/10.5281/zenodo.15474784 - - name: Reference and identification. RSMD-3.1 - url: https://fair-impact.github.io/RSMD-guidelines/3.Reference_identification/ - status: Active - version: 1.0.0 -- abbreviation: versioning_standards_use - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 14-07-2025 - description: This indicator aims to determine if the version (or versions) of - a software tool follows an established community convention like semantic - versioning (SemVer) or calendar versioning (CalVer). - identifier: - '@id': https://w3id.org/everse/i/indicators/versioning_standards_use - keywords: - - version - - versioning - - fair - - releases - name: Software follows versioning standards - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - '@id': https://doi.org/10.5281/zenodo.15535629 - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://doi.org/10.5281/zenodo.15535629 - status: Active - version: 1.0.0 From d7110f41249076db02873ec48034a2da1dbf2d4c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 7 Dec 2025 02:12:25 +0000 Subject: [PATCH 09/47] Automated update of RSQKit data files --- _data/quality_dimensions.yml | 197 ++++++++++- _data/quality_indicators.yml | 635 +++++++++++++++++++++++++++++++++++ 2 files changed, 831 insertions(+), 1 deletion(-) diff --git a/_data/quality_dimensions.yml b/_data/quality_dimensions.yml index fe51488c..0a5386bb 100644 --- a/_data/quality_dimensions.yml +++ b/_data/quality_dimensions.yml @@ -1 +1,196 @@ -[] +- abbreviation: compatibility + description: "Degree to which a product, system or component can exchange information\ + \ with other products, systems or components, and/or perform its required\ + \ functions while sharing the same common environment and resources. This\ + \ characteristic is composed of the following sub-characteristics:\n -Co-existence\ + \ - Degree to which a product can perform its required functions efficiently\ + \ while sharing a common environment and resources with other products, without\ + \ detrimental impact on any other product.\n -Interoperability - Degree\ + \ to which a system, product or component can exchange information with other\ + \ products and mutually use the information that has been exchanged." + identifier: https://w3id.org/everse/i/dimensions/compatibility + name: Compatibility + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: fairness + description: 'FAIRness refers to the degree to which research software adheres + to the FAIR principles: Findable, Accessible, Interoperable, and Reusable. + These principles, adapted for research software, aim to enhance the discoverability, + accessibility, interoperability, and reusability of software, thereby maximizing + its value and impact in scientific research.' + identifier: https://w3id.org/everse/i/dimensions/fairness + name: FAIRness + source: + name: Introducing the FAIR Principles for research software + url: https://www.nature.com/articles/s41597-022-01710-x +- abbreviation: flexibility + description: "Degree to which a product can be adapted to changes in its requirements,\ + \ contexts of use or system environment. This characteristic is composed of\ + \ the following sub-characteristics:\n - Adaptability - Degree to which\ + \ a product or system can effectively and efficiently be adapted for or transferred\ + \ to different hardware, software or other operational or usage environments.\n\ + \ - Scalability - Degree to which a product can handle growing or shrinking\ + \ workloads or to adapt its capacity to handle variability.\n - Installability\ + \ - Degree of effectiveness and efficiency with which a product or system\ + \ can be successfully installed and/or uninstalled in a specified environment.\n\ + \ - Replaceability - Degree to which a product can replace another specified\ + \ software product for the same purpose in the same environment." + identifier: https://w3id.org/everse/i/dimensions/flexibility + name: Flexibility + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: functional_suitability + created: 03-04-2025 + description: "This characteristic represents the degree to which a product or\ + \ system provides functions that meet stated and implied needs when used under\ + \ specified conditions. This characteristic is composed of the following sub-characteristics:\ + \ \n Functional completeness - Degree to which the set of functions covers\ + \ all the specified tasks and intended users' objectives.\n Functional\ + \ correctness - Degree to which a product or system provides accurate results\ + \ when used by intended users.\n Functional appropriateness - Degree to\ + \ which the functions facilitate the accomplishment of specified tasks and\ + \ objectives." + identifier: https://w3id.org/everse/i/dimensions/functional_suitability + name: Functional suitability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: interaction_capability + description: "Degree to which a product or system can be interacted with by specified\ + \ users to exchange information via the user interface to complete specific\ + \ tasks in a variety of contexts of use. This characteristic is composed of\ + \ the following sub-characteristics:\n - Appropriateness recognizability\ + \ - Degree to which users can recognize whether a product or system is appropriate\ + \ for their needs.\n - Learnability - Degree to which the functions of\ + \ a product or system can be learnt to be used by specified users within a\ + \ specified amount of time.\n - Operability - Degree to which a product\ + \ or system has attributes that make it easy to operate and control.\n \ + \ - User error protection. Degree to which a system prevents users against\ + \ operation errors.\n - User engagement - Degree to which a user interface\ + \ presents functions and information in an inviting and motivating manner\ + \ encouraging continued interaction.\n - Inclusivity - Degree to which\ + \ a product or system can be used by people of various backgrounds (such as\ + \ people of various ages, abilities, cultures, ethnicities, languages, genders,\ + \ economic situations, etc.).\n - User assistance - Degree to which a product\ + \ can be used by people with the widest range of characteristics and capabilities\ + \ to achieve specified goals in a specified context of use.\n - Self-descriptiveness\ + \ - Degree to which a product presents appropriate information, where needed\ + \ by the user, to make its capabilities and use immediately obvious to the\ + \ user without excessive interactions with a product or other resources (such\ + \ as user documentation, help desks or other users)." + identifier: https://w3id.org/everse/i/dimensions/interaction_capability + name: Interaction Capability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: maintainability + description: "This characteristic represents the degree of effectiveness and efficiency\ + \ with which a product or system can be modified to improve it, correct it\ + \ or adapt it to changes in environment, and in requirements.This characteristic\ + \ is composed of the following sub-characteristics:\n - Modularity - Degree\ + \ to which a system or computer program is composed of discrete components\ + \ such that a change to one component has minimal impact on other components.\n\ + \ - Reusability - Degree to which a product can be used as an asset in\ + \ more than one system, or in building other assets.\n - Analysability\ + \ - Degree of effectiveness and efficiency with which it is possible to assess\ + \ the impact on a product or system of an intended change to one or more of\ + \ its parts, to diagnose a product for deficiencies or causes of failures,\ + \ or to identify parts to be modified.\n - Modifiability - Degree to which\ + \ a product or system can be effectively and efficiently modified without\ + \ introducing defects or degrading existing product quality.\n - Testability\ + \ - Degree of effectiveness and efficiency with which test criteria can be\ + \ established for a system, product or component and tests can be performed\ + \ to determine whether those criteria have been met." + identifier: https://w3id.org/everse/i/dimensions/maintainability + name: Maintainability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: performance_efficiency + description: "This characteristic represents the degree to which a product performs\ + \ its functions within specified time and throughput parameters and is efficient\ + \ in the use of resources (such as CPU, memory, storage, network devices,\ + \ energy, materials...) under specified conditions. This characteristic is\ + \ composed of the following sub-characteristics:\n -Time behaviour - Degree\ + \ to which the response time and throughput rates of a product or system,\ + \ when performing its functions, meet requirements.\n -Resource utilization\ + \ - Degree to which the amounts and types of resources used by a product or\ + \ system, when performing its functions, meet requirements.\n - Capacity\ + \ - Degree to which the maximum limits of a product or system parameter meet\ + \ requirements." + identifier: https://w3id.org/everse/i/dimensions/performance_efficiency + name: Performance Efficiency + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: reliability + description: "Degree to which a system, product or component performs specified\ + \ functions under specified conditions for a specified period of time. This\ + \ characteristic is composed of the following sub-characteristics:\n -\ + \ Faultlessness - Degree to which a system, product or component performs\ + \ specified functions without fault under normal operation.\n - Availability\ + \ - Degree to which a system, product or component is operational and accessible\ + \ when required for use.\n - Fault tolerance - Degree to which a system,\ + \ product or component operates as intended despite the presence of hardware\ + \ or software faults.\n - Recoverability - Degree to which, in the event\ + \ of an interruption or a failure, a product or system can recover the data\ + \ directly affected and re-establish the desired state of the system." + identifier: https://w3id.org/everse/i/dimensions/reliability + name: Reliability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: safety + description: "This characteristic represents the degree to which a product under\ + \ defined conditions to avoid a state in which human life, health, property,\ + \ or the environment is endangered. This characteristic is composed of the\ + \ following sub-characteristics:\n - Operational constraint - Degree to\ + \ which a product or system constrains its operation to within safe parameters\ + \ or states when encountering operational hazard.\n - Risk identification\ + \ - Degree to which a product can identify a course of events or operations\ + \ that can expose life, property or environment to unacceptable risk.\n \ + \ - Fail safe - Degree to which a product can automatically place itself\ + \ in a safe operating mode, or to revert to a safe condition in the event\ + \ of a failure.\n - Hazard warning - Degree to which a product or system\ + \ provides warnings of unacceptable risks to operations or internal controls\ + \ so that they can react in sufficient time to sustain safe operations.\n\ + \ - Safe integration - Degree to which a product can maintain safety during\ + \ and after integration with one or more components." + identifier: https://w3id.org/everse/i/dimensions/safety + name: Safety + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: security + description: "Degree to which a product or system defends against attack patterns\ + \ by malicious actors and protects information and data so that persons or\ + \ other products or systems have the degree of data access appropriate to\ + \ their types and levels of authorization. This characteristic is composed\ + \ of the following sub-characteristics:\n - Confidentiality - Degree to\ + \ which a product or system ensures that data are accessible only to those\ + \ authorized to have access.\n - Integrity - Degree to which a system,\ + \ product or component ensures that the state of its system and data are protected\ + \ from unauthorized modification or deletion either by malicious action or\ + \ computer error.\n - Non-repudiation - Degree to which actions or events\ + \ can be proven to have taken place so that the events or actions cannot be\ + \ repudiated later.\n - Accountability - Degree to which the actions of\ + \ an entity can be traced uniquely to the entity.\n - Authenticity - Degree\ + \ to which the identity of a subject or resource can be proved to be the one\ + \ claimed.\n - Resistance - Degree to which the product or system sustains\ + \ operations while under attack from a malicious actor." + identifier: https://w3id.org/everse/i/dimensions/security + name: Security + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: sustainability + description: The capacity of the software to endure. In other words, sustainability + means that the software will continue to be available in the future, on new + platforms, meeting new needs. + identifier: https://w3id.org/everse/i/dimensions/sustainability + name: Sustainability + source: + name: Defining Software Sustainability + url: https://danielskatzblog.wordpress.com/2016/09/13/defining-software-sustainability/ diff --git a/_data/quality_indicators.yml b/_data/quality_indicators.yml index c5c8bdf3..4a66d056 100644 --- a/_data/quality_indicators.yml +++ b/_data/quality_indicators.yml @@ -141,3 +141,638 @@ url: https://fair-impact.github.io/RSMD-guidelines/4.Description_Classification/ status: Active version: 1.0.0 +- abbreviation: has_ci-tests + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if the project runs tests before + pull requests are merged. + identifier: + '@id': https://w3id.org/everse/i/indicators/software_has_ci-tests + keywords: + - continuous + - integration + - test + name: Software has continuous integration tests + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/maintainability + source: + name: 'OpenSSF Scorecard: CI-Tests' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#ci-tests + status: Active + version: 1.0.0 +- abbreviation: software_has_citation + alternateName: FRSM-12 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if the project uses a citation to + reference contributors and authors (e.g., through a CFF file, in the README, + etc). + identifier: + '@id': https://w3id.org/everse/i/indicators/software_has_citation + keywords: + - citation + - metadata + - fair + - contributors + name: Software uses citation + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + sameAs: https://doi.org/10.25504/FAIRsharing.c585c5 + source: + name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + status: Active + version: 1.0.0 +- abbreviation: software_has_license + alternateName: FRSM-15 + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This check tries to determine if the project has published a license + identifier: + '@id': https://w3id.org/everse/i/indicators/software_has_license + keywords: + - license + - metadata + - fair + name: Software has license + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + - name: 'OpenSSF Scorecard: License' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#license + - name: Reuse, licensing and legal aspects. RSMD-6.2 + url: https://fair-impact.github.io/RSMD-guidelines/6.Reuse_legal/ + status: Active + version: 1.0.0 +- abbreviation: has_no_linting_issues + alternateName: has_no_linting_issues + author: + '@type': schema:Organization + name: Super-Linter + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-06-2025 + description: The project addresses or resolves warnings identified by compilers, + safe modes, or linters. + identifier: + '@id': https://w3id.org/everse/i/indicators/has_no_linting_issues + keywords: + - linting + - code analysis + - fair + name: Software has no linting issues + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/maintainability + source: + - name: Super-Linter + url: https://github.com/super-linter/super-linter + - name: OpenSSF best practices + url: https://www.bestpractices.dev/en/criteria/0#0.warnings_fixed + status: Active + version: 1.0.0 +- abbreviation: has_published_package + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if a software project is published + as a downloadable package. + identifier: + '@id': https://w3id.org/everse/i/indicators/has_published_package + keywords: + - release + - fair + - package + - packaging + name: Software is published as a downloadable package + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/flexibility + source: + name: 'OpenSSF Scorecard: Packaging' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#packaging + status: Active + version: 1.0.0 +- abbreviation: has_releases + alternateName: FRSM-03 + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: To enable collaborative review, the project's source repository MUST + include interim versions for review between releases; it MUST NOT include + only final releases. This indicator determines if a software project has releases. + This can be achieved by looking for tags or using software that retrieves + related data. + identifier: + '@id': https://w3id.org/everse/i/indicators/has_releases + keywords: + - releases + - repository + - fair + name: Software has releases + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/maintainability + - '@id': https://w3id.org/everse/i/dimensions/fairness + sameAs: https://doi.org/10.25504/FAIRsharing.ef9fc3 + source: + name: OpenSSF Best Practices (change control) + url: https://www.bestpractices.dev/en/criteria/0#0.repo_interim + status: Active + version: 1.0.0 +- abbreviation: human_code_review_requirement + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if a software project requires human + code review before pull requests. + identifier: + '@id': https://w3id.org/everse/i/indicators/human_code_review_requirement + keywords: + - human-in-the-loop + - pull request + - review + name: Software requires human code review. + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/functional_suitability + source: + name: 'OpenSSF Scorecard: Code-Review' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#code-review + status: Active + version: 1.0.0 +- abbreviation: listed_in_registry + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-06-2025 + description: The target source code repository is in a disciplinary or community + registry (e.g ascl.net, bio.tools, swMath, RRID portal, RSD, WikiData, DataCite, + etc.) to ensure that software can be found and accessed. + identifier: + '@id': https://w3id.org/everse/i/indicators/listed_in_registry + keywords: + - repository + - fair + - software heritage, zenodo + name: Software is listed in a registry + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + '@id': https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ + name: Accessibility and preservation. RSMD 2.3 + url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/#accessibility-and-preservation + status: Active + version: 1.0.0 +- abbreviation: metadata_is_up_to_date + author: + - '@type': schema:Person + name: Tom François + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Thomas Vuillaume + contact: + - '@type': schema:Person + name: Tom François + - '@type': schema:Person + name: Daniel Garijo + created: 24-09-2025 + description: Metadata information reflects the current description of a software + project. This indicator ensures that the current project metadata provides + up to date, accurate and relevant information about a software component. + identifier: + '@id': https://w3id.org/everse/i/indicators/metadata_is_up_to_date + keywords: + - metadata + - software + - fair + - findability + - maintainability + name: Software has up-to-date metadata + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/maintainability + source: + - name: 'EOSC-SWRelMan-11: Metadata: Supportability, Maintainability, Availability.' + url: https://doi.org/10.5281/zenodo.10647227 + status: Active + version: 1.0.0 +- abbreviation: no_critical_vulnerability + author: + - '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + '@type': schema:Person + name: Tom François + schema:email: tom.francois@lapp.in2p3.fr + created: 03-04-2025 + description: Checks if reported critical vulnerabilities have been fixed + identifier: + '@id': https://w3id.org/everse/i/indicators/no_critical_vulnerability + keywords: + - security + - critical + - vulnerability + name: No critical vulnerabilities + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/security + source: + - '@id': https://www.bestpractices.dev/en/criteria/0#0.vulnerabilities_critical_fixed + name: OpenSSF Best practice Critical Vulnerability Fixed + status: Active + version: 1.0.0 +- abbreviation: no_leaked_credentials + author: + - '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + '@type': schema:Person + name: Tom François + schema:email: tom.francois@lapp.in2p3.fr + description: Checks if hardcoded secrets like passwords, API keys, and tokens + is stored in the public git repository + identifier: + '@id': https://w3id.org/everse/i/indicators/no_leaked_credentials + keywords: + - security + - credential + - leak + - secret + - password + name: No leaked credentials + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/security + source: + - '@id': https://www.bestpractices.dev/en/criteria/0#0.no_leaked_credentials + name: OpenSSF Best practice No Leaked Credentials + status: Active + version: 1.0.0 +- abbreviation: persistent_and_unique_identifier + alternateName: FRSM-01 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator tries to determine if the software identifier is based + on a suitable identifier scheme, and test it can be resolved. This is done + by checking if the identifier uses an identifier scheme contained in a list + of globally unique identifier schemes + identifier: + '@id': https://w3id.org/everse/i/indicators/persistent_and_unique_identifier + keywords: + - identifier + - unique + - fair + - persistent + - metadata + name: Software has persistent and unique identifier + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + sameAs: https://doi.org/10.25504/FAIRsharing.87c9a8 + source: + name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + status: Active + version: 1.0.0 +- abbreviation: repository_workflows + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator tries aims determine if a software project makes use + of workflows to automate processes like testing and deployment. + identifier: + '@id': https://w3id.org/everse/i/indicators/repository_workflows + keywords: + - workflows + - github + - fair + - repository + name: Software has ci/cd workflows in its repository + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/maintainability + source: + - name: 'OpenSSF Scorecard: CI-Tests' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#ci-tests + status: Active + version: 1.0.0 +- abbreviation: requirements_specified + alternateName: FRSM-13 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator tries to determine if the project specifies what is + required to use the software. + identifier: + '@id': https://w3id.org/everse/i/indicators/requirements_specified + keywords: + - documentation + - requirements + - dependencies + - fair + name: Software specifies requirements + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/flexibility + - '@id': https://w3id.org/everse/i/dimensions/maintainability + sameAs: https://doi.org/10.25504/FAIRsharing.b8eeb9 + source: + - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + - name: 'RSMD Guidelines - Re-execute: dependencies and execution environment' + url: https://fair-impact.github.io/RSMD-guidelines/7.Re-execute/ + status: Active + version: 1.0.0 +- abbreviation: software_documentation + alternateName: FRSM-05 + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if a software project comes with + many forms of documentation like readme or readthedocs + identifier: + '@id': https://w3id.org/everse/i/indicators/software_documentation + keywords: + - documentation + - fair + - usage + - readme + name: Software has documentation + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/interaction_capability + sameAs: https://doi.org/10.25504/FAIRsharing.452bcd + source: + name: FLOSS Best Practices Criteria + url: https://www.bestpractices.dev/en/criteria/0#0.documentation_basics + status: Active + version: 1.0.0 +- abbreviation: software_has_tests + alternateName: FRSM-14 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: Evaluates the extent to which the software has been tested, including + unit tests, integration tests, and system tests, to ensure reliability and + correctness. + identifier: + '@id': https://w3id.org/everse/i/indicators/software_has_tests + keywords: + - test + - functionality + - fair + name: Software provides tests. + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/reliability + sameAs: https://doi.org/10.25504/FAIRsharing.a2dd1a + source: + name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + status: Active + version: 1.0.0 +- abbreviation: static_analysis_common_vulnerabilities + author: + '@type': Organization + name: OpenSSF + url: https://openssf.org/ + contactPoint: + '@type': schema:Person + email: thomas.vuillaume@lapp.in2p3.fr + name: Thomas Vuillaume + created: 03-04-2025 + description: At least one static code analysis tool used includes rules or techniques + to detect common vulnerabilities specific to the language or environment. + identifier: + '@id': https://w3id.org/everse/i/indicators/static_analysis_common_vulnerabilities + keywords: + - security + - vulnerabilities + - static analysis + name: has static analysis for common vulnerabilities + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/security + source: + '@id': https://www.bestpractices.dev/en/criteria/0 + name: FLOSS Best Practices Criteria (Passing Badge) + url: https://www.bestpractices.dev/en/criteria/0#0.static_analysis_common_vulnerabilities + status: Active + version: 1.0.0 +- abbreviation: fuzzing_use + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-06-2025 + description: 'This indicator checks that If the software produced by the project + includes software written using a memory-unsafe language (e.g., C or C++), + then at least one dynamic tool (e.g., a fuzzer or web application scanner) + be routinely used in combination with a mechanism to detect memory safety + problems such as buffer overwrites. ' + identifier: + '@id': https://w3id.org/everse/i/indicators/fuzzing_use + keywords: + - fuzzing + - test + - code + name: Software uses fuzzing + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/safety + source: + name: 'OpenSSF Scorecard: Fuzzing' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#fuzzing + status: Active + version: 1.0.0 +- abbreviation: uses_tool_for_warnings_or_mistakes + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 27-06-2025 + description: This indicator checks that the project enables one or more compiler + warning flags, a "safe" language mode, or uses a separate "linter" tool to + look for code quality errors or common simple mistakes, if there is at least + one FLOSS tool that can implement this criterion in the selected language. + identifier: + '@id': https://w3id.org/everse/i/indicators/uses_tool_for_warnings_or_mistakes + keywords: + - linting + - code analysis + - fair + name: Software uses a tool for warnings or mistakes + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/maintainability + source: + - name: 'OpenSSF Best Practices badge: Warning Flags' + url: https://www.bestpractices.dev/en/criteria/0#0.warnings + - '@id': https://zenodo.org/records/10723608 + name: Ensure Software Quality + url: https://zenodo.org/records/10723608 + status: Active + version: 1.0.0 +- abbreviation: version_control_use + alternateName: FRSM-17 + author: + - '@type': schema:Organization + name: Elixir focus group + url: https://zenodo.org/communities/elixir/records + - '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if a software project uses version + control. + identifier: + '@id': https://w3id.org/everse/i/indicators/version_control_use + keywords: + - version + - control + - fair + - repository + - identifier + name: Software makes use of version control + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + sameAs: https://doi.org/10.25504/FAIRsharing.d2b2c5 + source: + - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + - name: 'Software Quality Indicators: extraction, categorisation and recommendations + from canonical sources' + url: https://doi.org/10.5281/zenodo.15474784 + - name: Reference and identification. RSMD-3.1 + url: https://fair-impact.github.io/RSMD-guidelines/3.Reference_identification/ + status: Active + version: 1.0.0 +- abbreviation: versioning_standards_use + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 14-07-2025 + description: This indicator aims to determine if the version (or versions) of + a software tool follows an established community convention like semantic + versioning (SemVer) or calendar versioning (CalVer). + identifier: + '@id': https://w3id.org/everse/i/indicators/versioning_standards_use + keywords: + - version + - versioning + - fair + - releases + name: Software follows versioning standards + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + '@id': https://doi.org/10.5281/zenodo.15535629 + name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://doi.org/10.5281/zenodo.15535629 + status: Active + version: 1.0.0 From 246d802d4410cf8553a1aad80af7440aff1d95fa Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 9 Dec 2025 02:03:02 +0000 Subject: [PATCH 10/47] Automated update of RSQKit data files --- _data/quality_dimensions.yml | 197 +-------- _data/quality_indicators.yml | 779 +---------------------------------- 2 files changed, 2 insertions(+), 974 deletions(-) diff --git a/_data/quality_dimensions.yml b/_data/quality_dimensions.yml index 0a5386bb..fe51488c 100644 --- a/_data/quality_dimensions.yml +++ b/_data/quality_dimensions.yml @@ -1,196 +1 @@ -- abbreviation: compatibility - description: "Degree to which a product, system or component can exchange information\ - \ with other products, systems or components, and/or perform its required\ - \ functions while sharing the same common environment and resources. This\ - \ characteristic is composed of the following sub-characteristics:\n -Co-existence\ - \ - Degree to which a product can perform its required functions efficiently\ - \ while sharing a common environment and resources with other products, without\ - \ detrimental impact on any other product.\n -Interoperability - Degree\ - \ to which a system, product or component can exchange information with other\ - \ products and mutually use the information that has been exchanged." - identifier: https://w3id.org/everse/i/dimensions/compatibility - name: Compatibility - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: fairness - description: 'FAIRness refers to the degree to which research software adheres - to the FAIR principles: Findable, Accessible, Interoperable, and Reusable. - These principles, adapted for research software, aim to enhance the discoverability, - accessibility, interoperability, and reusability of software, thereby maximizing - its value and impact in scientific research.' - identifier: https://w3id.org/everse/i/dimensions/fairness - name: FAIRness - source: - name: Introducing the FAIR Principles for research software - url: https://www.nature.com/articles/s41597-022-01710-x -- abbreviation: flexibility - description: "Degree to which a product can be adapted to changes in its requirements,\ - \ contexts of use or system environment. This characteristic is composed of\ - \ the following sub-characteristics:\n - Adaptability - Degree to which\ - \ a product or system can effectively and efficiently be adapted for or transferred\ - \ to different hardware, software or other operational or usage environments.\n\ - \ - Scalability - Degree to which a product can handle growing or shrinking\ - \ workloads or to adapt its capacity to handle variability.\n - Installability\ - \ - Degree of effectiveness and efficiency with which a product or system\ - \ can be successfully installed and/or uninstalled in a specified environment.\n\ - \ - Replaceability - Degree to which a product can replace another specified\ - \ software product for the same purpose in the same environment." - identifier: https://w3id.org/everse/i/dimensions/flexibility - name: Flexibility - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: functional_suitability - created: 03-04-2025 - description: "This characteristic represents the degree to which a product or\ - \ system provides functions that meet stated and implied needs when used under\ - \ specified conditions. This characteristic is composed of the following sub-characteristics:\ - \ \n Functional completeness - Degree to which the set of functions covers\ - \ all the specified tasks and intended users' objectives.\n Functional\ - \ correctness - Degree to which a product or system provides accurate results\ - \ when used by intended users.\n Functional appropriateness - Degree to\ - \ which the functions facilitate the accomplishment of specified tasks and\ - \ objectives." - identifier: https://w3id.org/everse/i/dimensions/functional_suitability - name: Functional suitability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: interaction_capability - description: "Degree to which a product or system can be interacted with by specified\ - \ users to exchange information via the user interface to complete specific\ - \ tasks in a variety of contexts of use. This characteristic is composed of\ - \ the following sub-characteristics:\n - Appropriateness recognizability\ - \ - Degree to which users can recognize whether a product or system is appropriate\ - \ for their needs.\n - Learnability - Degree to which the functions of\ - \ a product or system can be learnt to be used by specified users within a\ - \ specified amount of time.\n - Operability - Degree to which a product\ - \ or system has attributes that make it easy to operate and control.\n \ - \ - User error protection. Degree to which a system prevents users against\ - \ operation errors.\n - User engagement - Degree to which a user interface\ - \ presents functions and information in an inviting and motivating manner\ - \ encouraging continued interaction.\n - Inclusivity - Degree to which\ - \ a product or system can be used by people of various backgrounds (such as\ - \ people of various ages, abilities, cultures, ethnicities, languages, genders,\ - \ economic situations, etc.).\n - User assistance - Degree to which a product\ - \ can be used by people with the widest range of characteristics and capabilities\ - \ to achieve specified goals in a specified context of use.\n - Self-descriptiveness\ - \ - Degree to which a product presents appropriate information, where needed\ - \ by the user, to make its capabilities and use immediately obvious to the\ - \ user without excessive interactions with a product or other resources (such\ - \ as user documentation, help desks or other users)." - identifier: https://w3id.org/everse/i/dimensions/interaction_capability - name: Interaction Capability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: maintainability - description: "This characteristic represents the degree of effectiveness and efficiency\ - \ with which a product or system can be modified to improve it, correct it\ - \ or adapt it to changes in environment, and in requirements.This characteristic\ - \ is composed of the following sub-characteristics:\n - Modularity - Degree\ - \ to which a system or computer program is composed of discrete components\ - \ such that a change to one component has minimal impact on other components.\n\ - \ - Reusability - Degree to which a product can be used as an asset in\ - \ more than one system, or in building other assets.\n - Analysability\ - \ - Degree of effectiveness and efficiency with which it is possible to assess\ - \ the impact on a product or system of an intended change to one or more of\ - \ its parts, to diagnose a product for deficiencies or causes of failures,\ - \ or to identify parts to be modified.\n - Modifiability - Degree to which\ - \ a product or system can be effectively and efficiently modified without\ - \ introducing defects or degrading existing product quality.\n - Testability\ - \ - Degree of effectiveness and efficiency with which test criteria can be\ - \ established for a system, product or component and tests can be performed\ - \ to determine whether those criteria have been met." - identifier: https://w3id.org/everse/i/dimensions/maintainability - name: Maintainability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: performance_efficiency - description: "This characteristic represents the degree to which a product performs\ - \ its functions within specified time and throughput parameters and is efficient\ - \ in the use of resources (such as CPU, memory, storage, network devices,\ - \ energy, materials...) under specified conditions. This characteristic is\ - \ composed of the following sub-characteristics:\n -Time behaviour - Degree\ - \ to which the response time and throughput rates of a product or system,\ - \ when performing its functions, meet requirements.\n -Resource utilization\ - \ - Degree to which the amounts and types of resources used by a product or\ - \ system, when performing its functions, meet requirements.\n - Capacity\ - \ - Degree to which the maximum limits of a product or system parameter meet\ - \ requirements." - identifier: https://w3id.org/everse/i/dimensions/performance_efficiency - name: Performance Efficiency - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: reliability - description: "Degree to which a system, product or component performs specified\ - \ functions under specified conditions for a specified period of time. This\ - \ characteristic is composed of the following sub-characteristics:\n -\ - \ Faultlessness - Degree to which a system, product or component performs\ - \ specified functions without fault under normal operation.\n - Availability\ - \ - Degree to which a system, product or component is operational and accessible\ - \ when required for use.\n - Fault tolerance - Degree to which a system,\ - \ product or component operates as intended despite the presence of hardware\ - \ or software faults.\n - Recoverability - Degree to which, in the event\ - \ of an interruption or a failure, a product or system can recover the data\ - \ directly affected and re-establish the desired state of the system." - identifier: https://w3id.org/everse/i/dimensions/reliability - name: Reliability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: safety - description: "This characteristic represents the degree to which a product under\ - \ defined conditions to avoid a state in which human life, health, property,\ - \ or the environment is endangered. This characteristic is composed of the\ - \ following sub-characteristics:\n - Operational constraint - Degree to\ - \ which a product or system constrains its operation to within safe parameters\ - \ or states when encountering operational hazard.\n - Risk identification\ - \ - Degree to which a product can identify a course of events or operations\ - \ that can expose life, property or environment to unacceptable risk.\n \ - \ - Fail safe - Degree to which a product can automatically place itself\ - \ in a safe operating mode, or to revert to a safe condition in the event\ - \ of a failure.\n - Hazard warning - Degree to which a product or system\ - \ provides warnings of unacceptable risks to operations or internal controls\ - \ so that they can react in sufficient time to sustain safe operations.\n\ - \ - Safe integration - Degree to which a product can maintain safety during\ - \ and after integration with one or more components." - identifier: https://w3id.org/everse/i/dimensions/safety - name: Safety - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: security - description: "Degree to which a product or system defends against attack patterns\ - \ by malicious actors and protects information and data so that persons or\ - \ other products or systems have the degree of data access appropriate to\ - \ their types and levels of authorization. This characteristic is composed\ - \ of the following sub-characteristics:\n - Confidentiality - Degree to\ - \ which a product or system ensures that data are accessible only to those\ - \ authorized to have access.\n - Integrity - Degree to which a system,\ - \ product or component ensures that the state of its system and data are protected\ - \ from unauthorized modification or deletion either by malicious action or\ - \ computer error.\n - Non-repudiation - Degree to which actions or events\ - \ can be proven to have taken place so that the events or actions cannot be\ - \ repudiated later.\n - Accountability - Degree to which the actions of\ - \ an entity can be traced uniquely to the entity.\n - Authenticity - Degree\ - \ to which the identity of a subject or resource can be proved to be the one\ - \ claimed.\n - Resistance - Degree to which the product or system sustains\ - \ operations while under attack from a malicious actor." - identifier: https://w3id.org/everse/i/dimensions/security - name: Security - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: sustainability - description: The capacity of the software to endure. In other words, sustainability - means that the software will continue to be available in the future, on new - platforms, meeting new needs. - identifier: https://w3id.org/everse/i/dimensions/sustainability - name: Sustainability - source: - name: Defining Software Sustainability - url: https://danielskatzblog.wordpress.com/2016/09/13/defining-software-sustainability/ +[] diff --git a/_data/quality_indicators.yml b/_data/quality_indicators.yml index 4a66d056..fe51488c 100644 --- a/_data/quality_indicators.yml +++ b/_data/quality_indicators.yml @@ -1,778 +1 @@ -- abbreviation: archived_in_scholarly_repository - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-06-2025 - description: 'The source code repository is archived in a scholarly repository - (e.g Zenodo, HAL) to ensure that software can be found and accessed in a scholarly - context ' - identifier: - '@id': https://w3id.org/everse/i/indicators/archived_in_scholarly_repository - keywords: - - repository - - fair - - scholar - name: Software is archived in a scholarly repository - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - '@id': https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ - name: Accessibility and preservation. RSMD 2.2 - url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/#accessibility-and-preservation - status: Active - version: 1.0.0 -- abbreviation: archived_in_software_heritage - alternateName: FRSM-08 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-06-2025 - description: The source code repository is found in the universal source code - archive, Software Heritage, to ensure long-term access to the full development - history. - identifier: - '@id': https://w3id.org/everse/i/indicators/archived_in_software_heritage - keywords: - - repository - - fair - - software heritage - name: Software is archived in Software Heritage - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - '@id': https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ - name: Accessibility and preservation. RSMD 2.1 - url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/#accessibility-and-preservation - status: Active - version: 1.0.0 -- abbreviation: codemeta_completeness - author: - - '@type': schema:Person - name: Thomas Vuillaume - - '@type': schema:Person - name: Daniel Garijo - contact: - '@type': Person - name: Thomas Vuillaume - created: 20-03-2025 - description: Indicator that checks the completeness of a codemeta.json file, i.e., - the percentage of properties that are filled with metadata. This indicator - does not assess the quality of the metadata fields available. - identifier: - '@id': https://w3id.org/everse/i/indicators/codemeta_completeness - keywords: - - codemeta - - metadata - - fair - name: CodeMeta completeness - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - status: Active - version: 1.0.0 -- abbreviation: dependency_management - author: - '@type': Person - name: Faruk Diblen - contact: - '@type': Person - name: Faruk Diblen - created: 03-04-2025 - description: Reviews how external libraries and dependencies are managed to ensure - compatibility and security. - identifier: - '@id': https://w3id.org/everse/i/indicators/dependency_management - keywords: - - sustaninability - - dependencies - name: Software has dependency management solution - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/sustainability - - '@id': https://w3id.org/everse/i/dimensions/security - - '@id': https://w3id.org/everse/i/dimensions/compatibility - source: - - identifier: https://zenodo.org/record/14852424 - name: 'Software Quality Indicators from BioHackathon 2024 (Sheet: Sustanability, - Row: Su7)' - url: https://zenodo.org/records/14852424/files/Software%20Quality%20Indicators.xlsx - - name: RSMD checklist - url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ - status: Active - version: 1.0.0 -- abbreviation: descriptive_metadata - alternateName: FRSM-06 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: 'This indicator aims to determine if a software component comes with - descriptive metadata that provides information. This includes, but is not - limited to: name, domain, programming language, date created, date of first - publication, keywords, related links, etc..' - identifier: - '@id': https://w3id.org/everse/i/indicators/descriptive_metadata - keywords: - - metadata - - software - - fair - - findability - name: Software has descriptive metadata - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - - name: Description & classification. RSMD-4.1 - url: https://fair-impact.github.io/RSMD-guidelines/4.Description_Classification/ - status: Active - version: 1.0.0 -- abbreviation: has_ci-tests - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if the project runs tests before - pull requests are merged. - identifier: - '@id': https://w3id.org/everse/i/indicators/software_has_ci-tests - keywords: - - continuous - - integration - - test - name: Software has continuous integration tests - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/maintainability - source: - name: 'OpenSSF Scorecard: CI-Tests' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#ci-tests - status: Active - version: 1.0.0 -- abbreviation: software_has_citation - alternateName: FRSM-12 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if the project uses a citation to - reference contributors and authors (e.g., through a CFF file, in the README, - etc). - identifier: - '@id': https://w3id.org/everse/i/indicators/software_has_citation - keywords: - - citation - - metadata - - fair - - contributors - name: Software uses citation - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - sameAs: https://doi.org/10.25504/FAIRsharing.c585c5 - source: - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - status: Active - version: 1.0.0 -- abbreviation: software_has_license - alternateName: FRSM-15 - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This check tries to determine if the project has published a license - identifier: - '@id': https://w3id.org/everse/i/indicators/software_has_license - keywords: - - license - - metadata - - fair - name: Software has license - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - - name: 'OpenSSF Scorecard: License' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#license - - name: Reuse, licensing and legal aspects. RSMD-6.2 - url: https://fair-impact.github.io/RSMD-guidelines/6.Reuse_legal/ - status: Active - version: 1.0.0 -- abbreviation: has_no_linting_issues - alternateName: has_no_linting_issues - author: - '@type': schema:Organization - name: Super-Linter - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-06-2025 - description: The project addresses or resolves warnings identified by compilers, - safe modes, or linters. - identifier: - '@id': https://w3id.org/everse/i/indicators/has_no_linting_issues - keywords: - - linting - - code analysis - - fair - name: Software has no linting issues - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/maintainability - source: - - name: Super-Linter - url: https://github.com/super-linter/super-linter - - name: OpenSSF best practices - url: https://www.bestpractices.dev/en/criteria/0#0.warnings_fixed - status: Active - version: 1.0.0 -- abbreviation: has_published_package - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if a software project is published - as a downloadable package. - identifier: - '@id': https://w3id.org/everse/i/indicators/has_published_package - keywords: - - release - - fair - - package - - packaging - name: Software is published as a downloadable package - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/flexibility - source: - name: 'OpenSSF Scorecard: Packaging' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#packaging - status: Active - version: 1.0.0 -- abbreviation: has_releases - alternateName: FRSM-03 - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: To enable collaborative review, the project's source repository MUST - include interim versions for review between releases; it MUST NOT include - only final releases. This indicator determines if a software project has releases. - This can be achieved by looking for tags or using software that retrieves - related data. - identifier: - '@id': https://w3id.org/everse/i/indicators/has_releases - keywords: - - releases - - repository - - fair - name: Software has releases - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/maintainability - - '@id': https://w3id.org/everse/i/dimensions/fairness - sameAs: https://doi.org/10.25504/FAIRsharing.ef9fc3 - source: - name: OpenSSF Best Practices (change control) - url: https://www.bestpractices.dev/en/criteria/0#0.repo_interim - status: Active - version: 1.0.0 -- abbreviation: human_code_review_requirement - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if a software project requires human - code review before pull requests. - identifier: - '@id': https://w3id.org/everse/i/indicators/human_code_review_requirement - keywords: - - human-in-the-loop - - pull request - - review - name: Software requires human code review. - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/functional_suitability - source: - name: 'OpenSSF Scorecard: Code-Review' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#code-review - status: Active - version: 1.0.0 -- abbreviation: listed_in_registry - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-06-2025 - description: The target source code repository is in a disciplinary or community - registry (e.g ascl.net, bio.tools, swMath, RRID portal, RSD, WikiData, DataCite, - etc.) to ensure that software can be found and accessed. - identifier: - '@id': https://w3id.org/everse/i/indicators/listed_in_registry - keywords: - - repository - - fair - - software heritage, zenodo - name: Software is listed in a registry - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - '@id': https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ - name: Accessibility and preservation. RSMD 2.3 - url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/#accessibility-and-preservation - status: Active - version: 1.0.0 -- abbreviation: metadata_is_up_to_date - author: - - '@type': schema:Person - name: Tom François - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Thomas Vuillaume - contact: - - '@type': schema:Person - name: Tom François - - '@type': schema:Person - name: Daniel Garijo - created: 24-09-2025 - description: Metadata information reflects the current description of a software - project. This indicator ensures that the current project metadata provides - up to date, accurate and relevant information about a software component. - identifier: - '@id': https://w3id.org/everse/i/indicators/metadata_is_up_to_date - keywords: - - metadata - - software - - fair - - findability - - maintainability - name: Software has up-to-date metadata - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/maintainability - source: - - name: 'EOSC-SWRelMan-11: Metadata: Supportability, Maintainability, Availability.' - url: https://doi.org/10.5281/zenodo.10647227 - status: Active - version: 1.0.0 -- abbreviation: no_critical_vulnerability - author: - - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - '@type': schema:Person - name: Tom François - schema:email: tom.francois@lapp.in2p3.fr - created: 03-04-2025 - description: Checks if reported critical vulnerabilities have been fixed - identifier: - '@id': https://w3id.org/everse/i/indicators/no_critical_vulnerability - keywords: - - security - - critical - - vulnerability - name: No critical vulnerabilities - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/security - source: - - '@id': https://www.bestpractices.dev/en/criteria/0#0.vulnerabilities_critical_fixed - name: OpenSSF Best practice Critical Vulnerability Fixed - status: Active - version: 1.0.0 -- abbreviation: no_leaked_credentials - author: - - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - '@type': schema:Person - name: Tom François - schema:email: tom.francois@lapp.in2p3.fr - description: Checks if hardcoded secrets like passwords, API keys, and tokens - is stored in the public git repository - identifier: - '@id': https://w3id.org/everse/i/indicators/no_leaked_credentials - keywords: - - security - - credential - - leak - - secret - - password - name: No leaked credentials - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/security - source: - - '@id': https://www.bestpractices.dev/en/criteria/0#0.no_leaked_credentials - name: OpenSSF Best practice No Leaked Credentials - status: Active - version: 1.0.0 -- abbreviation: persistent_and_unique_identifier - alternateName: FRSM-01 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator tries to determine if the software identifier is based - on a suitable identifier scheme, and test it can be resolved. This is done - by checking if the identifier uses an identifier scheme contained in a list - of globally unique identifier schemes - identifier: - '@id': https://w3id.org/everse/i/indicators/persistent_and_unique_identifier - keywords: - - identifier - - unique - - fair - - persistent - - metadata - name: Software has persistent and unique identifier - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - sameAs: https://doi.org/10.25504/FAIRsharing.87c9a8 - source: - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - status: Active - version: 1.0.0 -- abbreviation: repository_workflows - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator tries aims determine if a software project makes use - of workflows to automate processes like testing and deployment. - identifier: - '@id': https://w3id.org/everse/i/indicators/repository_workflows - keywords: - - workflows - - github - - fair - - repository - name: Software has ci/cd workflows in its repository - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/maintainability - source: - - name: 'OpenSSF Scorecard: CI-Tests' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#ci-tests - status: Active - version: 1.0.0 -- abbreviation: requirements_specified - alternateName: FRSM-13 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator tries to determine if the project specifies what is - required to use the software. - identifier: - '@id': https://w3id.org/everse/i/indicators/requirements_specified - keywords: - - documentation - - requirements - - dependencies - - fair - name: Software specifies requirements - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/flexibility - - '@id': https://w3id.org/everse/i/dimensions/maintainability - sameAs: https://doi.org/10.25504/FAIRsharing.b8eeb9 - source: - - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - - name: 'RSMD Guidelines - Re-execute: dependencies and execution environment' - url: https://fair-impact.github.io/RSMD-guidelines/7.Re-execute/ - status: Active - version: 1.0.0 -- abbreviation: software_documentation - alternateName: FRSM-05 - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if a software project comes with - many forms of documentation like readme or readthedocs - identifier: - '@id': https://w3id.org/everse/i/indicators/software_documentation - keywords: - - documentation - - fair - - usage - - readme - name: Software has documentation - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/interaction_capability - sameAs: https://doi.org/10.25504/FAIRsharing.452bcd - source: - name: FLOSS Best Practices Criteria - url: https://www.bestpractices.dev/en/criteria/0#0.documentation_basics - status: Active - version: 1.0.0 -- abbreviation: software_has_tests - alternateName: FRSM-14 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: Evaluates the extent to which the software has been tested, including - unit tests, integration tests, and system tests, to ensure reliability and - correctness. - identifier: - '@id': https://w3id.org/everse/i/indicators/software_has_tests - keywords: - - test - - functionality - - fair - name: Software provides tests. - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/reliability - sameAs: https://doi.org/10.25504/FAIRsharing.a2dd1a - source: - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - status: Active - version: 1.0.0 -- abbreviation: static_analysis_common_vulnerabilities - author: - '@type': Organization - name: OpenSSF - url: https://openssf.org/ - contactPoint: - '@type': schema:Person - email: thomas.vuillaume@lapp.in2p3.fr - name: Thomas Vuillaume - created: 03-04-2025 - description: At least one static code analysis tool used includes rules or techniques - to detect common vulnerabilities specific to the language or environment. - identifier: - '@id': https://w3id.org/everse/i/indicators/static_analysis_common_vulnerabilities - keywords: - - security - - vulnerabilities - - static analysis - name: has static analysis for common vulnerabilities - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/security - source: - '@id': https://www.bestpractices.dev/en/criteria/0 - name: FLOSS Best Practices Criteria (Passing Badge) - url: https://www.bestpractices.dev/en/criteria/0#0.static_analysis_common_vulnerabilities - status: Active - version: 1.0.0 -- abbreviation: fuzzing_use - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-06-2025 - description: 'This indicator checks that If the software produced by the project - includes software written using a memory-unsafe language (e.g., C or C++), - then at least one dynamic tool (e.g., a fuzzer or web application scanner) - be routinely used in combination with a mechanism to detect memory safety - problems such as buffer overwrites. ' - identifier: - '@id': https://w3id.org/everse/i/indicators/fuzzing_use - keywords: - - fuzzing - - test - - code - name: Software uses fuzzing - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/safety - source: - name: 'OpenSSF Scorecard: Fuzzing' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#fuzzing - status: Active - version: 1.0.0 -- abbreviation: uses_tool_for_warnings_or_mistakes - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 27-06-2025 - description: This indicator checks that the project enables one or more compiler - warning flags, a "safe" language mode, or uses a separate "linter" tool to - look for code quality errors or common simple mistakes, if there is at least - one FLOSS tool that can implement this criterion in the selected language. - identifier: - '@id': https://w3id.org/everse/i/indicators/uses_tool_for_warnings_or_mistakes - keywords: - - linting - - code analysis - - fair - name: Software uses a tool for warnings or mistakes - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/maintainability - source: - - name: 'OpenSSF Best Practices badge: Warning Flags' - url: https://www.bestpractices.dev/en/criteria/0#0.warnings - - '@id': https://zenodo.org/records/10723608 - name: Ensure Software Quality - url: https://zenodo.org/records/10723608 - status: Active - version: 1.0.0 -- abbreviation: version_control_use - alternateName: FRSM-17 - author: - - '@type': schema:Organization - name: Elixir focus group - url: https://zenodo.org/communities/elixir/records - - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if a software project uses version - control. - identifier: - '@id': https://w3id.org/everse/i/indicators/version_control_use - keywords: - - version - - control - - fair - - repository - - identifier - name: Software makes use of version control - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - sameAs: https://doi.org/10.25504/FAIRsharing.d2b2c5 - source: - - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - - name: 'Software Quality Indicators: extraction, categorisation and recommendations - from canonical sources' - url: https://doi.org/10.5281/zenodo.15474784 - - name: Reference and identification. RSMD-3.1 - url: https://fair-impact.github.io/RSMD-guidelines/3.Reference_identification/ - status: Active - version: 1.0.0 -- abbreviation: versioning_standards_use - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 14-07-2025 - description: This indicator aims to determine if the version (or versions) of - a software tool follows an established community convention like semantic - versioning (SemVer) or calendar versioning (CalVer). - identifier: - '@id': https://w3id.org/everse/i/indicators/versioning_standards_use - keywords: - - version - - versioning - - fair - - releases - name: Software follows versioning standards - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - '@id': https://doi.org/10.5281/zenodo.15535629 - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://doi.org/10.5281/zenodo.15535629 - status: Active - version: 1.0.0 +[] From 00033afaf75c2d91a331341da5eb7cfa3445d9af Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 10 Dec 2025 02:05:02 +0000 Subject: [PATCH 11/47] Automated update of RSQKit data files --- _data/quality_dimensions.yml | 197 ++++++++- _data/quality_indicators.yml | 779 ++++++++++++++++++++++++++++++++++- 2 files changed, 974 insertions(+), 2 deletions(-) diff --git a/_data/quality_dimensions.yml b/_data/quality_dimensions.yml index fe51488c..0a5386bb 100644 --- a/_data/quality_dimensions.yml +++ b/_data/quality_dimensions.yml @@ -1 +1,196 @@ -[] +- abbreviation: compatibility + description: "Degree to which a product, system or component can exchange information\ + \ with other products, systems or components, and/or perform its required\ + \ functions while sharing the same common environment and resources. This\ + \ characteristic is composed of the following sub-characteristics:\n -Co-existence\ + \ - Degree to which a product can perform its required functions efficiently\ + \ while sharing a common environment and resources with other products, without\ + \ detrimental impact on any other product.\n -Interoperability - Degree\ + \ to which a system, product or component can exchange information with other\ + \ products and mutually use the information that has been exchanged." + identifier: https://w3id.org/everse/i/dimensions/compatibility + name: Compatibility + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: fairness + description: 'FAIRness refers to the degree to which research software adheres + to the FAIR principles: Findable, Accessible, Interoperable, and Reusable. + These principles, adapted for research software, aim to enhance the discoverability, + accessibility, interoperability, and reusability of software, thereby maximizing + its value and impact in scientific research.' + identifier: https://w3id.org/everse/i/dimensions/fairness + name: FAIRness + source: + name: Introducing the FAIR Principles for research software + url: https://www.nature.com/articles/s41597-022-01710-x +- abbreviation: flexibility + description: "Degree to which a product can be adapted to changes in its requirements,\ + \ contexts of use or system environment. This characteristic is composed of\ + \ the following sub-characteristics:\n - Adaptability - Degree to which\ + \ a product or system can effectively and efficiently be adapted for or transferred\ + \ to different hardware, software or other operational or usage environments.\n\ + \ - Scalability - Degree to which a product can handle growing or shrinking\ + \ workloads or to adapt its capacity to handle variability.\n - Installability\ + \ - Degree of effectiveness and efficiency with which a product or system\ + \ can be successfully installed and/or uninstalled in a specified environment.\n\ + \ - Replaceability - Degree to which a product can replace another specified\ + \ software product for the same purpose in the same environment." + identifier: https://w3id.org/everse/i/dimensions/flexibility + name: Flexibility + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: functional_suitability + created: 03-04-2025 + description: "This characteristic represents the degree to which a product or\ + \ system provides functions that meet stated and implied needs when used under\ + \ specified conditions. This characteristic is composed of the following sub-characteristics:\ + \ \n Functional completeness - Degree to which the set of functions covers\ + \ all the specified tasks and intended users' objectives.\n Functional\ + \ correctness - Degree to which a product or system provides accurate results\ + \ when used by intended users.\n Functional appropriateness - Degree to\ + \ which the functions facilitate the accomplishment of specified tasks and\ + \ objectives." + identifier: https://w3id.org/everse/i/dimensions/functional_suitability + name: Functional suitability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: interaction_capability + description: "Degree to which a product or system can be interacted with by specified\ + \ users to exchange information via the user interface to complete specific\ + \ tasks in a variety of contexts of use. This characteristic is composed of\ + \ the following sub-characteristics:\n - Appropriateness recognizability\ + \ - Degree to which users can recognize whether a product or system is appropriate\ + \ for their needs.\n - Learnability - Degree to which the functions of\ + \ a product or system can be learnt to be used by specified users within a\ + \ specified amount of time.\n - Operability - Degree to which a product\ + \ or system has attributes that make it easy to operate and control.\n \ + \ - User error protection. Degree to which a system prevents users against\ + \ operation errors.\n - User engagement - Degree to which a user interface\ + \ presents functions and information in an inviting and motivating manner\ + \ encouraging continued interaction.\n - Inclusivity - Degree to which\ + \ a product or system can be used by people of various backgrounds (such as\ + \ people of various ages, abilities, cultures, ethnicities, languages, genders,\ + \ economic situations, etc.).\n - User assistance - Degree to which a product\ + \ can be used by people with the widest range of characteristics and capabilities\ + \ to achieve specified goals in a specified context of use.\n - Self-descriptiveness\ + \ - Degree to which a product presents appropriate information, where needed\ + \ by the user, to make its capabilities and use immediately obvious to the\ + \ user without excessive interactions with a product or other resources (such\ + \ as user documentation, help desks or other users)." + identifier: https://w3id.org/everse/i/dimensions/interaction_capability + name: Interaction Capability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: maintainability + description: "This characteristic represents the degree of effectiveness and efficiency\ + \ with which a product or system can be modified to improve it, correct it\ + \ or adapt it to changes in environment, and in requirements.This characteristic\ + \ is composed of the following sub-characteristics:\n - Modularity - Degree\ + \ to which a system or computer program is composed of discrete components\ + \ such that a change to one component has minimal impact on other components.\n\ + \ - Reusability - Degree to which a product can be used as an asset in\ + \ more than one system, or in building other assets.\n - Analysability\ + \ - Degree of effectiveness and efficiency with which it is possible to assess\ + \ the impact on a product or system of an intended change to one or more of\ + \ its parts, to diagnose a product for deficiencies or causes of failures,\ + \ or to identify parts to be modified.\n - Modifiability - Degree to which\ + \ a product or system can be effectively and efficiently modified without\ + \ introducing defects or degrading existing product quality.\n - Testability\ + \ - Degree of effectiveness and efficiency with which test criteria can be\ + \ established for a system, product or component and tests can be performed\ + \ to determine whether those criteria have been met." + identifier: https://w3id.org/everse/i/dimensions/maintainability + name: Maintainability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: performance_efficiency + description: "This characteristic represents the degree to which a product performs\ + \ its functions within specified time and throughput parameters and is efficient\ + \ in the use of resources (such as CPU, memory, storage, network devices,\ + \ energy, materials...) under specified conditions. This characteristic is\ + \ composed of the following sub-characteristics:\n -Time behaviour - Degree\ + \ to which the response time and throughput rates of a product or system,\ + \ when performing its functions, meet requirements.\n -Resource utilization\ + \ - Degree to which the amounts and types of resources used by a product or\ + \ system, when performing its functions, meet requirements.\n - Capacity\ + \ - Degree to which the maximum limits of a product or system parameter meet\ + \ requirements." + identifier: https://w3id.org/everse/i/dimensions/performance_efficiency + name: Performance Efficiency + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: reliability + description: "Degree to which a system, product or component performs specified\ + \ functions under specified conditions for a specified period of time. This\ + \ characteristic is composed of the following sub-characteristics:\n -\ + \ Faultlessness - Degree to which a system, product or component performs\ + \ specified functions without fault under normal operation.\n - Availability\ + \ - Degree to which a system, product or component is operational and accessible\ + \ when required for use.\n - Fault tolerance - Degree to which a system,\ + \ product or component operates as intended despite the presence of hardware\ + \ or software faults.\n - Recoverability - Degree to which, in the event\ + \ of an interruption or a failure, a product or system can recover the data\ + \ directly affected and re-establish the desired state of the system." + identifier: https://w3id.org/everse/i/dimensions/reliability + name: Reliability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: safety + description: "This characteristic represents the degree to which a product under\ + \ defined conditions to avoid a state in which human life, health, property,\ + \ or the environment is endangered. This characteristic is composed of the\ + \ following sub-characteristics:\n - Operational constraint - Degree to\ + \ which a product or system constrains its operation to within safe parameters\ + \ or states when encountering operational hazard.\n - Risk identification\ + \ - Degree to which a product can identify a course of events or operations\ + \ that can expose life, property or environment to unacceptable risk.\n \ + \ - Fail safe - Degree to which a product can automatically place itself\ + \ in a safe operating mode, or to revert to a safe condition in the event\ + \ of a failure.\n - Hazard warning - Degree to which a product or system\ + \ provides warnings of unacceptable risks to operations or internal controls\ + \ so that they can react in sufficient time to sustain safe operations.\n\ + \ - Safe integration - Degree to which a product can maintain safety during\ + \ and after integration with one or more components." + identifier: https://w3id.org/everse/i/dimensions/safety + name: Safety + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: security + description: "Degree to which a product or system defends against attack patterns\ + \ by malicious actors and protects information and data so that persons or\ + \ other products or systems have the degree of data access appropriate to\ + \ their types and levels of authorization. This characteristic is composed\ + \ of the following sub-characteristics:\n - Confidentiality - Degree to\ + \ which a product or system ensures that data are accessible only to those\ + \ authorized to have access.\n - Integrity - Degree to which a system,\ + \ product or component ensures that the state of its system and data are protected\ + \ from unauthorized modification or deletion either by malicious action or\ + \ computer error.\n - Non-repudiation - Degree to which actions or events\ + \ can be proven to have taken place so that the events or actions cannot be\ + \ repudiated later.\n - Accountability - Degree to which the actions of\ + \ an entity can be traced uniquely to the entity.\n - Authenticity - Degree\ + \ to which the identity of a subject or resource can be proved to be the one\ + \ claimed.\n - Resistance - Degree to which the product or system sustains\ + \ operations while under attack from a malicious actor." + identifier: https://w3id.org/everse/i/dimensions/security + name: Security + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: sustainability + description: The capacity of the software to endure. In other words, sustainability + means that the software will continue to be available in the future, on new + platforms, meeting new needs. + identifier: https://w3id.org/everse/i/dimensions/sustainability + name: Sustainability + source: + name: Defining Software Sustainability + url: https://danielskatzblog.wordpress.com/2016/09/13/defining-software-sustainability/ diff --git a/_data/quality_indicators.yml b/_data/quality_indicators.yml index fe51488c..fd610b8c 100644 --- a/_data/quality_indicators.yml +++ b/_data/quality_indicators.yml @@ -1 +1,778 @@ -[] +- abbreviation: archived_in_scholarly_repository + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-06-2025 + description: 'The source code repository is archived in a scholarly repository + (e.g Zenodo, HAL) to ensure that software can be found and accessed in a scholarly + context ' + identifier: + '@id': https://w3id.org/everse/i/indicators/archived_in_scholarly_repository + keywords: + - repository + - fair + - scholar + name: Software is archived in a scholarly repository + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + '@id': https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ + name: Accessibility and preservation. RSMD 2.2 + url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/#accessibility-and-preservation + status: Active + version: 1.0.0 +- abbreviation: archived_in_software_heritage + alternateName: FRSM-08 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-06-2025 + description: The source code repository is found in the universal source code + archive, Software Heritage, to ensure long-term access to the full development + history. + identifier: + '@id': https://w3id.org/everse/i/indicators/archived_in_software_heritage + keywords: + - repository + - fair + - software heritage + name: Software is archived in Software Heritage + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + '@id': https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ + name: Accessibility and preservation. RSMD 2.1 + url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/#accessibility-and-preservation + status: Active + version: 1.0.0 +- abbreviation: codemeta_completeness + author: + - '@type': schema:Person + name: Thomas Vuillaume + - '@type': schema:Person + name: Daniel Garijo + contact: + '@type': Person + name: Thomas Vuillaume + created: 20-03-2025 + description: Indicator that checks the completeness of a codemeta.json file, i.e., + the percentage of properties that are filled with metadata. This indicator + does not assess the quality of the metadata fields available. + identifier: + '@id': https://w3id.org/everse/i/indicators/codemeta_completeness + keywords: + - codemeta + - metadata + - fair + name: CodeMeta completeness + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + status: Active + version: 1.0.0 +- abbreviation: dependency_management + author: + '@type': Person + name: Faruk Diblen + contact: + '@type': Person + name: Faruk Diblen + created: 03-04-2025 + description: Reviews how external libraries and dependencies are managed to ensure + compatibility and security. + identifier: + '@id': https://w3id.org/everse/i/indicators/dependency_management + keywords: + - sustaninability + - dependencies + name: Software has dependency management solution + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/sustainability + - '@id': https://w3id.org/everse/i/dimensions/security + - '@id': https://w3id.org/everse/i/dimensions/compatibility + source: + - identifier: https://zenodo.org/record/14852424 + name: 'Software Quality Indicators from BioHackathon 2024 (Sheet: Sustanability, + Row: Su7)' + url: https://zenodo.org/records/14852424/files/Software%20Quality%20Indicators.xlsx + - name: RSMD checklist + url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ + status: Active + version: 1.0.0 +- abbreviation: descriptive_metadata + alternateName: FRSM-06 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: 'This indicator aims to determine if a software component comes with + descriptive metadata that provides information. This includes, but is not + limited to: name, domain, programming language, date created, date of first + publication, keywords, related links, etc..' + identifier: + '@id': https://w3id.org/everse/i/indicators/descriptive_metadata + keywords: + - metadata + - software + - fair + - findability + name: Software has descriptive metadata + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + - name: Description & classification. RSMD-4.1 + url: https://fair-impact.github.io/RSMD-guidelines/4.Description_Classification/ + status: Active + version: 1.0.0 +- abbreviation: has_ci-tests + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if the project runs tests before + pull requests are merged. + identifier: + '@id': https://w3id.org/everse/i/indicators/software_has_ci-tests + keywords: + - continuous + - integration + - test + name: Software has continuous integration tests + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/maintainability + source: + name: 'OpenSSF Scorecard: CI-Tests' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#ci-tests + status: Active + version: 1.0.0 +- abbreviation: has_no_linting_issues + alternateName: has_no_linting_issues + author: + '@type': schema:Organization + name: Super-Linter + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-06-2025 + description: The project addresses or resolves warnings identified by compilers, + safe modes, or linters. + identifier: + '@id': https://w3id.org/everse/i/indicators/has_no_linting_issues + keywords: + - linting + - code analysis + - fair + name: Software has no linting issues + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/maintainability + source: + - name: Super-Linter + url: https://github.com/super-linter/super-linter + - name: OpenSSF best practices + url: https://www.bestpractices.dev/en/criteria/0#0.warnings_fixed + status: Active + version: 1.0.0 +- abbreviation: has_published_package + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if a software project is published + as a downloadable package. + identifier: + '@id': https://w3id.org/everse/i/indicators/has_published_package + keywords: + - release + - fair + - package + - packaging + name: Software is published as a downloadable package + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/flexibility + source: + name: 'OpenSSF Scorecard: Packaging' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#packaging + status: Active + version: 1.0.0 +- abbreviation: has_releases + alternateName: FRSM-03 + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: To enable collaborative review, the project's source repository MUST + include interim versions for review between releases; it MUST NOT include + only final releases. This indicator determines if a software project has releases. + This can be achieved by looking for tags or using software that retrieves + related data. + identifier: + '@id': https://w3id.org/everse/i/indicators/has_releases + keywords: + - releases + - repository + - fair + name: Software has releases + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/maintainability + - '@id': https://w3id.org/everse/i/dimensions/fairness + sameAs: https://doi.org/10.25504/FAIRsharing.ef9fc3 + source: + name: OpenSSF Best Practices (change control) + url: https://www.bestpractices.dev/en/criteria/0#0.repo_interim + status: Active + version: 1.0.0 +- abbreviation: human_code_review_requirement + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if a software project requires human + code review before pull requests. + identifier: + '@id': https://w3id.org/everse/i/indicators/human_code_review_requirement + keywords: + - human-in-the-loop + - pull request + - review + name: Software requires human code review. + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/functional_suitability + source: + name: 'OpenSSF Scorecard: Code-Review' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#code-review + status: Active + version: 1.0.0 +- abbreviation: listed_in_registry + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-06-2025 + description: The target source code repository is in a disciplinary or community + registry (e.g ascl.net, bio.tools, swMath, RRID portal, RSD, WikiData, DataCite, + etc.) to ensure that software can be found and accessed. + identifier: + '@id': https://w3id.org/everse/i/indicators/listed_in_registry + keywords: + - repository + - fair + - software heritage, zenodo + name: Software is listed in a registry + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + '@id': https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ + name: Accessibility and preservation. RSMD 2.3 + url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/#accessibility-and-preservation + status: Active + version: 1.0.0 +- abbreviation: metadata_is_up_to_date + author: + - '@type': schema:Person + name: Tom François + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Thomas Vuillaume + contact: + - '@type': schema:Person + name: Tom François + - '@type': schema:Person + name: Daniel Garijo + created: 24-09-2025 + description: Metadata information reflects the current description of a software + project. This indicator ensures that the current project metadata provides + up to date, accurate and relevant information about a software component. + identifier: + '@id': https://w3id.org/everse/i/indicators/metadata_is_up_to_date + keywords: + - metadata + - software + - fair + - findability + - maintainability + name: Software has up-to-date metadata + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/maintainability + source: + - name: 'EOSC-SWRelMan-11: Metadata: Supportability, Maintainability, Availability.' + url: https://doi.org/10.5281/zenodo.10647227 + status: Active + version: 1.0.0 +- abbreviation: no_critical_vulnerability + author: + - '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + '@type': schema:Person + name: Tom François + schema:email: tom.francois@lapp.in2p3.fr + created: 03-04-2025 + description: Checks if reported critical vulnerabilities have been fixed + identifier: + '@id': https://w3id.org/everse/i/indicators/no_critical_vulnerability + keywords: + - security + - critical + - vulnerability + name: No critical vulnerabilities + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/security + source: + - '@id': https://www.bestpractices.dev/en/criteria/0#0.vulnerabilities_critical_fixed + name: OpenSSF Best practice Critical Vulnerability Fixed + status: Active + version: 1.0.0 +- abbreviation: no_leaked_credentials + author: + - '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + '@type': schema:Person + name: Tom François + schema:email: tom.francois@lapp.in2p3.fr + description: Checks if hardcoded secrets like passwords, API keys, and tokens + is stored in the public git repository + identifier: + '@id': https://w3id.org/everse/i/indicators/no_leaked_credentials + keywords: + - security + - credential + - leak + - secret + - password + name: No leaked credentials + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/security + source: + - '@id': https://www.bestpractices.dev/en/criteria/0#0.no_leaked_credentials + name: OpenSSF Best practice No Leaked Credentials + status: Active + version: 1.0.0 +- abbreviation: persistent_and_unique_identifier + alternateName: FRSM-01 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator tries to determine if the software identifier is based + on a suitable identifier scheme, and test it can be resolved. This is done + by checking if the identifier uses an identifier scheme contained in a list + of globally unique identifier schemes + identifier: + '@id': https://w3id.org/everse/i/indicators/persistent_and_unique_identifier + keywords: + - identifier + - unique + - fair + - persistent + - metadata + name: Software has persistent and unique identifier + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + sameAs: https://doi.org/10.25504/FAIRsharing.87c9a8 + source: + name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + status: Active + version: 1.0.0 +- abbreviation: repository_workflows + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator tries aims determine if a software project makes use + of workflows to automate processes like testing and deployment. + identifier: + '@id': https://w3id.org/everse/i/indicators/repository_workflows + keywords: + - workflows + - github + - fair + - repository + name: Software has ci/cd workflows in its repository + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/maintainability + source: + - name: 'OpenSSF Scorecard: CI-Tests' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#ci-tests + status: Active + version: 1.0.0 +- abbreviation: requirements_specified + alternateName: FRSM-13 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator tries to determine if the project specifies what is + required to use the software. + identifier: + '@id': https://w3id.org/everse/i/indicators/requirements_specified + keywords: + - documentation + - requirements + - dependencies + - fair + name: Software specifies requirements + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/flexibility + - '@id': https://w3id.org/everse/i/dimensions/maintainability + sameAs: https://doi.org/10.25504/FAIRsharing.b8eeb9 + source: + - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + - name: 'RSMD Guidelines - Re-execute: dependencies and execution environment' + url: https://fair-impact.github.io/RSMD-guidelines/7.Re-execute/ + status: Active + version: 1.0.0 +- abbreviation: software_has_citation + alternateName: FRSM-12 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if the project uses a citation to + reference contributors and authors (e.g., through a CFF file, in the README, + etc). + identifier: + '@id': https://w3id.org/everse/i/indicators/software_has_citation + keywords: + - citation + - metadata + - fair + - contributors + name: Software uses citation + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + sameAs: https://doi.org/10.25504/FAIRsharing.c585c5 + source: + name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + status: Active + version: 1.0.0 +- abbreviation: software_documentation + alternateName: FRSM-05 + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if a software project comes with + many forms of documentation like readme or readthedocs + identifier: + '@id': https://w3id.org/everse/i/indicators/software_has_documentation + keywords: + - documentation + - fair + - usage + - readme + name: Software has documentation + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/interaction_capability + sameAs: https://doi.org/10.25504/FAIRsharing.452bcd + source: + name: FLOSS Best Practices Criteria + url: https://www.bestpractices.dev/en/criteria/0#0.documentation_basics + status: Active + version: 1.0.0 +- abbreviation: software_has_license + alternateName: FRSM-15 + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This check tries to determine if the project has published a license + identifier: + '@id': https://w3id.org/everse/i/indicators/software_has_license + keywords: + - license + - metadata + - fair + name: Software has license + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + - name: 'OpenSSF Scorecard: License' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#license + - name: Reuse, licensing and legal aspects. RSMD-6.2 + url: https://fair-impact.github.io/RSMD-guidelines/6.Reuse_legal/ + status: Active + version: 1.0.0 +- abbreviation: software_has_tests + alternateName: FRSM-14 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: Evaluates the extent to which the software has been tested, including + unit tests, integration tests, and system tests, to ensure reliability and + correctness. + identifier: + '@id': https://w3id.org/everse/i/indicators/software_has_tests + keywords: + - test + - functionality + - fair + name: Software provides tests. + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/reliability + sameAs: https://doi.org/10.25504/FAIRsharing.a2dd1a + source: + name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + status: Active + version: 1.0.0 +- abbreviation: static_analysis_common_vulnerabilities + author: + '@type': Organization + name: OpenSSF + url: https://openssf.org/ + contactPoint: + '@type': schema:Person + email: thomas.vuillaume@lapp.in2p3.fr + name: Thomas Vuillaume + created: 03-04-2025 + description: At least one static code analysis tool used includes rules or techniques + to detect common vulnerabilities specific to the language or environment. + identifier: + '@id': https://w3id.org/everse/i/indicators/static_analysis_common_vulnerabilities + keywords: + - security + - vulnerabilities + - static analysis + name: has static analysis for common vulnerabilities + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/security + source: + '@id': https://www.bestpractices.dev/en/criteria/0 + name: FLOSS Best Practices Criteria (Passing Badge) + url: https://www.bestpractices.dev/en/criteria/0#0.static_analysis_common_vulnerabilities + status: Active + version: 1.0.0 +- abbreviation: fuzzing_use + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-06-2025 + description: 'This indicator checks that If the software produced by the project + includes software written using a memory-unsafe language (e.g., C or C++), + then at least one dynamic tool (e.g., a fuzzer or web application scanner) + be routinely used in combination with a mechanism to detect memory safety + problems such as buffer overwrites. ' + identifier: + '@id': https://w3id.org/everse/i/indicators/fuzzing_use + keywords: + - fuzzing + - test + - code + name: Software uses fuzzing + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/safety + source: + name: 'OpenSSF Scorecard: Fuzzing' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#fuzzing + status: Active + version: 1.0.0 +- abbreviation: uses_tool_for_warnings_or_mistakes + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 27-06-2025 + description: This indicator checks that the project enables one or more compiler + warning flags, a "safe" language mode, or uses a separate "linter" tool to + look for code quality errors or common simple mistakes, if there is at least + one FLOSS tool that can implement this criterion in the selected language. + identifier: + '@id': https://w3id.org/everse/i/indicators/uses_tool_for_warnings_or_mistakes + keywords: + - linting + - code analysis + - fair + name: Software uses a tool for warnings or mistakes + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/maintainability + source: + - name: 'OpenSSF Best Practices badge: Warning Flags' + url: https://www.bestpractices.dev/en/criteria/0#0.warnings + - '@id': https://zenodo.org/records/10723608 + name: Ensure Software Quality + url: https://zenodo.org/records/10723608 + status: Active + version: 1.0.0 +- abbreviation: version_control_use + alternateName: FRSM-17 + author: + - '@type': schema:Organization + name: Elixir focus group + url: https://zenodo.org/communities/elixir/records + - '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if a software project uses version + control. + identifier: + '@id': https://w3id.org/everse/i/indicators/version_control_use + keywords: + - version + - control + - fair + - repository + - identifier + name: Software makes use of version control + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + sameAs: https://doi.org/10.25504/FAIRsharing.d2b2c5 + source: + - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + - name: 'Software Quality Indicators: extraction, categorisation and recommendations + from canonical sources' + url: https://doi.org/10.5281/zenodo.15474784 + - name: Reference and identification. RSMD-3.1 + url: https://fair-impact.github.io/RSMD-guidelines/3.Reference_identification/ + status: Active + version: 1.0.0 +- abbreviation: versioning_standards_use + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 14-07-2025 + description: This indicator aims to determine if the version (or versions) of + a software tool follows an established community convention like semantic + versioning (SemVer) or calendar versioning (CalVer). + identifier: + '@id': https://w3id.org/everse/i/indicators/versioning_standards_use + keywords: + - version + - versioning + - fair + - releases + name: Software follows versioning standards + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + '@id': https://doi.org/10.5281/zenodo.15535629 + name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://doi.org/10.5281/zenodo.15535629 + status: Active + version: 1.0.0 From 1b2612eddb02b41903ddb40850697911e4cab47e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 12 Dec 2025 02:06:32 +0000 Subject: [PATCH 12/47] Automated update of RSQKit data files --- _data/quality_indicators.yml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/_data/quality_indicators.yml b/_data/quality_indicators.yml index fd610b8c..9477106e 100644 --- a/_data/quality_indicators.yml +++ b/_data/quality_indicators.yml @@ -617,6 +617,37 @@ url: https://zenodo.org/records/10047401 status: Active version: 1.0.0 +- abbreviation: software_test_coverage + author: + '@type': schema:Organization + name: ELIXIR-Steers + url: https://elixir-europe.org/about-us/how-funded/eu-projects/steers + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 03-12-2025 + description: Indicates that the test suite covers most (or ideally all) the code + branches, input fields, and functionality + identifier: + '@id': https://w3id.org/everse/i/indicators/software_test_coverage + keywords: + - test coverage + - code coverage + - branch coverage + - coverage threshold + - test completeness + name: Software has sufficient test coverage + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/reliability + - '@id': https://w3id.org/everse/i/dimensions/functional_suitability + source: + name: ELIXIR Steers D2.1 Report on best-practices and indicators available + and used by selected Communities + url: https://doi.org/10.5281/zenodo.17035105 + status: Active + version: 0.0.1 - abbreviation: static_analysis_common_vulnerabilities author: '@type': Organization From 42011bd2e7f9bb8367931fb6ba4156408ff3e30b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 16 Dec 2025 02:07:04 +0000 Subject: [PATCH 13/47] Automated update of RSQKit data files --- _data/quality_dimensions.yml | 197 +--------------------- _data/quality_indicators.yml | 312 ----------------------------------- 2 files changed, 1 insertion(+), 508 deletions(-) diff --git a/_data/quality_dimensions.yml b/_data/quality_dimensions.yml index 0a5386bb..fe51488c 100644 --- a/_data/quality_dimensions.yml +++ b/_data/quality_dimensions.yml @@ -1,196 +1 @@ -- abbreviation: compatibility - description: "Degree to which a product, system or component can exchange information\ - \ with other products, systems or components, and/or perform its required\ - \ functions while sharing the same common environment and resources. This\ - \ characteristic is composed of the following sub-characteristics:\n -Co-existence\ - \ - Degree to which a product can perform its required functions efficiently\ - \ while sharing a common environment and resources with other products, without\ - \ detrimental impact on any other product.\n -Interoperability - Degree\ - \ to which a system, product or component can exchange information with other\ - \ products and mutually use the information that has been exchanged." - identifier: https://w3id.org/everse/i/dimensions/compatibility - name: Compatibility - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: fairness - description: 'FAIRness refers to the degree to which research software adheres - to the FAIR principles: Findable, Accessible, Interoperable, and Reusable. - These principles, adapted for research software, aim to enhance the discoverability, - accessibility, interoperability, and reusability of software, thereby maximizing - its value and impact in scientific research.' - identifier: https://w3id.org/everse/i/dimensions/fairness - name: FAIRness - source: - name: Introducing the FAIR Principles for research software - url: https://www.nature.com/articles/s41597-022-01710-x -- abbreviation: flexibility - description: "Degree to which a product can be adapted to changes in its requirements,\ - \ contexts of use or system environment. This characteristic is composed of\ - \ the following sub-characteristics:\n - Adaptability - Degree to which\ - \ a product or system can effectively and efficiently be adapted for or transferred\ - \ to different hardware, software or other operational or usage environments.\n\ - \ - Scalability - Degree to which a product can handle growing or shrinking\ - \ workloads or to adapt its capacity to handle variability.\n - Installability\ - \ - Degree of effectiveness and efficiency with which a product or system\ - \ can be successfully installed and/or uninstalled in a specified environment.\n\ - \ - Replaceability - Degree to which a product can replace another specified\ - \ software product for the same purpose in the same environment." - identifier: https://w3id.org/everse/i/dimensions/flexibility - name: Flexibility - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: functional_suitability - created: 03-04-2025 - description: "This characteristic represents the degree to which a product or\ - \ system provides functions that meet stated and implied needs when used under\ - \ specified conditions. This characteristic is composed of the following sub-characteristics:\ - \ \n Functional completeness - Degree to which the set of functions covers\ - \ all the specified tasks and intended users' objectives.\n Functional\ - \ correctness - Degree to which a product or system provides accurate results\ - \ when used by intended users.\n Functional appropriateness - Degree to\ - \ which the functions facilitate the accomplishment of specified tasks and\ - \ objectives." - identifier: https://w3id.org/everse/i/dimensions/functional_suitability - name: Functional suitability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: interaction_capability - description: "Degree to which a product or system can be interacted with by specified\ - \ users to exchange information via the user interface to complete specific\ - \ tasks in a variety of contexts of use. This characteristic is composed of\ - \ the following sub-characteristics:\n - Appropriateness recognizability\ - \ - Degree to which users can recognize whether a product or system is appropriate\ - \ for their needs.\n - Learnability - Degree to which the functions of\ - \ a product or system can be learnt to be used by specified users within a\ - \ specified amount of time.\n - Operability - Degree to which a product\ - \ or system has attributes that make it easy to operate and control.\n \ - \ - User error protection. Degree to which a system prevents users against\ - \ operation errors.\n - User engagement - Degree to which a user interface\ - \ presents functions and information in an inviting and motivating manner\ - \ encouraging continued interaction.\n - Inclusivity - Degree to which\ - \ a product or system can be used by people of various backgrounds (such as\ - \ people of various ages, abilities, cultures, ethnicities, languages, genders,\ - \ economic situations, etc.).\n - User assistance - Degree to which a product\ - \ can be used by people with the widest range of characteristics and capabilities\ - \ to achieve specified goals in a specified context of use.\n - Self-descriptiveness\ - \ - Degree to which a product presents appropriate information, where needed\ - \ by the user, to make its capabilities and use immediately obvious to the\ - \ user without excessive interactions with a product or other resources (such\ - \ as user documentation, help desks or other users)." - identifier: https://w3id.org/everse/i/dimensions/interaction_capability - name: Interaction Capability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: maintainability - description: "This characteristic represents the degree of effectiveness and efficiency\ - \ with which a product or system can be modified to improve it, correct it\ - \ or adapt it to changes in environment, and in requirements.This characteristic\ - \ is composed of the following sub-characteristics:\n - Modularity - Degree\ - \ to which a system or computer program is composed of discrete components\ - \ such that a change to one component has minimal impact on other components.\n\ - \ - Reusability - Degree to which a product can be used as an asset in\ - \ more than one system, or in building other assets.\n - Analysability\ - \ - Degree of effectiveness and efficiency with which it is possible to assess\ - \ the impact on a product or system of an intended change to one or more of\ - \ its parts, to diagnose a product for deficiencies or causes of failures,\ - \ or to identify parts to be modified.\n - Modifiability - Degree to which\ - \ a product or system can be effectively and efficiently modified without\ - \ introducing defects or degrading existing product quality.\n - Testability\ - \ - Degree of effectiveness and efficiency with which test criteria can be\ - \ established for a system, product or component and tests can be performed\ - \ to determine whether those criteria have been met." - identifier: https://w3id.org/everse/i/dimensions/maintainability - name: Maintainability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: performance_efficiency - description: "This characteristic represents the degree to which a product performs\ - \ its functions within specified time and throughput parameters and is efficient\ - \ in the use of resources (such as CPU, memory, storage, network devices,\ - \ energy, materials...) under specified conditions. This characteristic is\ - \ composed of the following sub-characteristics:\n -Time behaviour - Degree\ - \ to which the response time and throughput rates of a product or system,\ - \ when performing its functions, meet requirements.\n -Resource utilization\ - \ - Degree to which the amounts and types of resources used by a product or\ - \ system, when performing its functions, meet requirements.\n - Capacity\ - \ - Degree to which the maximum limits of a product or system parameter meet\ - \ requirements." - identifier: https://w3id.org/everse/i/dimensions/performance_efficiency - name: Performance Efficiency - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: reliability - description: "Degree to which a system, product or component performs specified\ - \ functions under specified conditions for a specified period of time. This\ - \ characteristic is composed of the following sub-characteristics:\n -\ - \ Faultlessness - Degree to which a system, product or component performs\ - \ specified functions without fault under normal operation.\n - Availability\ - \ - Degree to which a system, product or component is operational and accessible\ - \ when required for use.\n - Fault tolerance - Degree to which a system,\ - \ product or component operates as intended despite the presence of hardware\ - \ or software faults.\n - Recoverability - Degree to which, in the event\ - \ of an interruption or a failure, a product or system can recover the data\ - \ directly affected and re-establish the desired state of the system." - identifier: https://w3id.org/everse/i/dimensions/reliability - name: Reliability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: safety - description: "This characteristic represents the degree to which a product under\ - \ defined conditions to avoid a state in which human life, health, property,\ - \ or the environment is endangered. This characteristic is composed of the\ - \ following sub-characteristics:\n - Operational constraint - Degree to\ - \ which a product or system constrains its operation to within safe parameters\ - \ or states when encountering operational hazard.\n - Risk identification\ - \ - Degree to which a product can identify a course of events or operations\ - \ that can expose life, property or environment to unacceptable risk.\n \ - \ - Fail safe - Degree to which a product can automatically place itself\ - \ in a safe operating mode, or to revert to a safe condition in the event\ - \ of a failure.\n - Hazard warning - Degree to which a product or system\ - \ provides warnings of unacceptable risks to operations or internal controls\ - \ so that they can react in sufficient time to sustain safe operations.\n\ - \ - Safe integration - Degree to which a product can maintain safety during\ - \ and after integration with one or more components." - identifier: https://w3id.org/everse/i/dimensions/safety - name: Safety - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: security - description: "Degree to which a product or system defends against attack patterns\ - \ by malicious actors and protects information and data so that persons or\ - \ other products or systems have the degree of data access appropriate to\ - \ their types and levels of authorization. This characteristic is composed\ - \ of the following sub-characteristics:\n - Confidentiality - Degree to\ - \ which a product or system ensures that data are accessible only to those\ - \ authorized to have access.\n - Integrity - Degree to which a system,\ - \ product or component ensures that the state of its system and data are protected\ - \ from unauthorized modification or deletion either by malicious action or\ - \ computer error.\n - Non-repudiation - Degree to which actions or events\ - \ can be proven to have taken place so that the events or actions cannot be\ - \ repudiated later.\n - Accountability - Degree to which the actions of\ - \ an entity can be traced uniquely to the entity.\n - Authenticity - Degree\ - \ to which the identity of a subject or resource can be proved to be the one\ - \ claimed.\n - Resistance - Degree to which the product or system sustains\ - \ operations while under attack from a malicious actor." - identifier: https://w3id.org/everse/i/dimensions/security - name: Security - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: sustainability - description: The capacity of the software to endure. In other words, sustainability - means that the software will continue to be available in the future, on new - platforms, meeting new needs. - identifier: https://w3id.org/everse/i/dimensions/sustainability - name: Sustainability - source: - name: Defining Software Sustainability - url: https://danielskatzblog.wordpress.com/2016/09/13/defining-software-sustainability/ +[] diff --git a/_data/quality_indicators.yml b/_data/quality_indicators.yml index 9477106e..651e6db2 100644 --- a/_data/quality_indicators.yml +++ b/_data/quality_indicators.yml @@ -495,315 +495,3 @@ url: https://fair-impact.github.io/RSMD-guidelines/7.Re-execute/ status: Active version: 1.0.0 -- abbreviation: software_has_citation - alternateName: FRSM-12 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if the project uses a citation to - reference contributors and authors (e.g., through a CFF file, in the README, - etc). - identifier: - '@id': https://w3id.org/everse/i/indicators/software_has_citation - keywords: - - citation - - metadata - - fair - - contributors - name: Software uses citation - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - sameAs: https://doi.org/10.25504/FAIRsharing.c585c5 - source: - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - status: Active - version: 1.0.0 -- abbreviation: software_documentation - alternateName: FRSM-05 - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if a software project comes with - many forms of documentation like readme or readthedocs - identifier: - '@id': https://w3id.org/everse/i/indicators/software_has_documentation - keywords: - - documentation - - fair - - usage - - readme - name: Software has documentation - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/interaction_capability - sameAs: https://doi.org/10.25504/FAIRsharing.452bcd - source: - name: FLOSS Best Practices Criteria - url: https://www.bestpractices.dev/en/criteria/0#0.documentation_basics - status: Active - version: 1.0.0 -- abbreviation: software_has_license - alternateName: FRSM-15 - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This check tries to determine if the project has published a license - identifier: - '@id': https://w3id.org/everse/i/indicators/software_has_license - keywords: - - license - - metadata - - fair - name: Software has license - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - - name: 'OpenSSF Scorecard: License' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#license - - name: Reuse, licensing and legal aspects. RSMD-6.2 - url: https://fair-impact.github.io/RSMD-guidelines/6.Reuse_legal/ - status: Active - version: 1.0.0 -- abbreviation: software_has_tests - alternateName: FRSM-14 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: Evaluates the extent to which the software has been tested, including - unit tests, integration tests, and system tests, to ensure reliability and - correctness. - identifier: - '@id': https://w3id.org/everse/i/indicators/software_has_tests - keywords: - - test - - functionality - - fair - name: Software provides tests. - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/reliability - sameAs: https://doi.org/10.25504/FAIRsharing.a2dd1a - source: - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - status: Active - version: 1.0.0 -- abbreviation: software_test_coverage - author: - '@type': schema:Organization - name: ELIXIR-Steers - url: https://elixir-europe.org/about-us/how-funded/eu-projects/steers - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 03-12-2025 - description: Indicates that the test suite covers most (or ideally all) the code - branches, input fields, and functionality - identifier: - '@id': https://w3id.org/everse/i/indicators/software_test_coverage - keywords: - - test coverage - - code coverage - - branch coverage - - coverage threshold - - test completeness - name: Software has sufficient test coverage - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/reliability - - '@id': https://w3id.org/everse/i/dimensions/functional_suitability - source: - name: ELIXIR Steers D2.1 Report on best-practices and indicators available - and used by selected Communities - url: https://doi.org/10.5281/zenodo.17035105 - status: Active - version: 0.0.1 -- abbreviation: static_analysis_common_vulnerabilities - author: - '@type': Organization - name: OpenSSF - url: https://openssf.org/ - contactPoint: - '@type': schema:Person - email: thomas.vuillaume@lapp.in2p3.fr - name: Thomas Vuillaume - created: 03-04-2025 - description: At least one static code analysis tool used includes rules or techniques - to detect common vulnerabilities specific to the language or environment. - identifier: - '@id': https://w3id.org/everse/i/indicators/static_analysis_common_vulnerabilities - keywords: - - security - - vulnerabilities - - static analysis - name: has static analysis for common vulnerabilities - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/security - source: - '@id': https://www.bestpractices.dev/en/criteria/0 - name: FLOSS Best Practices Criteria (Passing Badge) - url: https://www.bestpractices.dev/en/criteria/0#0.static_analysis_common_vulnerabilities - status: Active - version: 1.0.0 -- abbreviation: fuzzing_use - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-06-2025 - description: 'This indicator checks that If the software produced by the project - includes software written using a memory-unsafe language (e.g., C or C++), - then at least one dynamic tool (e.g., a fuzzer or web application scanner) - be routinely used in combination with a mechanism to detect memory safety - problems such as buffer overwrites. ' - identifier: - '@id': https://w3id.org/everse/i/indicators/fuzzing_use - keywords: - - fuzzing - - test - - code - name: Software uses fuzzing - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/safety - source: - name: 'OpenSSF Scorecard: Fuzzing' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#fuzzing - status: Active - version: 1.0.0 -- abbreviation: uses_tool_for_warnings_or_mistakes - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 27-06-2025 - description: This indicator checks that the project enables one or more compiler - warning flags, a "safe" language mode, or uses a separate "linter" tool to - look for code quality errors or common simple mistakes, if there is at least - one FLOSS tool that can implement this criterion in the selected language. - identifier: - '@id': https://w3id.org/everse/i/indicators/uses_tool_for_warnings_or_mistakes - keywords: - - linting - - code analysis - - fair - name: Software uses a tool for warnings or mistakes - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/maintainability - source: - - name: 'OpenSSF Best Practices badge: Warning Flags' - url: https://www.bestpractices.dev/en/criteria/0#0.warnings - - '@id': https://zenodo.org/records/10723608 - name: Ensure Software Quality - url: https://zenodo.org/records/10723608 - status: Active - version: 1.0.0 -- abbreviation: version_control_use - alternateName: FRSM-17 - author: - - '@type': schema:Organization - name: Elixir focus group - url: https://zenodo.org/communities/elixir/records - - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if a software project uses version - control. - identifier: - '@id': https://w3id.org/everse/i/indicators/version_control_use - keywords: - - version - - control - - fair - - repository - - identifier - name: Software makes use of version control - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - sameAs: https://doi.org/10.25504/FAIRsharing.d2b2c5 - source: - - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - - name: 'Software Quality Indicators: extraction, categorisation and recommendations - from canonical sources' - url: https://doi.org/10.5281/zenodo.15474784 - - name: Reference and identification. RSMD-3.1 - url: https://fair-impact.github.io/RSMD-guidelines/3.Reference_identification/ - status: Active - version: 1.0.0 -- abbreviation: versioning_standards_use - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 14-07-2025 - description: This indicator aims to determine if the version (or versions) of - a software tool follows an established community convention like semantic - versioning (SemVer) or calendar versioning (CalVer). - identifier: - '@id': https://w3id.org/everse/i/indicators/versioning_standards_use - keywords: - - version - - versioning - - fair - - releases - name: Software follows versioning standards - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - '@id': https://doi.org/10.5281/zenodo.15535629 - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://doi.org/10.5281/zenodo.15535629 - status: Active - version: 1.0.0 From 3c91050e0162a4b08e32f5fb41ec58700662806d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 17 Dec 2025 02:01:51 +0000 Subject: [PATCH 14/47] Automated update of RSQKit data files --- _data/quality_dimensions.yml | 197 +++++++++++++++++++- _data/quality_indicators.yml | 343 +++++++++++++++++++++++++++++++++++ 2 files changed, 539 insertions(+), 1 deletion(-) diff --git a/_data/quality_dimensions.yml b/_data/quality_dimensions.yml index fe51488c..0a5386bb 100644 --- a/_data/quality_dimensions.yml +++ b/_data/quality_dimensions.yml @@ -1 +1,196 @@ -[] +- abbreviation: compatibility + description: "Degree to which a product, system or component can exchange information\ + \ with other products, systems or components, and/or perform its required\ + \ functions while sharing the same common environment and resources. This\ + \ characteristic is composed of the following sub-characteristics:\n -Co-existence\ + \ - Degree to which a product can perform its required functions efficiently\ + \ while sharing a common environment and resources with other products, without\ + \ detrimental impact on any other product.\n -Interoperability - Degree\ + \ to which a system, product or component can exchange information with other\ + \ products and mutually use the information that has been exchanged." + identifier: https://w3id.org/everse/i/dimensions/compatibility + name: Compatibility + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: fairness + description: 'FAIRness refers to the degree to which research software adheres + to the FAIR principles: Findable, Accessible, Interoperable, and Reusable. + These principles, adapted for research software, aim to enhance the discoverability, + accessibility, interoperability, and reusability of software, thereby maximizing + its value and impact in scientific research.' + identifier: https://w3id.org/everse/i/dimensions/fairness + name: FAIRness + source: + name: Introducing the FAIR Principles for research software + url: https://www.nature.com/articles/s41597-022-01710-x +- abbreviation: flexibility + description: "Degree to which a product can be adapted to changes in its requirements,\ + \ contexts of use or system environment. This characteristic is composed of\ + \ the following sub-characteristics:\n - Adaptability - Degree to which\ + \ a product or system can effectively and efficiently be adapted for or transferred\ + \ to different hardware, software or other operational or usage environments.\n\ + \ - Scalability - Degree to which a product can handle growing or shrinking\ + \ workloads or to adapt its capacity to handle variability.\n - Installability\ + \ - Degree of effectiveness and efficiency with which a product or system\ + \ can be successfully installed and/or uninstalled in a specified environment.\n\ + \ - Replaceability - Degree to which a product can replace another specified\ + \ software product for the same purpose in the same environment." + identifier: https://w3id.org/everse/i/dimensions/flexibility + name: Flexibility + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: functional_suitability + created: 03-04-2025 + description: "This characteristic represents the degree to which a product or\ + \ system provides functions that meet stated and implied needs when used under\ + \ specified conditions. This characteristic is composed of the following sub-characteristics:\ + \ \n Functional completeness - Degree to which the set of functions covers\ + \ all the specified tasks and intended users' objectives.\n Functional\ + \ correctness - Degree to which a product or system provides accurate results\ + \ when used by intended users.\n Functional appropriateness - Degree to\ + \ which the functions facilitate the accomplishment of specified tasks and\ + \ objectives." + identifier: https://w3id.org/everse/i/dimensions/functional_suitability + name: Functional suitability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: interaction_capability + description: "Degree to which a product or system can be interacted with by specified\ + \ users to exchange information via the user interface to complete specific\ + \ tasks in a variety of contexts of use. This characteristic is composed of\ + \ the following sub-characteristics:\n - Appropriateness recognizability\ + \ - Degree to which users can recognize whether a product or system is appropriate\ + \ for their needs.\n - Learnability - Degree to which the functions of\ + \ a product or system can be learnt to be used by specified users within a\ + \ specified amount of time.\n - Operability - Degree to which a product\ + \ or system has attributes that make it easy to operate and control.\n \ + \ - User error protection. Degree to which a system prevents users against\ + \ operation errors.\n - User engagement - Degree to which a user interface\ + \ presents functions and information in an inviting and motivating manner\ + \ encouraging continued interaction.\n - Inclusivity - Degree to which\ + \ a product or system can be used by people of various backgrounds (such as\ + \ people of various ages, abilities, cultures, ethnicities, languages, genders,\ + \ economic situations, etc.).\n - User assistance - Degree to which a product\ + \ can be used by people with the widest range of characteristics and capabilities\ + \ to achieve specified goals in a specified context of use.\n - Self-descriptiveness\ + \ - Degree to which a product presents appropriate information, where needed\ + \ by the user, to make its capabilities and use immediately obvious to the\ + \ user without excessive interactions with a product or other resources (such\ + \ as user documentation, help desks or other users)." + identifier: https://w3id.org/everse/i/dimensions/interaction_capability + name: Interaction Capability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: maintainability + description: "This characteristic represents the degree of effectiveness and efficiency\ + \ with which a product or system can be modified to improve it, correct it\ + \ or adapt it to changes in environment, and in requirements.This characteristic\ + \ is composed of the following sub-characteristics:\n - Modularity - Degree\ + \ to which a system or computer program is composed of discrete components\ + \ such that a change to one component has minimal impact on other components.\n\ + \ - Reusability - Degree to which a product can be used as an asset in\ + \ more than one system, or in building other assets.\n - Analysability\ + \ - Degree of effectiveness and efficiency with which it is possible to assess\ + \ the impact on a product or system of an intended change to one or more of\ + \ its parts, to diagnose a product for deficiencies or causes of failures,\ + \ or to identify parts to be modified.\n - Modifiability - Degree to which\ + \ a product or system can be effectively and efficiently modified without\ + \ introducing defects or degrading existing product quality.\n - Testability\ + \ - Degree of effectiveness and efficiency with which test criteria can be\ + \ established for a system, product or component and tests can be performed\ + \ to determine whether those criteria have been met." + identifier: https://w3id.org/everse/i/dimensions/maintainability + name: Maintainability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: performance_efficiency + description: "This characteristic represents the degree to which a product performs\ + \ its functions within specified time and throughput parameters and is efficient\ + \ in the use of resources (such as CPU, memory, storage, network devices,\ + \ energy, materials...) under specified conditions. This characteristic is\ + \ composed of the following sub-characteristics:\n -Time behaviour - Degree\ + \ to which the response time and throughput rates of a product or system,\ + \ when performing its functions, meet requirements.\n -Resource utilization\ + \ - Degree to which the amounts and types of resources used by a product or\ + \ system, when performing its functions, meet requirements.\n - Capacity\ + \ - Degree to which the maximum limits of a product or system parameter meet\ + \ requirements." + identifier: https://w3id.org/everse/i/dimensions/performance_efficiency + name: Performance Efficiency + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: reliability + description: "Degree to which a system, product or component performs specified\ + \ functions under specified conditions for a specified period of time. This\ + \ characteristic is composed of the following sub-characteristics:\n -\ + \ Faultlessness - Degree to which a system, product or component performs\ + \ specified functions without fault under normal operation.\n - Availability\ + \ - Degree to which a system, product or component is operational and accessible\ + \ when required for use.\n - Fault tolerance - Degree to which a system,\ + \ product or component operates as intended despite the presence of hardware\ + \ or software faults.\n - Recoverability - Degree to which, in the event\ + \ of an interruption or a failure, a product or system can recover the data\ + \ directly affected and re-establish the desired state of the system." + identifier: https://w3id.org/everse/i/dimensions/reliability + name: Reliability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: safety + description: "This characteristic represents the degree to which a product under\ + \ defined conditions to avoid a state in which human life, health, property,\ + \ or the environment is endangered. This characteristic is composed of the\ + \ following sub-characteristics:\n - Operational constraint - Degree to\ + \ which a product or system constrains its operation to within safe parameters\ + \ or states when encountering operational hazard.\n - Risk identification\ + \ - Degree to which a product can identify a course of events or operations\ + \ that can expose life, property or environment to unacceptable risk.\n \ + \ - Fail safe - Degree to which a product can automatically place itself\ + \ in a safe operating mode, or to revert to a safe condition in the event\ + \ of a failure.\n - Hazard warning - Degree to which a product or system\ + \ provides warnings of unacceptable risks to operations or internal controls\ + \ so that they can react in sufficient time to sustain safe operations.\n\ + \ - Safe integration - Degree to which a product can maintain safety during\ + \ and after integration with one or more components." + identifier: https://w3id.org/everse/i/dimensions/safety + name: Safety + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: security + description: "Degree to which a product or system defends against attack patterns\ + \ by malicious actors and protects information and data so that persons or\ + \ other products or systems have the degree of data access appropriate to\ + \ their types and levels of authorization. This characteristic is composed\ + \ of the following sub-characteristics:\n - Confidentiality - Degree to\ + \ which a product or system ensures that data are accessible only to those\ + \ authorized to have access.\n - Integrity - Degree to which a system,\ + \ product or component ensures that the state of its system and data are protected\ + \ from unauthorized modification or deletion either by malicious action or\ + \ computer error.\n - Non-repudiation - Degree to which actions or events\ + \ can be proven to have taken place so that the events or actions cannot be\ + \ repudiated later.\n - Accountability - Degree to which the actions of\ + \ an entity can be traced uniquely to the entity.\n - Authenticity - Degree\ + \ to which the identity of a subject or resource can be proved to be the one\ + \ claimed.\n - Resistance - Degree to which the product or system sustains\ + \ operations while under attack from a malicious actor." + identifier: https://w3id.org/everse/i/dimensions/security + name: Security + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: sustainability + description: The capacity of the software to endure. In other words, sustainability + means that the software will continue to be available in the future, on new + platforms, meeting new needs. + identifier: https://w3id.org/everse/i/dimensions/sustainability + name: Sustainability + source: + name: Defining Software Sustainability + url: https://danielskatzblog.wordpress.com/2016/09/13/defining-software-sustainability/ diff --git a/_data/quality_indicators.yml b/_data/quality_indicators.yml index 651e6db2..46d2cc93 100644 --- a/_data/quality_indicators.yml +++ b/_data/quality_indicators.yml @@ -495,3 +495,346 @@ url: https://fair-impact.github.io/RSMD-guidelines/7.Re-execute/ status: Active version: 1.0.0 +- abbreviation: software_has_citation + alternateName: FRSM-12 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if the project uses a citation to + reference contributors and authors (e.g., through a CFF file, in the README, + etc). + identifier: + '@id': https://w3id.org/everse/i/indicators/software_has_citation + keywords: + - citation + - metadata + - fair + - contributors + name: Software uses citation + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + sameAs: https://doi.org/10.25504/FAIRsharing.c585c5 + source: + name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + status: Active + version: 1.0.0 +- abbreviation: software_documentation + alternateName: FRSM-05 + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if a software project comes with + many forms of documentation like readme or readthedocs + identifier: + '@id': https://w3id.org/everse/i/indicators/software_has_documentation + keywords: + - documentation + - fair + - usage + - readme + name: Software has documentation + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/interaction_capability + sameAs: https://doi.org/10.25504/FAIRsharing.452bcd + source: + name: FLOSS Best Practices Criteria + url: https://www.bestpractices.dev/en/criteria/0#0.documentation_basics + status: Active + version: 1.0.0 +- abbreviation: software_has_license + alternateName: FRSM-15 + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This check tries to determine if the project has published a license + identifier: + '@id': https://w3id.org/everse/i/indicators/software_has_license + keywords: + - license + - metadata + - fair + name: Software has license + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + - name: 'OpenSSF Scorecard: License' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#license + - name: Reuse, licensing and legal aspects. RSMD-6.2 + url: https://fair-impact.github.io/RSMD-guidelines/6.Reuse_legal/ + status: Active + version: 1.0.0 +- abbreviation: software_has_tests + alternateName: FRSM-14 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: Evaluates the extent to which the software has been tested, including + unit tests, integration tests, and system tests, to ensure reliability and + correctness. + identifier: + '@id': https://w3id.org/everse/i/indicators/software_has_tests + keywords: + - test + - functionality + - fair + name: Software provides tests. + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/reliability + sameAs: https://doi.org/10.25504/FAIRsharing.a2dd1a + source: + name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + status: Active + version: 1.0.0 +- abbreviation: software_test_coverage + author: + '@type': schema:Organization + name: ELIXIR-Steers + url: https://elixir-europe.org/about-us/how-funded/eu-projects/steers + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 03-12-2025 + description: Indicates that the test suite covers most (or ideally all) the code + branches, input fields, and functionality + identifier: + '@id': https://w3id.org/everse/i/indicators/software_test_coverage + keywords: + - test coverage + - code coverage + - branch coverage + - coverage threshold + - test completeness + name: Software has sufficient test coverage + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/reliability + - '@id': https://w3id.org/everse/i/dimensions/functional_suitability + source: + name: ELIXIR Steers D2.1 Report on best-practices and indicators available + and used by selected Communities + url: https://doi.org/10.5281/zenodo.17035105 + status: Active + version: 0.0.1 +- abbreviation: static_analysis_common_vulnerabilities + author: + '@type': Organization + name: OpenSSF + url: https://openssf.org/ + contactPoint: + '@type': schema:Person + email: thomas.vuillaume@lapp.in2p3.fr + name: Thomas Vuillaume + created: 03-04-2025 + description: At least one static code analysis tool used includes rules or techniques + to detect common vulnerabilities specific to the language or environment. + identifier: + '@id': https://w3id.org/everse/i/indicators/static_analysis_common_vulnerabilities + keywords: + - security + - vulnerabilities + - static analysis + name: has static analysis for common vulnerabilities + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/security + source: + '@id': https://www.bestpractices.dev/en/criteria/0 + name: FLOSS Best Practices Criteria (Passing Badge) + url: https://www.bestpractices.dev/en/criteria/0#0.static_analysis_common_vulnerabilities + status: Active + version: 1.0.0 +- abbreviation: support_issue_tracking + author: + '@type': Organization + name: OpenSSF + url: https://openssf.org/ + contactPoint: + '@type': schema:Person + email: federica.quaglia@unipd.it + name: Federica Quaglia + created: 03-12-2025 + description: The software project offers an accessible issue tracking system (e.g., + GitHub/GitLab Issues or a helpdesk) that is used to report, document, and + manage bugs, enhancement requests, and user-facing operational issues. + identifier: + '@id': https://w3id.org/everse/i/indicators/support_issue_tracking + keywords: + - support + - issues + - helpdesk + - maintenance + - user support + name: Software provides issue tracking + qualityDimension: + '@id': 'https://w3id.org/everse/i/dimensions/maintainability ' + source: + '@id': https://zenodo.org/records/17035105 + name: ELIXIR-STEERS D2.1 Report on best-practices and indicators available + and used by selected Communities + url: https://zenodo.org/records/17035105 + status: Active + version: 1.0.0 +- abbreviation: fuzzing_use + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-06-2025 + description: 'This indicator checks that If the software produced by the project + includes software written using a memory-unsafe language (e.g., C or C++), + then at least one dynamic tool (e.g., a fuzzer or web application scanner) + be routinely used in combination with a mechanism to detect memory safety + problems such as buffer overwrites. ' + identifier: + '@id': https://w3id.org/everse/i/indicators/fuzzing_use + keywords: + - fuzzing + - test + - code + name: Software uses fuzzing + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/safety + source: + name: 'OpenSSF Scorecard: Fuzzing' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#fuzzing + status: Active + version: 1.0.0 +- abbreviation: uses_tool_for_warnings_or_mistakes + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 27-06-2025 + description: This indicator checks that the project enables one or more compiler + warning flags, a "safe" language mode, or uses a separate "linter" tool to + look for code quality errors or common simple mistakes, if there is at least + one FLOSS tool that can implement this criterion in the selected language. + identifier: + '@id': https://w3id.org/everse/i/indicators/uses_tool_for_warnings_or_mistakes + keywords: + - linting + - code analysis + - fair + name: Software uses a tool for warnings or mistakes + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/maintainability + source: + - name: 'OpenSSF Best Practices badge: Warning Flags' + url: https://www.bestpractices.dev/en/criteria/0#0.warnings + - '@id': https://zenodo.org/records/10723608 + name: Ensure Software Quality + url: https://zenodo.org/records/10723608 + status: Active + version: 1.0.0 +- abbreviation: version_control_use + alternateName: FRSM-17 + author: + - '@type': schema:Organization + name: Elixir focus group + url: https://zenodo.org/communities/elixir/records + - '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if a software project uses version + control. + identifier: + '@id': https://w3id.org/everse/i/indicators/version_control_use + keywords: + - version + - control + - fair + - repository + - identifier + name: Software makes use of version control + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + sameAs: https://doi.org/10.25504/FAIRsharing.d2b2c5 + source: + - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + - name: 'Software Quality Indicators: extraction, categorisation and recommendations + from canonical sources' + url: https://doi.org/10.5281/zenodo.15474784 + - name: Reference and identification. RSMD-3.1 + url: https://fair-impact.github.io/RSMD-guidelines/3.Reference_identification/ + status: Active + version: 1.0.0 +- abbreviation: versioning_standards_use + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 14-07-2025 + description: This indicator aims to determine if the version (or versions) of + a software tool follows an established community convention like semantic + versioning (SemVer) or calendar versioning (CalVer). + identifier: + '@id': https://w3id.org/everse/i/indicators/versioning_standards_use + keywords: + - version + - versioning + - fair + - releases + name: Software follows versioning standards + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + '@id': https://doi.org/10.5281/zenodo.15535629 + name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://doi.org/10.5281/zenodo.15535629 + status: Active + version: 1.0.0 From 2f4a97581a0d5df5b011c102bd389606bfda589e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 18 Dec 2025 02:03:07 +0000 Subject: [PATCH 15/47] Automated update of RSQKit data files --- _data/quality_dimensions.yml | 466 ++++++++++++++++++++++++++--------- _data/quality_indicators.yml | 14 +- 2 files changed, 352 insertions(+), 128 deletions(-) diff --git a/_data/quality_dimensions.yml b/_data/quality_dimensions.yml index 0a5386bb..a1bb3560 100644 --- a/_data/quality_dimensions.yml +++ b/_data/quality_dimensions.yml @@ -1,13 +1,23 @@ - abbreviation: compatibility - description: "Degree to which a product, system or component can exchange information\ - \ with other products, systems or components, and/or perform its required\ - \ functions while sharing the same common environment and resources. This\ - \ characteristic is composed of the following sub-characteristics:\n -Co-existence\ - \ - Degree to which a product can perform its required functions efficiently\ - \ while sharing a common environment and resources with other products, without\ - \ detrimental impact on any other product.\n -Interoperability - Degree\ - \ to which a system, product or component can exchange information with other\ - \ products and mutually use the information that has been exchanged." + description: 'Degree to which a product, system or component can exchange information + with other products, systems or components, and/or perform its required functions + while sharing the same common environment and resources. This characteristic + is composed of the following sub-characteristics: + + + **Co-existence** + + + Degree to which a product can perform its required functions efficiently while + sharing a common environment and resources with other products, without detrimental + impact on any other product. + + + **Interoperability** + + + Degree to which a system, product or component can exchange information with + other products and mutually use the information that has been exchanged.' identifier: https://w3id.org/everse/i/dimensions/compatibility name: Compatibility source: @@ -25,17 +35,38 @@ name: Introducing the FAIR Principles for research software url: https://www.nature.com/articles/s41597-022-01710-x - abbreviation: flexibility - description: "Degree to which a product can be adapted to changes in its requirements,\ - \ contexts of use or system environment. This characteristic is composed of\ - \ the following sub-characteristics:\n - Adaptability - Degree to which\ - \ a product or system can effectively and efficiently be adapted for or transferred\ - \ to different hardware, software or other operational or usage environments.\n\ - \ - Scalability - Degree to which a product can handle growing or shrinking\ - \ workloads or to adapt its capacity to handle variability.\n - Installability\ - \ - Degree of effectiveness and efficiency with which a product or system\ - \ can be successfully installed and/or uninstalled in a specified environment.\n\ - \ - Replaceability - Degree to which a product can replace another specified\ - \ software product for the same purpose in the same environment." + description: 'Degree to which a product can be adapted to changes in its requirements, + contexts of use or system environment. This characteristic is composed of + the following sub-characteristics: + + + **Adaptability** + + + Degree to which a product or system can effectively and efficiently be adapted + for or transferred to different hardware, software or other operational or + usage environments. + + + **Scalability** + + + Degree to which a product can handle growing or shrinking workloads or to + adapt its capacity to handle variability. + + + **Installability** + + + Degree of effectiveness and efficiency with which a product or system can + be successfully installed and/or uninstalled in a specified environment. + + + **Replaceability** + + + Degree to which a product can replace another specified software product for + the same purpose in the same environment.' identifier: https://w3id.org/everse/i/dimensions/flexibility name: Flexibility source: @@ -43,143 +74,336 @@ url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 - abbreviation: functional_suitability created: 03-04-2025 - description: "This characteristic represents the degree to which a product or\ - \ system provides functions that meet stated and implied needs when used under\ - \ specified conditions. This characteristic is composed of the following sub-characteristics:\ - \ \n Functional completeness - Degree to which the set of functions covers\ - \ all the specified tasks and intended users' objectives.\n Functional\ - \ correctness - Degree to which a product or system provides accurate results\ - \ when used by intended users.\n Functional appropriateness - Degree to\ - \ which the functions facilitate the accomplishment of specified tasks and\ - \ objectives." + description: 'This characteristic represents the degree to which a product or + system provides functions that meet stated and implied needs when used under + specified conditions. This characteristic is composed of the following sub-characteristics: + + + **Functional completeness** + + + Degree to which the set of functions covers all the specified tasks and intended + users'' objectives. + + + **Functional correctness** + + + Degree to which a product or system provides accurate results when used by + intended users. + + + **Functional appropriateness** + + + Degree to which the functions facilitate the accomplishment of specified tasks + and objectives.' identifier: https://w3id.org/everse/i/dimensions/functional_suitability name: Functional suitability source: name: ISO/IEC 25010 standard url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 - abbreviation: interaction_capability - description: "Degree to which a product or system can be interacted with by specified\ - \ users to exchange information via the user interface to complete specific\ - \ tasks in a variety of contexts of use. This characteristic is composed of\ - \ the following sub-characteristics:\n - Appropriateness recognizability\ - \ - Degree to which users can recognize whether a product or system is appropriate\ - \ for their needs.\n - Learnability - Degree to which the functions of\ - \ a product or system can be learnt to be used by specified users within a\ - \ specified amount of time.\n - Operability - Degree to which a product\ - \ or system has attributes that make it easy to operate and control.\n \ - \ - User error protection. Degree to which a system prevents users against\ - \ operation errors.\n - User engagement - Degree to which a user interface\ - \ presents functions and information in an inviting and motivating manner\ - \ encouraging continued interaction.\n - Inclusivity - Degree to which\ - \ a product or system can be used by people of various backgrounds (such as\ - \ people of various ages, abilities, cultures, ethnicities, languages, genders,\ - \ economic situations, etc.).\n - User assistance - Degree to which a product\ - \ can be used by people with the widest range of characteristics and capabilities\ - \ to achieve specified goals in a specified context of use.\n - Self-descriptiveness\ - \ - Degree to which a product presents appropriate information, where needed\ - \ by the user, to make its capabilities and use immediately obvious to the\ - \ user without excessive interactions with a product or other resources (such\ - \ as user documentation, help desks or other users)." + description: 'Degree to which a product or system can be interacted with by specified + users to exchange information via the user interface to complete specific + tasks in a variety of contexts of use. This characteristic is composed of + the following sub-characteristics: + + + **Appropriateness recognizability** + + + Degree to which users can recognize whether a product or system is appropriate + for their needs. + + + **Learnability** + + + Degree to which the functions of a product or system can be learnt to be used + by specified users within a specified amount of time. + + + **Operability** + + + Degree to which a product or system has attributes that make it easy to operate + and control. + + + **User error protection** + + + Degree to which a system prevents users against operation errors. + + + **User engagement** + + + Degree to which a user interface presents functions and information in an + inviting and motivating manner encouraging continued interaction. + + + **Inclusivity** + + + Degree to which a product or system can be used by people of various backgrounds + (such as people of various ages, abilities, cultures, ethnicities, languages, + genders, economic situations, etc.). + + + **User assistance** + + + Degree to which a product can be used by people with the widest range of characteristics + and capabilities to achieve specified goals in a specified context of use. + + + **Self-descriptiveness** + + + Degree to which a product presents appropriate information, where needed by + the user, to make its capabilities and use immediately obvious to the user + without excessive interactions with a product or other resources (such as + user documentation, help desks or other users).' identifier: https://w3id.org/everse/i/dimensions/interaction_capability name: Interaction Capability source: name: ISO/IEC 25010 standard url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 - abbreviation: maintainability - description: "This characteristic represents the degree of effectiveness and efficiency\ - \ with which a product or system can be modified to improve it, correct it\ - \ or adapt it to changes in environment, and in requirements.This characteristic\ - \ is composed of the following sub-characteristics:\n - Modularity - Degree\ - \ to which a system or computer program is composed of discrete components\ - \ such that a change to one component has minimal impact on other components.\n\ - \ - Reusability - Degree to which a product can be used as an asset in\ - \ more than one system, or in building other assets.\n - Analysability\ - \ - Degree of effectiveness and efficiency with which it is possible to assess\ - \ the impact on a product or system of an intended change to one or more of\ - \ its parts, to diagnose a product for deficiencies or causes of failures,\ - \ or to identify parts to be modified.\n - Modifiability - Degree to which\ - \ a product or system can be effectively and efficiently modified without\ - \ introducing defects or degrading existing product quality.\n - Testability\ - \ - Degree of effectiveness and efficiency with which test criteria can be\ - \ established for a system, product or component and tests can be performed\ - \ to determine whether those criteria have been met." + description: 'This characteristic represents the degree of effectiveness and efficiency + with which a product or system can be modified to improve it, correct it or + adapt it to changes in environment, and in requirements. This characteristic + is composed of the following sub-characteristics: + + + **Modularity** + + + Degree to which a system or computer program is composed of discrete components + such that a change to one component has minimal impact on other components. + + + **Reusability** + + + Degree to which a product can be used as an asset in more than one system, + or in building other assets. + + + **Analysability** + + + Degree of effectiveness and efficiency with which it is possible to assess + the impact on a product or system of an intended change to one or more of + its parts, to diagnose a product for deficiencies or causes of failures, or + to identify parts to be modified. + + + **Modifiability** + + + Degree to which a product or system can be effectively and efficiently modified + without introducing defects or degrading existing product quality. + + + **Testability** + + + Degree of effectiveness and efficiency with which test criteria can be established + for a system, product or component and tests can be performed to determine + whether those criteria have been met.' identifier: https://w3id.org/everse/i/dimensions/maintainability name: Maintainability source: name: ISO/IEC 25010 standard url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: open_source_software + description: Open source software is software with source code that anyone can + inspect, modify, and enhance. Research software can be published with or without + open access to the source code. Open access to source code aligns better with + academic research purposes than closed source software; open source software + aligns with the FAIR4RS principles. It allows other researchers to directly + verify the methods used to produce the results published in papers. It also + makes reproducibility much easier. In addition to these research-driven reasons, + publishing research software as open source software can help with long term + maintenance in a cost-effective way, since interested developers can easily + contribute new functionality or fix bugs. Moreover, by integrating with the + greater open source ecosystem, researchers can leverage tools and support + communities already available. As such, for most academic communities with + limited resources, it is also a good choice from a software engineering perspective + identifier: https://w3id.org/everse/i/dimensions/open_source_software + name: Open Source Software + source: + - identifier: https://doi.org/10.5281/zenodo.14204478 + name: EVERSE Reference Framework + url: https://doi.org/10.5281/zenodo.14204478 + - name: What is Open Source? + url: https://opensource.com/resources/what-open-source - abbreviation: performance_efficiency - description: "This characteristic represents the degree to which a product performs\ - \ its functions within specified time and throughput parameters and is efficient\ - \ in the use of resources (such as CPU, memory, storage, network devices,\ - \ energy, materials...) under specified conditions. This characteristic is\ - \ composed of the following sub-characteristics:\n -Time behaviour - Degree\ - \ to which the response time and throughput rates of a product or system,\ - \ when performing its functions, meet requirements.\n -Resource utilization\ - \ - Degree to which the amounts and types of resources used by a product or\ - \ system, when performing its functions, meet requirements.\n - Capacity\ - \ - Degree to which the maximum limits of a product or system parameter meet\ - \ requirements." + description: 'This characteristic represents the degree to which a product performs + its functions within specified time and throughput parameters and is efficient + in the use of resources (such as CPU, memory, storage, network devices, energy, + materials...) under specified conditions. This characteristic is composed + of the following sub-characteristics: + + + **Time behaviour** + + + Degree to which the response time and throughput rates of a product or system, + when performing its functions, meet requirements. + + + **Resource utilization** + + + Degree to which the amounts and types of resources used by a product or system, + when performing its functions, meet requirements. + + + **Capacity** + + + Degree to which the maximum limits of a product or system parameter meet requirements.' identifier: https://w3id.org/everse/i/dimensions/performance_efficiency name: Performance Efficiency source: name: ISO/IEC 25010 standard url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 - abbreviation: reliability - description: "Degree to which a system, product or component performs specified\ - \ functions under specified conditions for a specified period of time. This\ - \ characteristic is composed of the following sub-characteristics:\n -\ - \ Faultlessness - Degree to which a system, product or component performs\ - \ specified functions without fault under normal operation.\n - Availability\ - \ - Degree to which a system, product or component is operational and accessible\ - \ when required for use.\n - Fault tolerance - Degree to which a system,\ - \ product or component operates as intended despite the presence of hardware\ - \ or software faults.\n - Recoverability - Degree to which, in the event\ - \ of an interruption or a failure, a product or system can recover the data\ - \ directly affected and re-establish the desired state of the system." + description: 'Degree to which a system, product or component performs specified + functions under specified conditions for a specified period of time. This + characteristic is composed of the following sub-characteristics: + + + **Faultlessness** + + + Degree to which a system, product or component performs specified functions + without fault under normal operation. + + + **Availability** + + + Degree to which a system, product or component is operational and accessible + when required for use. + + + **Fault tolerance** + + + Degree to which a system, product or component operates as intended despite + the presence of hardware or software faults. + + + **Recoverability** + + + Degree to which, in the event of an interruption or a failure, a product or + system can recover the data directly affected and re-establish the desired + state of the system.' identifier: https://w3id.org/everse/i/dimensions/reliability name: Reliability source: name: ISO/IEC 25010 standard url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 - abbreviation: safety - description: "This characteristic represents the degree to which a product under\ - \ defined conditions to avoid a state in which human life, health, property,\ - \ or the environment is endangered. This characteristic is composed of the\ - \ following sub-characteristics:\n - Operational constraint - Degree to\ - \ which a product or system constrains its operation to within safe parameters\ - \ or states when encountering operational hazard.\n - Risk identification\ - \ - Degree to which a product can identify a course of events or operations\ - \ that can expose life, property or environment to unacceptable risk.\n \ - \ - Fail safe - Degree to which a product can automatically place itself\ - \ in a safe operating mode, or to revert to a safe condition in the event\ - \ of a failure.\n - Hazard warning - Degree to which a product or system\ - \ provides warnings of unacceptable risks to operations or internal controls\ - \ so that they can react in sufficient time to sustain safe operations.\n\ - \ - Safe integration - Degree to which a product can maintain safety during\ - \ and after integration with one or more components." + description: 'This characteristic represents the degree to which a product under + defined conditions avoids a state in which human life, health, property, or + the environment is endangered. This characteristic is composed of the following + sub-characteristics: + + + **Operational constraint** + + + Degree to which a product or system constrains its operation to within safe + parameters or states when encountering operational hazard. + + + **Risk identification** + + + Degree to which a product can identify a course of events or operations that + can expose life, property or environment to unacceptable risk. + + + **Fail safe** + + + Degree to which a product can automatically place itself in a safe operating + mode, or to revert to a safe condition in the event of a failure. + + + **Hazard warning** + + + Degree to which a product or system provides warnings of unacceptable risks + to operations or internal controls so that they can react in sufficient time + to sustain safe operations. + + + **Safe integration** + + + Degree to which a product can maintain safety during and after integration + with one or more components.' identifier: https://w3id.org/everse/i/dimensions/safety name: Safety source: name: ISO/IEC 25010 standard url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 - abbreviation: security - description: "Degree to which a product or system defends against attack patterns\ - \ by malicious actors and protects information and data so that persons or\ - \ other products or systems have the degree of data access appropriate to\ - \ their types and levels of authorization. This characteristic is composed\ - \ of the following sub-characteristics:\n - Confidentiality - Degree to\ - \ which a product or system ensures that data are accessible only to those\ - \ authorized to have access.\n - Integrity - Degree to which a system,\ - \ product or component ensures that the state of its system and data are protected\ - \ from unauthorized modification or deletion either by malicious action or\ - \ computer error.\n - Non-repudiation - Degree to which actions or events\ - \ can be proven to have taken place so that the events or actions cannot be\ - \ repudiated later.\n - Accountability - Degree to which the actions of\ - \ an entity can be traced uniquely to the entity.\n - Authenticity - Degree\ - \ to which the identity of a subject or resource can be proved to be the one\ - \ claimed.\n - Resistance - Degree to which the product or system sustains\ - \ operations while under attack from a malicious actor." + description: 'Degree to which a product or system defends against attack patterns + by malicious actors and protects information and data so that persons or other + products or systems have the degree of data access appropriate to their types + and levels of authorization. This characteristic is composed of the following + sub-characteristics: + + + **Confidentiality** + + + Degree to which a product or system ensures that data are accessible only + to those authorized to have access. + + + **Integrity** + + + Degree to which a system, product or component ensures that the state of its + system and data are protected from unauthorized modification or deletion either + by malicious action or computer error. + + + **Non-repudiation** + + + Degree to which actions or events can be proven to have taken place so that + the events or actions cannot be repudiated later. + + + **Accountability** + + + Degree to which the actions of an entity can be traced uniquely to the entity. + + + **Authenticity** + + + Degree to which the identity of a subject or resource can be proved to be + the one claimed. + + + **Resistance** + + + Degree to which the product or system sustains operations while under attack + from a malicious actor.' identifier: https://w3id.org/everse/i/dimensions/security name: Security source: diff --git a/_data/quality_indicators.yml b/_data/quality_indicators.yml index 46d2cc93..19c1bc03 100644 --- a/_data/quality_indicators.yml +++ b/_data/quality_indicators.yml @@ -155,7 +155,7 @@ description: This indicator aims to determine if the project runs tests before pull requests are merged. identifier: - '@id': https://w3id.org/everse/i/indicators/software_has_ci-tests + '@id': https://w3id.org/everse/i/indicators/has_ci-tests keywords: - continuous - integration @@ -526,7 +526,7 @@ url: https://zenodo.org/records/10047401 status: Active version: 1.0.0 -- abbreviation: software_documentation +- abbreviation: software_has_documentation alternateName: FRSM-05 author: '@type': schema:Organization @@ -706,7 +706,7 @@ url: https://zenodo.org/records/17035105 status: Active version: 1.0.0 -- abbreviation: fuzzing_use +- abbreviation: uses_fuzzing author: '@type': schema:Organization name: OpenSSF @@ -717,13 +717,13 @@ - '@type': schema:Person name: Andres Montero created: 23-06-2025 - description: 'This indicator checks that If the software produced by the project + description: 'This indicator checks that the software produced by the project includes software written using a memory-unsafe language (e.g., C or C++), then at least one dynamic tool (e.g., a fuzzer or web application scanner) be routinely used in combination with a mechanism to detect memory safety problems such as buffer overwrites. ' identifier: - '@id': https://w3id.org/everse/i/indicators/fuzzing_use + '@id': https://w3id.org/everse/i/indicators/uses_fuzzing keywords: - fuzzing - test @@ -736,7 +736,7 @@ url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#fuzzing status: Active version: 1.0.0 -- abbreviation: uses_tool_for_warnings_or_mistakes +- abbreviation: uses_tool_for_warnings_and_mistakes author: '@type': schema:Organization name: OpenSSF @@ -752,7 +752,7 @@ look for code quality errors or common simple mistakes, if there is at least one FLOSS tool that can implement this criterion in the selected language. identifier: - '@id': https://w3id.org/everse/i/indicators/uses_tool_for_warnings_or_mistakes + '@id': https://w3id.org/everse/i/indicators/uses_tool_for_warnings_and_mistakes keywords: - linting - code analysis From bdc679658a909b68ae5b2767183f93163899d625 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 21 Dec 2025 02:18:39 +0000 Subject: [PATCH 16/47] Automated update of RSQKit data files --- _data/quality_dimensions.yml | 199 ----------------------------------- 1 file changed, 199 deletions(-) diff --git a/_data/quality_dimensions.yml b/_data/quality_dimensions.yml index a1bb3560..52505225 100644 --- a/_data/quality_dimensions.yml +++ b/_data/quality_dimensions.yml @@ -219,202 +219,3 @@ source: name: ISO/IEC 25010 standard url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: open_source_software - description: Open source software is software with source code that anyone can - inspect, modify, and enhance. Research software can be published with or without - open access to the source code. Open access to source code aligns better with - academic research purposes than closed source software; open source software - aligns with the FAIR4RS principles. It allows other researchers to directly - verify the methods used to produce the results published in papers. It also - makes reproducibility much easier. In addition to these research-driven reasons, - publishing research software as open source software can help with long term - maintenance in a cost-effective way, since interested developers can easily - contribute new functionality or fix bugs. Moreover, by integrating with the - greater open source ecosystem, researchers can leverage tools and support - communities already available. As such, for most academic communities with - limited resources, it is also a good choice from a software engineering perspective - identifier: https://w3id.org/everse/i/dimensions/open_source_software - name: Open Source Software - source: - - identifier: https://doi.org/10.5281/zenodo.14204478 - name: EVERSE Reference Framework - url: https://doi.org/10.5281/zenodo.14204478 - - name: What is Open Source? - url: https://opensource.com/resources/what-open-source -- abbreviation: performance_efficiency - description: 'This characteristic represents the degree to which a product performs - its functions within specified time and throughput parameters and is efficient - in the use of resources (such as CPU, memory, storage, network devices, energy, - materials...) under specified conditions. This characteristic is composed - of the following sub-characteristics: - - - **Time behaviour** - - - Degree to which the response time and throughput rates of a product or system, - when performing its functions, meet requirements. - - - **Resource utilization** - - - Degree to which the amounts and types of resources used by a product or system, - when performing its functions, meet requirements. - - - **Capacity** - - - Degree to which the maximum limits of a product or system parameter meet requirements.' - identifier: https://w3id.org/everse/i/dimensions/performance_efficiency - name: Performance Efficiency - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: reliability - description: 'Degree to which a system, product or component performs specified - functions under specified conditions for a specified period of time. This - characteristic is composed of the following sub-characteristics: - - - **Faultlessness** - - - Degree to which a system, product or component performs specified functions - without fault under normal operation. - - - **Availability** - - - Degree to which a system, product or component is operational and accessible - when required for use. - - - **Fault tolerance** - - - Degree to which a system, product or component operates as intended despite - the presence of hardware or software faults. - - - **Recoverability** - - - Degree to which, in the event of an interruption or a failure, a product or - system can recover the data directly affected and re-establish the desired - state of the system.' - identifier: https://w3id.org/everse/i/dimensions/reliability - name: Reliability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: safety - description: 'This characteristic represents the degree to which a product under - defined conditions avoids a state in which human life, health, property, or - the environment is endangered. This characteristic is composed of the following - sub-characteristics: - - - **Operational constraint** - - - Degree to which a product or system constrains its operation to within safe - parameters or states when encountering operational hazard. - - - **Risk identification** - - - Degree to which a product can identify a course of events or operations that - can expose life, property or environment to unacceptable risk. - - - **Fail safe** - - - Degree to which a product can automatically place itself in a safe operating - mode, or to revert to a safe condition in the event of a failure. - - - **Hazard warning** - - - Degree to which a product or system provides warnings of unacceptable risks - to operations or internal controls so that they can react in sufficient time - to sustain safe operations. - - - **Safe integration** - - - Degree to which a product can maintain safety during and after integration - with one or more components.' - identifier: https://w3id.org/everse/i/dimensions/safety - name: Safety - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: security - description: 'Degree to which a product or system defends against attack patterns - by malicious actors and protects information and data so that persons or other - products or systems have the degree of data access appropriate to their types - and levels of authorization. This characteristic is composed of the following - sub-characteristics: - - - **Confidentiality** - - - Degree to which a product or system ensures that data are accessible only - to those authorized to have access. - - - **Integrity** - - - Degree to which a system, product or component ensures that the state of its - system and data are protected from unauthorized modification or deletion either - by malicious action or computer error. - - - **Non-repudiation** - - - Degree to which actions or events can be proven to have taken place so that - the events or actions cannot be repudiated later. - - - **Accountability** - - - Degree to which the actions of an entity can be traced uniquely to the entity. - - - **Authenticity** - - - Degree to which the identity of a subject or resource can be proved to be - the one claimed. - - - **Resistance** - - - Degree to which the product or system sustains operations while under attack - from a malicious actor.' - identifier: https://w3id.org/everse/i/dimensions/security - name: Security - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: sustainability - description: The capacity of the software to endure. In other words, sustainability - means that the software will continue to be available in the future, on new - platforms, meeting new needs. - identifier: https://w3id.org/everse/i/dimensions/sustainability - name: Sustainability - source: - name: Defining Software Sustainability - url: https://danielskatzblog.wordpress.com/2016/09/13/defining-software-sustainability/ From 8a73378114ff75fb94dbd52838ae60eab3ce3fec Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 22 Dec 2025 02:11:56 +0000 Subject: [PATCH 17/47] Automated update of RSQKit data files --- _data/quality_dimensions.yml | 199 +++++++++++++++++++++++++++++++++++ 1 file changed, 199 insertions(+) diff --git a/_data/quality_dimensions.yml b/_data/quality_dimensions.yml index 52505225..a1bb3560 100644 --- a/_data/quality_dimensions.yml +++ b/_data/quality_dimensions.yml @@ -219,3 +219,202 @@ source: name: ISO/IEC 25010 standard url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: open_source_software + description: Open source software is software with source code that anyone can + inspect, modify, and enhance. Research software can be published with or without + open access to the source code. Open access to source code aligns better with + academic research purposes than closed source software; open source software + aligns with the FAIR4RS principles. It allows other researchers to directly + verify the methods used to produce the results published in papers. It also + makes reproducibility much easier. In addition to these research-driven reasons, + publishing research software as open source software can help with long term + maintenance in a cost-effective way, since interested developers can easily + contribute new functionality or fix bugs. Moreover, by integrating with the + greater open source ecosystem, researchers can leverage tools and support + communities already available. As such, for most academic communities with + limited resources, it is also a good choice from a software engineering perspective + identifier: https://w3id.org/everse/i/dimensions/open_source_software + name: Open Source Software + source: + - identifier: https://doi.org/10.5281/zenodo.14204478 + name: EVERSE Reference Framework + url: https://doi.org/10.5281/zenodo.14204478 + - name: What is Open Source? + url: https://opensource.com/resources/what-open-source +- abbreviation: performance_efficiency + description: 'This characteristic represents the degree to which a product performs + its functions within specified time and throughput parameters and is efficient + in the use of resources (such as CPU, memory, storage, network devices, energy, + materials...) under specified conditions. This characteristic is composed + of the following sub-characteristics: + + + **Time behaviour** + + + Degree to which the response time and throughput rates of a product or system, + when performing its functions, meet requirements. + + + **Resource utilization** + + + Degree to which the amounts and types of resources used by a product or system, + when performing its functions, meet requirements. + + + **Capacity** + + + Degree to which the maximum limits of a product or system parameter meet requirements.' + identifier: https://w3id.org/everse/i/dimensions/performance_efficiency + name: Performance Efficiency + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: reliability + description: 'Degree to which a system, product or component performs specified + functions under specified conditions for a specified period of time. This + characteristic is composed of the following sub-characteristics: + + + **Faultlessness** + + + Degree to which a system, product or component performs specified functions + without fault under normal operation. + + + **Availability** + + + Degree to which a system, product or component is operational and accessible + when required for use. + + + **Fault tolerance** + + + Degree to which a system, product or component operates as intended despite + the presence of hardware or software faults. + + + **Recoverability** + + + Degree to which, in the event of an interruption or a failure, a product or + system can recover the data directly affected and re-establish the desired + state of the system.' + identifier: https://w3id.org/everse/i/dimensions/reliability + name: Reliability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: safety + description: 'This characteristic represents the degree to which a product under + defined conditions avoids a state in which human life, health, property, or + the environment is endangered. This characteristic is composed of the following + sub-characteristics: + + + **Operational constraint** + + + Degree to which a product or system constrains its operation to within safe + parameters or states when encountering operational hazard. + + + **Risk identification** + + + Degree to which a product can identify a course of events or operations that + can expose life, property or environment to unacceptable risk. + + + **Fail safe** + + + Degree to which a product can automatically place itself in a safe operating + mode, or to revert to a safe condition in the event of a failure. + + + **Hazard warning** + + + Degree to which a product or system provides warnings of unacceptable risks + to operations or internal controls so that they can react in sufficient time + to sustain safe operations. + + + **Safe integration** + + + Degree to which a product can maintain safety during and after integration + with one or more components.' + identifier: https://w3id.org/everse/i/dimensions/safety + name: Safety + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: security + description: 'Degree to which a product or system defends against attack patterns + by malicious actors and protects information and data so that persons or other + products or systems have the degree of data access appropriate to their types + and levels of authorization. This characteristic is composed of the following + sub-characteristics: + + + **Confidentiality** + + + Degree to which a product or system ensures that data are accessible only + to those authorized to have access. + + + **Integrity** + + + Degree to which a system, product or component ensures that the state of its + system and data are protected from unauthorized modification or deletion either + by malicious action or computer error. + + + **Non-repudiation** + + + Degree to which actions or events can be proven to have taken place so that + the events or actions cannot be repudiated later. + + + **Accountability** + + + Degree to which the actions of an entity can be traced uniquely to the entity. + + + **Authenticity** + + + Degree to which the identity of a subject or resource can be proved to be + the one claimed. + + + **Resistance** + + + Degree to which the product or system sustains operations while under attack + from a malicious actor.' + identifier: https://w3id.org/everse/i/dimensions/security + name: Security + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: sustainability + description: The capacity of the software to endure. In other words, sustainability + means that the software will continue to be available in the future, on new + platforms, meeting new needs. + identifier: https://w3id.org/everse/i/dimensions/sustainability + name: Sustainability + source: + name: Defining Software Sustainability + url: https://danielskatzblog.wordpress.com/2016/09/13/defining-software-sustainability/ From b9c8f709b16512eb0129a34d72f68d2d1bc93b88 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 27 Dec 2025 02:04:13 +0000 Subject: [PATCH 18/47] Automated update of RSQKit data files --- _data/quality_dimensions.yml | 177 ----------------------------------- 1 file changed, 177 deletions(-) diff --git a/_data/quality_dimensions.yml b/_data/quality_dimensions.yml index a1bb3560..da76037e 100644 --- a/_data/quality_dimensions.yml +++ b/_data/quality_dimensions.yml @@ -241,180 +241,3 @@ url: https://doi.org/10.5281/zenodo.14204478 - name: What is Open Source? url: https://opensource.com/resources/what-open-source -- abbreviation: performance_efficiency - description: 'This characteristic represents the degree to which a product performs - its functions within specified time and throughput parameters and is efficient - in the use of resources (such as CPU, memory, storage, network devices, energy, - materials...) under specified conditions. This characteristic is composed - of the following sub-characteristics: - - - **Time behaviour** - - - Degree to which the response time and throughput rates of a product or system, - when performing its functions, meet requirements. - - - **Resource utilization** - - - Degree to which the amounts and types of resources used by a product or system, - when performing its functions, meet requirements. - - - **Capacity** - - - Degree to which the maximum limits of a product or system parameter meet requirements.' - identifier: https://w3id.org/everse/i/dimensions/performance_efficiency - name: Performance Efficiency - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: reliability - description: 'Degree to which a system, product or component performs specified - functions under specified conditions for a specified period of time. This - characteristic is composed of the following sub-characteristics: - - - **Faultlessness** - - - Degree to which a system, product or component performs specified functions - without fault under normal operation. - - - **Availability** - - - Degree to which a system, product or component is operational and accessible - when required for use. - - - **Fault tolerance** - - - Degree to which a system, product or component operates as intended despite - the presence of hardware or software faults. - - - **Recoverability** - - - Degree to which, in the event of an interruption or a failure, a product or - system can recover the data directly affected and re-establish the desired - state of the system.' - identifier: https://w3id.org/everse/i/dimensions/reliability - name: Reliability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: safety - description: 'This characteristic represents the degree to which a product under - defined conditions avoids a state in which human life, health, property, or - the environment is endangered. This characteristic is composed of the following - sub-characteristics: - - - **Operational constraint** - - - Degree to which a product or system constrains its operation to within safe - parameters or states when encountering operational hazard. - - - **Risk identification** - - - Degree to which a product can identify a course of events or operations that - can expose life, property or environment to unacceptable risk. - - - **Fail safe** - - - Degree to which a product can automatically place itself in a safe operating - mode, or to revert to a safe condition in the event of a failure. - - - **Hazard warning** - - - Degree to which a product or system provides warnings of unacceptable risks - to operations or internal controls so that they can react in sufficient time - to sustain safe operations. - - - **Safe integration** - - - Degree to which a product can maintain safety during and after integration - with one or more components.' - identifier: https://w3id.org/everse/i/dimensions/safety - name: Safety - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: security - description: 'Degree to which a product or system defends against attack patterns - by malicious actors and protects information and data so that persons or other - products or systems have the degree of data access appropriate to their types - and levels of authorization. This characteristic is composed of the following - sub-characteristics: - - - **Confidentiality** - - - Degree to which a product or system ensures that data are accessible only - to those authorized to have access. - - - **Integrity** - - - Degree to which a system, product or component ensures that the state of its - system and data are protected from unauthorized modification or deletion either - by malicious action or computer error. - - - **Non-repudiation** - - - Degree to which actions or events can be proven to have taken place so that - the events or actions cannot be repudiated later. - - - **Accountability** - - - Degree to which the actions of an entity can be traced uniquely to the entity. - - - **Authenticity** - - - Degree to which the identity of a subject or resource can be proved to be - the one claimed. - - - **Resistance** - - - Degree to which the product or system sustains operations while under attack - from a malicious actor.' - identifier: https://w3id.org/everse/i/dimensions/security - name: Security - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: sustainability - description: The capacity of the software to endure. In other words, sustainability - means that the software will continue to be available in the future, on new - platforms, meeting new needs. - identifier: https://w3id.org/everse/i/dimensions/sustainability - name: Sustainability - source: - name: Defining Software Sustainability - url: https://danielskatzblog.wordpress.com/2016/09/13/defining-software-sustainability/ From 2c05b0f1251022f27f653535b949dbb27f3bb3a2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 28 Dec 2025 02:24:55 +0000 Subject: [PATCH 19/47] Automated update of RSQKit data files --- _data/quality_dimensions.yml | 177 +++++++++++++++++++++++++++++++++++ 1 file changed, 177 insertions(+) diff --git a/_data/quality_dimensions.yml b/_data/quality_dimensions.yml index da76037e..a1bb3560 100644 --- a/_data/quality_dimensions.yml +++ b/_data/quality_dimensions.yml @@ -241,3 +241,180 @@ url: https://doi.org/10.5281/zenodo.14204478 - name: What is Open Source? url: https://opensource.com/resources/what-open-source +- abbreviation: performance_efficiency + description: 'This characteristic represents the degree to which a product performs + its functions within specified time and throughput parameters and is efficient + in the use of resources (such as CPU, memory, storage, network devices, energy, + materials...) under specified conditions. This characteristic is composed + of the following sub-characteristics: + + + **Time behaviour** + + + Degree to which the response time and throughput rates of a product or system, + when performing its functions, meet requirements. + + + **Resource utilization** + + + Degree to which the amounts and types of resources used by a product or system, + when performing its functions, meet requirements. + + + **Capacity** + + + Degree to which the maximum limits of a product or system parameter meet requirements.' + identifier: https://w3id.org/everse/i/dimensions/performance_efficiency + name: Performance Efficiency + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: reliability + description: 'Degree to which a system, product or component performs specified + functions under specified conditions for a specified period of time. This + characteristic is composed of the following sub-characteristics: + + + **Faultlessness** + + + Degree to which a system, product or component performs specified functions + without fault under normal operation. + + + **Availability** + + + Degree to which a system, product or component is operational and accessible + when required for use. + + + **Fault tolerance** + + + Degree to which a system, product or component operates as intended despite + the presence of hardware or software faults. + + + **Recoverability** + + + Degree to which, in the event of an interruption or a failure, a product or + system can recover the data directly affected and re-establish the desired + state of the system.' + identifier: https://w3id.org/everse/i/dimensions/reliability + name: Reliability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: safety + description: 'This characteristic represents the degree to which a product under + defined conditions avoids a state in which human life, health, property, or + the environment is endangered. This characteristic is composed of the following + sub-characteristics: + + + **Operational constraint** + + + Degree to which a product or system constrains its operation to within safe + parameters or states when encountering operational hazard. + + + **Risk identification** + + + Degree to which a product can identify a course of events or operations that + can expose life, property or environment to unacceptable risk. + + + **Fail safe** + + + Degree to which a product can automatically place itself in a safe operating + mode, or to revert to a safe condition in the event of a failure. + + + **Hazard warning** + + + Degree to which a product or system provides warnings of unacceptable risks + to operations or internal controls so that they can react in sufficient time + to sustain safe operations. + + + **Safe integration** + + + Degree to which a product can maintain safety during and after integration + with one or more components.' + identifier: https://w3id.org/everse/i/dimensions/safety + name: Safety + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: security + description: 'Degree to which a product or system defends against attack patterns + by malicious actors and protects information and data so that persons or other + products or systems have the degree of data access appropriate to their types + and levels of authorization. This characteristic is composed of the following + sub-characteristics: + + + **Confidentiality** + + + Degree to which a product or system ensures that data are accessible only + to those authorized to have access. + + + **Integrity** + + + Degree to which a system, product or component ensures that the state of its + system and data are protected from unauthorized modification or deletion either + by malicious action or computer error. + + + **Non-repudiation** + + + Degree to which actions or events can be proven to have taken place so that + the events or actions cannot be repudiated later. + + + **Accountability** + + + Degree to which the actions of an entity can be traced uniquely to the entity. + + + **Authenticity** + + + Degree to which the identity of a subject or resource can be proved to be + the one claimed. + + + **Resistance** + + + Degree to which the product or system sustains operations while under attack + from a malicious actor.' + identifier: https://w3id.org/everse/i/dimensions/security + name: Security + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: sustainability + description: The capacity of the software to endure. In other words, sustainability + means that the software will continue to be available in the future, on new + platforms, meeting new needs. + identifier: https://w3id.org/everse/i/dimensions/sustainability + name: Sustainability + source: + name: Defining Software Sustainability + url: https://danielskatzblog.wordpress.com/2016/09/13/defining-software-sustainability/ From 69a8c5a643abb73b300bff1ed558ac8043d514b1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 13 Jan 2026 02:07:41 +0000 Subject: [PATCH 20/47] Automated update of RSQKit data files --- _data/quality_indicators.yml | 46 ++++++++++++++++++++++++++++++++---- 1 file changed, 41 insertions(+), 5 deletions(-) diff --git a/_data/quality_indicators.yml b/_data/quality_indicators.yml index 19c1bc03..7098aefe 100644 --- a/_data/quality_indicators.yml +++ b/_data/quality_indicators.yml @@ -65,9 +65,11 @@ '@type': Person name: Thomas Vuillaume created: 20-03-2025 - description: Indicator that checks the completeness of a codemeta.json file, i.e., - the percentage of properties that are filled with metadata. This indicator - does not assess the quality of the metadata fields available. + description: This indicator checks that the codemeta file is sufficiently complete + (according to community expectations). That is, the percentage of properties + that are filled with metadata is above an acceptable threshold established + by a target community. This indicator does not assess the quality of the metadata + fields available. identifier: '@id': https://w3id.org/everse/i/indicators/codemeta_completeness keywords: @@ -141,6 +143,38 @@ url: https://fair-impact.github.io/RSMD-guidelines/4.Description_Classification/ status: Active version: 1.0.0 +- abbreviation: functional_correctness + author: + '@type': schema:Organization + name: University of Padova + contactPoint: + '@type': schema:Person + email: gavinmichael.farrell@studenti.unipd.it + name: Gavin Farrell + created: 03-12-2025 + description: For analysis code specifically, is there a quantifiable measure of + the functional correctness of the software output. This indicator focuses + on computational/statistical correctness. For example, in an ML model software + context, the indicator measures whether the repository reports metrics like + Accuracy, F1-score, or ROC-AUC to prove the model performs as intended. However + other performance metrics may also address the indicator. Evaluation metrics + may be provided through documentation, tables or scripts available in the + source code of the target tool. + identifier: + '@id': https://w3id.org/everse/i/indicators/functional_correctness + keywords: + - correctness + - machine learning + - models + name: has a measure of functional correctness + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/functional_suitability + source: + '@id': https://dome-ml.org/guidelines + name: DOME Recommendations for Supervised Machine Learning (Evaluation section) + url: https://dome-ml.org/guidelines#evaluation-section + status: Active + version: 1.0.0 - abbreviation: has_ci-tests author: '@type': schema:Organization @@ -521,7 +555,9 @@ '@id': https://w3id.org/everse/i/dimensions/fairness sameAs: https://doi.org/10.25504/FAIRsharing.c585c5 source: - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + - name: Research Software Metadata guidelines - Credit and attribution + url: https://fair-impact.github.io/RSMD-guidelines/5.Credit_Attribution/ + - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary context url: https://zenodo.org/records/10047401 status: Active @@ -666,7 +702,7 @@ - security - vulnerabilities - static analysis - name: has static analysis for common vulnerabilities + name: Has static analysis for common vulnerabilities qualityDimension: '@id': https://w3id.org/everse/i/dimensions/security source: From 7abe7ee5c226709ba1bc929df5116ff25594c23d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 14 Jan 2026 02:21:08 +0000 Subject: [PATCH 21/47] Automated update of RSQKit data files --- _data/quality_indicators.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_data/quality_indicators.yml b/_data/quality_indicators.yml index 7098aefe..9c191dd7 100644 --- a/_data/quality_indicators.yml +++ b/_data/quality_indicators.yml @@ -166,7 +166,7 @@ - correctness - machine learning - models - name: has a measure of functional correctness + name: Has a measure of functional correctness qualityDimension: '@id': https://w3id.org/everse/i/dimensions/functional_suitability source: From 0b1c7deba483ee384e17a7effa8fc28879fef483 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 21 Jan 2026 02:20:44 +0000 Subject: [PATCH 22/47] Automated update of RSQKit data files --- _data/quality_dimensions.yml | 421 +---------------------------------- 1 file changed, 1 insertion(+), 420 deletions(-) diff --git a/_data/quality_dimensions.yml b/_data/quality_dimensions.yml index a1bb3560..fe51488c 100644 --- a/_data/quality_dimensions.yml +++ b/_data/quality_dimensions.yml @@ -1,420 +1 @@ -- abbreviation: compatibility - description: 'Degree to which a product, system or component can exchange information - with other products, systems or components, and/or perform its required functions - while sharing the same common environment and resources. This characteristic - is composed of the following sub-characteristics: - - - **Co-existence** - - - Degree to which a product can perform its required functions efficiently while - sharing a common environment and resources with other products, without detrimental - impact on any other product. - - - **Interoperability** - - - Degree to which a system, product or component can exchange information with - other products and mutually use the information that has been exchanged.' - identifier: https://w3id.org/everse/i/dimensions/compatibility - name: Compatibility - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: fairness - description: 'FAIRness refers to the degree to which research software adheres - to the FAIR principles: Findable, Accessible, Interoperable, and Reusable. - These principles, adapted for research software, aim to enhance the discoverability, - accessibility, interoperability, and reusability of software, thereby maximizing - its value and impact in scientific research.' - identifier: https://w3id.org/everse/i/dimensions/fairness - name: FAIRness - source: - name: Introducing the FAIR Principles for research software - url: https://www.nature.com/articles/s41597-022-01710-x -- abbreviation: flexibility - description: 'Degree to which a product can be adapted to changes in its requirements, - contexts of use or system environment. This characteristic is composed of - the following sub-characteristics: - - - **Adaptability** - - - Degree to which a product or system can effectively and efficiently be adapted - for or transferred to different hardware, software or other operational or - usage environments. - - - **Scalability** - - - Degree to which a product can handle growing or shrinking workloads or to - adapt its capacity to handle variability. - - - **Installability** - - - Degree of effectiveness and efficiency with which a product or system can - be successfully installed and/or uninstalled in a specified environment. - - - **Replaceability** - - - Degree to which a product can replace another specified software product for - the same purpose in the same environment.' - identifier: https://w3id.org/everse/i/dimensions/flexibility - name: Flexibility - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: functional_suitability - created: 03-04-2025 - description: 'This characteristic represents the degree to which a product or - system provides functions that meet stated and implied needs when used under - specified conditions. This characteristic is composed of the following sub-characteristics: - - - **Functional completeness** - - - Degree to which the set of functions covers all the specified tasks and intended - users'' objectives. - - - **Functional correctness** - - - Degree to which a product or system provides accurate results when used by - intended users. - - - **Functional appropriateness** - - - Degree to which the functions facilitate the accomplishment of specified tasks - and objectives.' - identifier: https://w3id.org/everse/i/dimensions/functional_suitability - name: Functional suitability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: interaction_capability - description: 'Degree to which a product or system can be interacted with by specified - users to exchange information via the user interface to complete specific - tasks in a variety of contexts of use. This characteristic is composed of - the following sub-characteristics: - - - **Appropriateness recognizability** - - - Degree to which users can recognize whether a product or system is appropriate - for their needs. - - - **Learnability** - - - Degree to which the functions of a product or system can be learnt to be used - by specified users within a specified amount of time. - - - **Operability** - - - Degree to which a product or system has attributes that make it easy to operate - and control. - - - **User error protection** - - - Degree to which a system prevents users against operation errors. - - - **User engagement** - - - Degree to which a user interface presents functions and information in an - inviting and motivating manner encouraging continued interaction. - - - **Inclusivity** - - - Degree to which a product or system can be used by people of various backgrounds - (such as people of various ages, abilities, cultures, ethnicities, languages, - genders, economic situations, etc.). - - - **User assistance** - - - Degree to which a product can be used by people with the widest range of characteristics - and capabilities to achieve specified goals in a specified context of use. - - - **Self-descriptiveness** - - - Degree to which a product presents appropriate information, where needed by - the user, to make its capabilities and use immediately obvious to the user - without excessive interactions with a product or other resources (such as - user documentation, help desks or other users).' - identifier: https://w3id.org/everse/i/dimensions/interaction_capability - name: Interaction Capability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: maintainability - description: 'This characteristic represents the degree of effectiveness and efficiency - with which a product or system can be modified to improve it, correct it or - adapt it to changes in environment, and in requirements. This characteristic - is composed of the following sub-characteristics: - - - **Modularity** - - - Degree to which a system or computer program is composed of discrete components - such that a change to one component has minimal impact on other components. - - - **Reusability** - - - Degree to which a product can be used as an asset in more than one system, - or in building other assets. - - - **Analysability** - - - Degree of effectiveness and efficiency with which it is possible to assess - the impact on a product or system of an intended change to one or more of - its parts, to diagnose a product for deficiencies or causes of failures, or - to identify parts to be modified. - - - **Modifiability** - - - Degree to which a product or system can be effectively and efficiently modified - without introducing defects or degrading existing product quality. - - - **Testability** - - - Degree of effectiveness and efficiency with which test criteria can be established - for a system, product or component and tests can be performed to determine - whether those criteria have been met.' - identifier: https://w3id.org/everse/i/dimensions/maintainability - name: Maintainability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: open_source_software - description: Open source software is software with source code that anyone can - inspect, modify, and enhance. Research software can be published with or without - open access to the source code. Open access to source code aligns better with - academic research purposes than closed source software; open source software - aligns with the FAIR4RS principles. It allows other researchers to directly - verify the methods used to produce the results published in papers. It also - makes reproducibility much easier. In addition to these research-driven reasons, - publishing research software as open source software can help with long term - maintenance in a cost-effective way, since interested developers can easily - contribute new functionality or fix bugs. Moreover, by integrating with the - greater open source ecosystem, researchers can leverage tools and support - communities already available. As such, for most academic communities with - limited resources, it is also a good choice from a software engineering perspective - identifier: https://w3id.org/everse/i/dimensions/open_source_software - name: Open Source Software - source: - - identifier: https://doi.org/10.5281/zenodo.14204478 - name: EVERSE Reference Framework - url: https://doi.org/10.5281/zenodo.14204478 - - name: What is Open Source? - url: https://opensource.com/resources/what-open-source -- abbreviation: performance_efficiency - description: 'This characteristic represents the degree to which a product performs - its functions within specified time and throughput parameters and is efficient - in the use of resources (such as CPU, memory, storage, network devices, energy, - materials...) under specified conditions. This characteristic is composed - of the following sub-characteristics: - - - **Time behaviour** - - - Degree to which the response time and throughput rates of a product or system, - when performing its functions, meet requirements. - - - **Resource utilization** - - - Degree to which the amounts and types of resources used by a product or system, - when performing its functions, meet requirements. - - - **Capacity** - - - Degree to which the maximum limits of a product or system parameter meet requirements.' - identifier: https://w3id.org/everse/i/dimensions/performance_efficiency - name: Performance Efficiency - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: reliability - description: 'Degree to which a system, product or component performs specified - functions under specified conditions for a specified period of time. This - characteristic is composed of the following sub-characteristics: - - - **Faultlessness** - - - Degree to which a system, product or component performs specified functions - without fault under normal operation. - - - **Availability** - - - Degree to which a system, product or component is operational and accessible - when required for use. - - - **Fault tolerance** - - - Degree to which a system, product or component operates as intended despite - the presence of hardware or software faults. - - - **Recoverability** - - - Degree to which, in the event of an interruption or a failure, a product or - system can recover the data directly affected and re-establish the desired - state of the system.' - identifier: https://w3id.org/everse/i/dimensions/reliability - name: Reliability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: safety - description: 'This characteristic represents the degree to which a product under - defined conditions avoids a state in which human life, health, property, or - the environment is endangered. This characteristic is composed of the following - sub-characteristics: - - - **Operational constraint** - - - Degree to which a product or system constrains its operation to within safe - parameters or states when encountering operational hazard. - - - **Risk identification** - - - Degree to which a product can identify a course of events or operations that - can expose life, property or environment to unacceptable risk. - - - **Fail safe** - - - Degree to which a product can automatically place itself in a safe operating - mode, or to revert to a safe condition in the event of a failure. - - - **Hazard warning** - - - Degree to which a product or system provides warnings of unacceptable risks - to operations or internal controls so that they can react in sufficient time - to sustain safe operations. - - - **Safe integration** - - - Degree to which a product can maintain safety during and after integration - with one or more components.' - identifier: https://w3id.org/everse/i/dimensions/safety - name: Safety - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: security - description: 'Degree to which a product or system defends against attack patterns - by malicious actors and protects information and data so that persons or other - products or systems have the degree of data access appropriate to their types - and levels of authorization. This characteristic is composed of the following - sub-characteristics: - - - **Confidentiality** - - - Degree to which a product or system ensures that data are accessible only - to those authorized to have access. - - - **Integrity** - - - Degree to which a system, product or component ensures that the state of its - system and data are protected from unauthorized modification or deletion either - by malicious action or computer error. - - - **Non-repudiation** - - - Degree to which actions or events can be proven to have taken place so that - the events or actions cannot be repudiated later. - - - **Accountability** - - - Degree to which the actions of an entity can be traced uniquely to the entity. - - - **Authenticity** - - - Degree to which the identity of a subject or resource can be proved to be - the one claimed. - - - **Resistance** - - - Degree to which the product or system sustains operations while under attack - from a malicious actor.' - identifier: https://w3id.org/everse/i/dimensions/security - name: Security - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: sustainability - description: The capacity of the software to endure. In other words, sustainability - means that the software will continue to be available in the future, on new - platforms, meeting new needs. - identifier: https://w3id.org/everse/i/dimensions/sustainability - name: Sustainability - source: - name: Defining Software Sustainability - url: https://danielskatzblog.wordpress.com/2016/09/13/defining-software-sustainability/ +[] From 48ab8eb222cbb6ba073048d16c8c7d349e66968f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 22 Jan 2026 02:21:33 +0000 Subject: [PATCH 23/47] Automated update of RSQKit data files --- _data/quality_dimensions.yml | 421 ++++++++++++++++++++++++++++++++++- 1 file changed, 420 insertions(+), 1 deletion(-) diff --git a/_data/quality_dimensions.yml b/_data/quality_dimensions.yml index fe51488c..a1bb3560 100644 --- a/_data/quality_dimensions.yml +++ b/_data/quality_dimensions.yml @@ -1 +1,420 @@ -[] +- abbreviation: compatibility + description: 'Degree to which a product, system or component can exchange information + with other products, systems or components, and/or perform its required functions + while sharing the same common environment and resources. This characteristic + is composed of the following sub-characteristics: + + + **Co-existence** + + + Degree to which a product can perform its required functions efficiently while + sharing a common environment and resources with other products, without detrimental + impact on any other product. + + + **Interoperability** + + + Degree to which a system, product or component can exchange information with + other products and mutually use the information that has been exchanged.' + identifier: https://w3id.org/everse/i/dimensions/compatibility + name: Compatibility + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: fairness + description: 'FAIRness refers to the degree to which research software adheres + to the FAIR principles: Findable, Accessible, Interoperable, and Reusable. + These principles, adapted for research software, aim to enhance the discoverability, + accessibility, interoperability, and reusability of software, thereby maximizing + its value and impact in scientific research.' + identifier: https://w3id.org/everse/i/dimensions/fairness + name: FAIRness + source: + name: Introducing the FAIR Principles for research software + url: https://www.nature.com/articles/s41597-022-01710-x +- abbreviation: flexibility + description: 'Degree to which a product can be adapted to changes in its requirements, + contexts of use or system environment. This characteristic is composed of + the following sub-characteristics: + + + **Adaptability** + + + Degree to which a product or system can effectively and efficiently be adapted + for or transferred to different hardware, software or other operational or + usage environments. + + + **Scalability** + + + Degree to which a product can handle growing or shrinking workloads or to + adapt its capacity to handle variability. + + + **Installability** + + + Degree of effectiveness and efficiency with which a product or system can + be successfully installed and/or uninstalled in a specified environment. + + + **Replaceability** + + + Degree to which a product can replace another specified software product for + the same purpose in the same environment.' + identifier: https://w3id.org/everse/i/dimensions/flexibility + name: Flexibility + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: functional_suitability + created: 03-04-2025 + description: 'This characteristic represents the degree to which a product or + system provides functions that meet stated and implied needs when used under + specified conditions. This characteristic is composed of the following sub-characteristics: + + + **Functional completeness** + + + Degree to which the set of functions covers all the specified tasks and intended + users'' objectives. + + + **Functional correctness** + + + Degree to which a product or system provides accurate results when used by + intended users. + + + **Functional appropriateness** + + + Degree to which the functions facilitate the accomplishment of specified tasks + and objectives.' + identifier: https://w3id.org/everse/i/dimensions/functional_suitability + name: Functional suitability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: interaction_capability + description: 'Degree to which a product or system can be interacted with by specified + users to exchange information via the user interface to complete specific + tasks in a variety of contexts of use. This characteristic is composed of + the following sub-characteristics: + + + **Appropriateness recognizability** + + + Degree to which users can recognize whether a product or system is appropriate + for their needs. + + + **Learnability** + + + Degree to which the functions of a product or system can be learnt to be used + by specified users within a specified amount of time. + + + **Operability** + + + Degree to which a product or system has attributes that make it easy to operate + and control. + + + **User error protection** + + + Degree to which a system prevents users against operation errors. + + + **User engagement** + + + Degree to which a user interface presents functions and information in an + inviting and motivating manner encouraging continued interaction. + + + **Inclusivity** + + + Degree to which a product or system can be used by people of various backgrounds + (such as people of various ages, abilities, cultures, ethnicities, languages, + genders, economic situations, etc.). + + + **User assistance** + + + Degree to which a product can be used by people with the widest range of characteristics + and capabilities to achieve specified goals in a specified context of use. + + + **Self-descriptiveness** + + + Degree to which a product presents appropriate information, where needed by + the user, to make its capabilities and use immediately obvious to the user + without excessive interactions with a product or other resources (such as + user documentation, help desks or other users).' + identifier: https://w3id.org/everse/i/dimensions/interaction_capability + name: Interaction Capability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: maintainability + description: 'This characteristic represents the degree of effectiveness and efficiency + with which a product or system can be modified to improve it, correct it or + adapt it to changes in environment, and in requirements. This characteristic + is composed of the following sub-characteristics: + + + **Modularity** + + + Degree to which a system or computer program is composed of discrete components + such that a change to one component has minimal impact on other components. + + + **Reusability** + + + Degree to which a product can be used as an asset in more than one system, + or in building other assets. + + + **Analysability** + + + Degree of effectiveness and efficiency with which it is possible to assess + the impact on a product or system of an intended change to one or more of + its parts, to diagnose a product for deficiencies or causes of failures, or + to identify parts to be modified. + + + **Modifiability** + + + Degree to which a product or system can be effectively and efficiently modified + without introducing defects or degrading existing product quality. + + + **Testability** + + + Degree of effectiveness and efficiency with which test criteria can be established + for a system, product or component and tests can be performed to determine + whether those criteria have been met.' + identifier: https://w3id.org/everse/i/dimensions/maintainability + name: Maintainability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: open_source_software + description: Open source software is software with source code that anyone can + inspect, modify, and enhance. Research software can be published with or without + open access to the source code. Open access to source code aligns better with + academic research purposes than closed source software; open source software + aligns with the FAIR4RS principles. It allows other researchers to directly + verify the methods used to produce the results published in papers. It also + makes reproducibility much easier. In addition to these research-driven reasons, + publishing research software as open source software can help with long term + maintenance in a cost-effective way, since interested developers can easily + contribute new functionality or fix bugs. Moreover, by integrating with the + greater open source ecosystem, researchers can leverage tools and support + communities already available. As such, for most academic communities with + limited resources, it is also a good choice from a software engineering perspective + identifier: https://w3id.org/everse/i/dimensions/open_source_software + name: Open Source Software + source: + - identifier: https://doi.org/10.5281/zenodo.14204478 + name: EVERSE Reference Framework + url: https://doi.org/10.5281/zenodo.14204478 + - name: What is Open Source? + url: https://opensource.com/resources/what-open-source +- abbreviation: performance_efficiency + description: 'This characteristic represents the degree to which a product performs + its functions within specified time and throughput parameters and is efficient + in the use of resources (such as CPU, memory, storage, network devices, energy, + materials...) under specified conditions. This characteristic is composed + of the following sub-characteristics: + + + **Time behaviour** + + + Degree to which the response time and throughput rates of a product or system, + when performing its functions, meet requirements. + + + **Resource utilization** + + + Degree to which the amounts and types of resources used by a product or system, + when performing its functions, meet requirements. + + + **Capacity** + + + Degree to which the maximum limits of a product or system parameter meet requirements.' + identifier: https://w3id.org/everse/i/dimensions/performance_efficiency + name: Performance Efficiency + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: reliability + description: 'Degree to which a system, product or component performs specified + functions under specified conditions for a specified period of time. This + characteristic is composed of the following sub-characteristics: + + + **Faultlessness** + + + Degree to which a system, product or component performs specified functions + without fault under normal operation. + + + **Availability** + + + Degree to which a system, product or component is operational and accessible + when required for use. + + + **Fault tolerance** + + + Degree to which a system, product or component operates as intended despite + the presence of hardware or software faults. + + + **Recoverability** + + + Degree to which, in the event of an interruption or a failure, a product or + system can recover the data directly affected and re-establish the desired + state of the system.' + identifier: https://w3id.org/everse/i/dimensions/reliability + name: Reliability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: safety + description: 'This characteristic represents the degree to which a product under + defined conditions avoids a state in which human life, health, property, or + the environment is endangered. This characteristic is composed of the following + sub-characteristics: + + + **Operational constraint** + + + Degree to which a product or system constrains its operation to within safe + parameters or states when encountering operational hazard. + + + **Risk identification** + + + Degree to which a product can identify a course of events or operations that + can expose life, property or environment to unacceptable risk. + + + **Fail safe** + + + Degree to which a product can automatically place itself in a safe operating + mode, or to revert to a safe condition in the event of a failure. + + + **Hazard warning** + + + Degree to which a product or system provides warnings of unacceptable risks + to operations or internal controls so that they can react in sufficient time + to sustain safe operations. + + + **Safe integration** + + + Degree to which a product can maintain safety during and after integration + with one or more components.' + identifier: https://w3id.org/everse/i/dimensions/safety + name: Safety + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: security + description: 'Degree to which a product or system defends against attack patterns + by malicious actors and protects information and data so that persons or other + products or systems have the degree of data access appropriate to their types + and levels of authorization. This characteristic is composed of the following + sub-characteristics: + + + **Confidentiality** + + + Degree to which a product or system ensures that data are accessible only + to those authorized to have access. + + + **Integrity** + + + Degree to which a system, product or component ensures that the state of its + system and data are protected from unauthorized modification or deletion either + by malicious action or computer error. + + + **Non-repudiation** + + + Degree to which actions or events can be proven to have taken place so that + the events or actions cannot be repudiated later. + + + **Accountability** + + + Degree to which the actions of an entity can be traced uniquely to the entity. + + + **Authenticity** + + + Degree to which the identity of a subject or resource can be proved to be + the one claimed. + + + **Resistance** + + + Degree to which the product or system sustains operations while under attack + from a malicious actor.' + identifier: https://w3id.org/everse/i/dimensions/security + name: Security + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: sustainability + description: The capacity of the software to endure. In other words, sustainability + means that the software will continue to be available in the future, on new + platforms, meeting new needs. + identifier: https://w3id.org/everse/i/dimensions/sustainability + name: Sustainability + source: + name: Defining Software Sustainability + url: https://danielskatzblog.wordpress.com/2016/09/13/defining-software-sustainability/ From 3a3ca2b9855b48e533ba9c7f090b2be2842af0bd Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 24 Jan 2026 02:07:15 +0000 Subject: [PATCH 24/47] Automated update of RSQKit data files --- _data/quality_dimensions.yml | 421 +---------------- _data/quality_indicators.yml | 877 +---------------------------------- 2 files changed, 2 insertions(+), 1296 deletions(-) diff --git a/_data/quality_dimensions.yml b/_data/quality_dimensions.yml index a1bb3560..fe51488c 100644 --- a/_data/quality_dimensions.yml +++ b/_data/quality_dimensions.yml @@ -1,420 +1 @@ -- abbreviation: compatibility - description: 'Degree to which a product, system or component can exchange information - with other products, systems or components, and/or perform its required functions - while sharing the same common environment and resources. This characteristic - is composed of the following sub-characteristics: - - - **Co-existence** - - - Degree to which a product can perform its required functions efficiently while - sharing a common environment and resources with other products, without detrimental - impact on any other product. - - - **Interoperability** - - - Degree to which a system, product or component can exchange information with - other products and mutually use the information that has been exchanged.' - identifier: https://w3id.org/everse/i/dimensions/compatibility - name: Compatibility - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: fairness - description: 'FAIRness refers to the degree to which research software adheres - to the FAIR principles: Findable, Accessible, Interoperable, and Reusable. - These principles, adapted for research software, aim to enhance the discoverability, - accessibility, interoperability, and reusability of software, thereby maximizing - its value and impact in scientific research.' - identifier: https://w3id.org/everse/i/dimensions/fairness - name: FAIRness - source: - name: Introducing the FAIR Principles for research software - url: https://www.nature.com/articles/s41597-022-01710-x -- abbreviation: flexibility - description: 'Degree to which a product can be adapted to changes in its requirements, - contexts of use or system environment. This characteristic is composed of - the following sub-characteristics: - - - **Adaptability** - - - Degree to which a product or system can effectively and efficiently be adapted - for or transferred to different hardware, software or other operational or - usage environments. - - - **Scalability** - - - Degree to which a product can handle growing or shrinking workloads or to - adapt its capacity to handle variability. - - - **Installability** - - - Degree of effectiveness and efficiency with which a product or system can - be successfully installed and/or uninstalled in a specified environment. - - - **Replaceability** - - - Degree to which a product can replace another specified software product for - the same purpose in the same environment.' - identifier: https://w3id.org/everse/i/dimensions/flexibility - name: Flexibility - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: functional_suitability - created: 03-04-2025 - description: 'This characteristic represents the degree to which a product or - system provides functions that meet stated and implied needs when used under - specified conditions. This characteristic is composed of the following sub-characteristics: - - - **Functional completeness** - - - Degree to which the set of functions covers all the specified tasks and intended - users'' objectives. - - - **Functional correctness** - - - Degree to which a product or system provides accurate results when used by - intended users. - - - **Functional appropriateness** - - - Degree to which the functions facilitate the accomplishment of specified tasks - and objectives.' - identifier: https://w3id.org/everse/i/dimensions/functional_suitability - name: Functional suitability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: interaction_capability - description: 'Degree to which a product or system can be interacted with by specified - users to exchange information via the user interface to complete specific - tasks in a variety of contexts of use. This characteristic is composed of - the following sub-characteristics: - - - **Appropriateness recognizability** - - - Degree to which users can recognize whether a product or system is appropriate - for their needs. - - - **Learnability** - - - Degree to which the functions of a product or system can be learnt to be used - by specified users within a specified amount of time. - - - **Operability** - - - Degree to which a product or system has attributes that make it easy to operate - and control. - - - **User error protection** - - - Degree to which a system prevents users against operation errors. - - - **User engagement** - - - Degree to which a user interface presents functions and information in an - inviting and motivating manner encouraging continued interaction. - - - **Inclusivity** - - - Degree to which a product or system can be used by people of various backgrounds - (such as people of various ages, abilities, cultures, ethnicities, languages, - genders, economic situations, etc.). - - - **User assistance** - - - Degree to which a product can be used by people with the widest range of characteristics - and capabilities to achieve specified goals in a specified context of use. - - - **Self-descriptiveness** - - - Degree to which a product presents appropriate information, where needed by - the user, to make its capabilities and use immediately obvious to the user - without excessive interactions with a product or other resources (such as - user documentation, help desks or other users).' - identifier: https://w3id.org/everse/i/dimensions/interaction_capability - name: Interaction Capability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: maintainability - description: 'This characteristic represents the degree of effectiveness and efficiency - with which a product or system can be modified to improve it, correct it or - adapt it to changes in environment, and in requirements. This characteristic - is composed of the following sub-characteristics: - - - **Modularity** - - - Degree to which a system or computer program is composed of discrete components - such that a change to one component has minimal impact on other components. - - - **Reusability** - - - Degree to which a product can be used as an asset in more than one system, - or in building other assets. - - - **Analysability** - - - Degree of effectiveness and efficiency with which it is possible to assess - the impact on a product or system of an intended change to one or more of - its parts, to diagnose a product for deficiencies or causes of failures, or - to identify parts to be modified. - - - **Modifiability** - - - Degree to which a product or system can be effectively and efficiently modified - without introducing defects or degrading existing product quality. - - - **Testability** - - - Degree of effectiveness and efficiency with which test criteria can be established - for a system, product or component and tests can be performed to determine - whether those criteria have been met.' - identifier: https://w3id.org/everse/i/dimensions/maintainability - name: Maintainability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: open_source_software - description: Open source software is software with source code that anyone can - inspect, modify, and enhance. Research software can be published with or without - open access to the source code. Open access to source code aligns better with - academic research purposes than closed source software; open source software - aligns with the FAIR4RS principles. It allows other researchers to directly - verify the methods used to produce the results published in papers. It also - makes reproducibility much easier. In addition to these research-driven reasons, - publishing research software as open source software can help with long term - maintenance in a cost-effective way, since interested developers can easily - contribute new functionality or fix bugs. Moreover, by integrating with the - greater open source ecosystem, researchers can leverage tools and support - communities already available. As such, for most academic communities with - limited resources, it is also a good choice from a software engineering perspective - identifier: https://w3id.org/everse/i/dimensions/open_source_software - name: Open Source Software - source: - - identifier: https://doi.org/10.5281/zenodo.14204478 - name: EVERSE Reference Framework - url: https://doi.org/10.5281/zenodo.14204478 - - name: What is Open Source? - url: https://opensource.com/resources/what-open-source -- abbreviation: performance_efficiency - description: 'This characteristic represents the degree to which a product performs - its functions within specified time and throughput parameters and is efficient - in the use of resources (such as CPU, memory, storage, network devices, energy, - materials...) under specified conditions. This characteristic is composed - of the following sub-characteristics: - - - **Time behaviour** - - - Degree to which the response time and throughput rates of a product or system, - when performing its functions, meet requirements. - - - **Resource utilization** - - - Degree to which the amounts and types of resources used by a product or system, - when performing its functions, meet requirements. - - - **Capacity** - - - Degree to which the maximum limits of a product or system parameter meet requirements.' - identifier: https://w3id.org/everse/i/dimensions/performance_efficiency - name: Performance Efficiency - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: reliability - description: 'Degree to which a system, product or component performs specified - functions under specified conditions for a specified period of time. This - characteristic is composed of the following sub-characteristics: - - - **Faultlessness** - - - Degree to which a system, product or component performs specified functions - without fault under normal operation. - - - **Availability** - - - Degree to which a system, product or component is operational and accessible - when required for use. - - - **Fault tolerance** - - - Degree to which a system, product or component operates as intended despite - the presence of hardware or software faults. - - - **Recoverability** - - - Degree to which, in the event of an interruption or a failure, a product or - system can recover the data directly affected and re-establish the desired - state of the system.' - identifier: https://w3id.org/everse/i/dimensions/reliability - name: Reliability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: safety - description: 'This characteristic represents the degree to which a product under - defined conditions avoids a state in which human life, health, property, or - the environment is endangered. This characteristic is composed of the following - sub-characteristics: - - - **Operational constraint** - - - Degree to which a product or system constrains its operation to within safe - parameters or states when encountering operational hazard. - - - **Risk identification** - - - Degree to which a product can identify a course of events or operations that - can expose life, property or environment to unacceptable risk. - - - **Fail safe** - - - Degree to which a product can automatically place itself in a safe operating - mode, or to revert to a safe condition in the event of a failure. - - - **Hazard warning** - - - Degree to which a product or system provides warnings of unacceptable risks - to operations or internal controls so that they can react in sufficient time - to sustain safe operations. - - - **Safe integration** - - - Degree to which a product can maintain safety during and after integration - with one or more components.' - identifier: https://w3id.org/everse/i/dimensions/safety - name: Safety - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: security - description: 'Degree to which a product or system defends against attack patterns - by malicious actors and protects information and data so that persons or other - products or systems have the degree of data access appropriate to their types - and levels of authorization. This characteristic is composed of the following - sub-characteristics: - - - **Confidentiality** - - - Degree to which a product or system ensures that data are accessible only - to those authorized to have access. - - - **Integrity** - - - Degree to which a system, product or component ensures that the state of its - system and data are protected from unauthorized modification or deletion either - by malicious action or computer error. - - - **Non-repudiation** - - - Degree to which actions or events can be proven to have taken place so that - the events or actions cannot be repudiated later. - - - **Accountability** - - - Degree to which the actions of an entity can be traced uniquely to the entity. - - - **Authenticity** - - - Degree to which the identity of a subject or resource can be proved to be - the one claimed. - - - **Resistance** - - - Degree to which the product or system sustains operations while under attack - from a malicious actor.' - identifier: https://w3id.org/everse/i/dimensions/security - name: Security - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: sustainability - description: The capacity of the software to endure. In other words, sustainability - means that the software will continue to be available in the future, on new - platforms, meeting new needs. - identifier: https://w3id.org/everse/i/dimensions/sustainability - name: Sustainability - source: - name: Defining Software Sustainability - url: https://danielskatzblog.wordpress.com/2016/09/13/defining-software-sustainability/ +[] diff --git a/_data/quality_indicators.yml b/_data/quality_indicators.yml index 9c191dd7..fe51488c 100644 --- a/_data/quality_indicators.yml +++ b/_data/quality_indicators.yml @@ -1,876 +1 @@ -- abbreviation: archived_in_scholarly_repository - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-06-2025 - description: 'The source code repository is archived in a scholarly repository - (e.g Zenodo, HAL) to ensure that software can be found and accessed in a scholarly - context ' - identifier: - '@id': https://w3id.org/everse/i/indicators/archived_in_scholarly_repository - keywords: - - repository - - fair - - scholar - name: Software is archived in a scholarly repository - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - '@id': https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ - name: Accessibility and preservation. RSMD 2.2 - url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/#accessibility-and-preservation - status: Active - version: 1.0.0 -- abbreviation: archived_in_software_heritage - alternateName: FRSM-08 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-06-2025 - description: The source code repository is found in the universal source code - archive, Software Heritage, to ensure long-term access to the full development - history. - identifier: - '@id': https://w3id.org/everse/i/indicators/archived_in_software_heritage - keywords: - - repository - - fair - - software heritage - name: Software is archived in Software Heritage - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - '@id': https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ - name: Accessibility and preservation. RSMD 2.1 - url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/#accessibility-and-preservation - status: Active - version: 1.0.0 -- abbreviation: codemeta_completeness - author: - - '@type': schema:Person - name: Thomas Vuillaume - - '@type': schema:Person - name: Daniel Garijo - contact: - '@type': Person - name: Thomas Vuillaume - created: 20-03-2025 - description: This indicator checks that the codemeta file is sufficiently complete - (according to community expectations). That is, the percentage of properties - that are filled with metadata is above an acceptable threshold established - by a target community. This indicator does not assess the quality of the metadata - fields available. - identifier: - '@id': https://w3id.org/everse/i/indicators/codemeta_completeness - keywords: - - codemeta - - metadata - - fair - name: CodeMeta completeness - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - status: Active - version: 1.0.0 -- abbreviation: dependency_management - author: - '@type': Person - name: Faruk Diblen - contact: - '@type': Person - name: Faruk Diblen - created: 03-04-2025 - description: Reviews how external libraries and dependencies are managed to ensure - compatibility and security. - identifier: - '@id': https://w3id.org/everse/i/indicators/dependency_management - keywords: - - sustaninability - - dependencies - name: Software has dependency management solution - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/sustainability - - '@id': https://w3id.org/everse/i/dimensions/security - - '@id': https://w3id.org/everse/i/dimensions/compatibility - source: - - identifier: https://zenodo.org/record/14852424 - name: 'Software Quality Indicators from BioHackathon 2024 (Sheet: Sustanability, - Row: Su7)' - url: https://zenodo.org/records/14852424/files/Software%20Quality%20Indicators.xlsx - - name: RSMD checklist - url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ - status: Active - version: 1.0.0 -- abbreviation: descriptive_metadata - alternateName: FRSM-06 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: 'This indicator aims to determine if a software component comes with - descriptive metadata that provides information. This includes, but is not - limited to: name, domain, programming language, date created, date of first - publication, keywords, related links, etc..' - identifier: - '@id': https://w3id.org/everse/i/indicators/descriptive_metadata - keywords: - - metadata - - software - - fair - - findability - name: Software has descriptive metadata - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - - name: Description & classification. RSMD-4.1 - url: https://fair-impact.github.io/RSMD-guidelines/4.Description_Classification/ - status: Active - version: 1.0.0 -- abbreviation: functional_correctness - author: - '@type': schema:Organization - name: University of Padova - contactPoint: - '@type': schema:Person - email: gavinmichael.farrell@studenti.unipd.it - name: Gavin Farrell - created: 03-12-2025 - description: For analysis code specifically, is there a quantifiable measure of - the functional correctness of the software output. This indicator focuses - on computational/statistical correctness. For example, in an ML model software - context, the indicator measures whether the repository reports metrics like - Accuracy, F1-score, or ROC-AUC to prove the model performs as intended. However - other performance metrics may also address the indicator. Evaluation metrics - may be provided through documentation, tables or scripts available in the - source code of the target tool. - identifier: - '@id': https://w3id.org/everse/i/indicators/functional_correctness - keywords: - - correctness - - machine learning - - models - name: Has a measure of functional correctness - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/functional_suitability - source: - '@id': https://dome-ml.org/guidelines - name: DOME Recommendations for Supervised Machine Learning (Evaluation section) - url: https://dome-ml.org/guidelines#evaluation-section - status: Active - version: 1.0.0 -- abbreviation: has_ci-tests - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if the project runs tests before - pull requests are merged. - identifier: - '@id': https://w3id.org/everse/i/indicators/has_ci-tests - keywords: - - continuous - - integration - - test - name: Software has continuous integration tests - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/maintainability - source: - name: 'OpenSSF Scorecard: CI-Tests' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#ci-tests - status: Active - version: 1.0.0 -- abbreviation: has_no_linting_issues - alternateName: has_no_linting_issues - author: - '@type': schema:Organization - name: Super-Linter - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-06-2025 - description: The project addresses or resolves warnings identified by compilers, - safe modes, or linters. - identifier: - '@id': https://w3id.org/everse/i/indicators/has_no_linting_issues - keywords: - - linting - - code analysis - - fair - name: Software has no linting issues - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/maintainability - source: - - name: Super-Linter - url: https://github.com/super-linter/super-linter - - name: OpenSSF best practices - url: https://www.bestpractices.dev/en/criteria/0#0.warnings_fixed - status: Active - version: 1.0.0 -- abbreviation: has_published_package - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if a software project is published - as a downloadable package. - identifier: - '@id': https://w3id.org/everse/i/indicators/has_published_package - keywords: - - release - - fair - - package - - packaging - name: Software is published as a downloadable package - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/flexibility - source: - name: 'OpenSSF Scorecard: Packaging' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#packaging - status: Active - version: 1.0.0 -- abbreviation: has_releases - alternateName: FRSM-03 - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: To enable collaborative review, the project's source repository MUST - include interim versions for review between releases; it MUST NOT include - only final releases. This indicator determines if a software project has releases. - This can be achieved by looking for tags or using software that retrieves - related data. - identifier: - '@id': https://w3id.org/everse/i/indicators/has_releases - keywords: - - releases - - repository - - fair - name: Software has releases - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/maintainability - - '@id': https://w3id.org/everse/i/dimensions/fairness - sameAs: https://doi.org/10.25504/FAIRsharing.ef9fc3 - source: - name: OpenSSF Best Practices (change control) - url: https://www.bestpractices.dev/en/criteria/0#0.repo_interim - status: Active - version: 1.0.0 -- abbreviation: human_code_review_requirement - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if a software project requires human - code review before pull requests. - identifier: - '@id': https://w3id.org/everse/i/indicators/human_code_review_requirement - keywords: - - human-in-the-loop - - pull request - - review - name: Software requires human code review. - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/functional_suitability - source: - name: 'OpenSSF Scorecard: Code-Review' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#code-review - status: Active - version: 1.0.0 -- abbreviation: listed_in_registry - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-06-2025 - description: The target source code repository is in a disciplinary or community - registry (e.g ascl.net, bio.tools, swMath, RRID portal, RSD, WikiData, DataCite, - etc.) to ensure that software can be found and accessed. - identifier: - '@id': https://w3id.org/everse/i/indicators/listed_in_registry - keywords: - - repository - - fair - - software heritage, zenodo - name: Software is listed in a registry - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - '@id': https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ - name: Accessibility and preservation. RSMD 2.3 - url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/#accessibility-and-preservation - status: Active - version: 1.0.0 -- abbreviation: metadata_is_up_to_date - author: - - '@type': schema:Person - name: Tom François - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Thomas Vuillaume - contact: - - '@type': schema:Person - name: Tom François - - '@type': schema:Person - name: Daniel Garijo - created: 24-09-2025 - description: Metadata information reflects the current description of a software - project. This indicator ensures that the current project metadata provides - up to date, accurate and relevant information about a software component. - identifier: - '@id': https://w3id.org/everse/i/indicators/metadata_is_up_to_date - keywords: - - metadata - - software - - fair - - findability - - maintainability - name: Software has up-to-date metadata - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/maintainability - source: - - name: 'EOSC-SWRelMan-11: Metadata: Supportability, Maintainability, Availability.' - url: https://doi.org/10.5281/zenodo.10647227 - status: Active - version: 1.0.0 -- abbreviation: no_critical_vulnerability - author: - - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - '@type': schema:Person - name: Tom François - schema:email: tom.francois@lapp.in2p3.fr - created: 03-04-2025 - description: Checks if reported critical vulnerabilities have been fixed - identifier: - '@id': https://w3id.org/everse/i/indicators/no_critical_vulnerability - keywords: - - security - - critical - - vulnerability - name: No critical vulnerabilities - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/security - source: - - '@id': https://www.bestpractices.dev/en/criteria/0#0.vulnerabilities_critical_fixed - name: OpenSSF Best practice Critical Vulnerability Fixed - status: Active - version: 1.0.0 -- abbreviation: no_leaked_credentials - author: - - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - '@type': schema:Person - name: Tom François - schema:email: tom.francois@lapp.in2p3.fr - description: Checks if hardcoded secrets like passwords, API keys, and tokens - is stored in the public git repository - identifier: - '@id': https://w3id.org/everse/i/indicators/no_leaked_credentials - keywords: - - security - - credential - - leak - - secret - - password - name: No leaked credentials - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/security - source: - - '@id': https://www.bestpractices.dev/en/criteria/0#0.no_leaked_credentials - name: OpenSSF Best practice No Leaked Credentials - status: Active - version: 1.0.0 -- abbreviation: persistent_and_unique_identifier - alternateName: FRSM-01 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator tries to determine if the software identifier is based - on a suitable identifier scheme, and test it can be resolved. This is done - by checking if the identifier uses an identifier scheme contained in a list - of globally unique identifier schemes - identifier: - '@id': https://w3id.org/everse/i/indicators/persistent_and_unique_identifier - keywords: - - identifier - - unique - - fair - - persistent - - metadata - name: Software has persistent and unique identifier - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - sameAs: https://doi.org/10.25504/FAIRsharing.87c9a8 - source: - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - status: Active - version: 1.0.0 -- abbreviation: repository_workflows - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator tries aims determine if a software project makes use - of workflows to automate processes like testing and deployment. - identifier: - '@id': https://w3id.org/everse/i/indicators/repository_workflows - keywords: - - workflows - - github - - fair - - repository - name: Software has ci/cd workflows in its repository - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/maintainability - source: - - name: 'OpenSSF Scorecard: CI-Tests' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#ci-tests - status: Active - version: 1.0.0 -- abbreviation: requirements_specified - alternateName: FRSM-13 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator tries to determine if the project specifies what is - required to use the software. - identifier: - '@id': https://w3id.org/everse/i/indicators/requirements_specified - keywords: - - documentation - - requirements - - dependencies - - fair - name: Software specifies requirements - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/flexibility - - '@id': https://w3id.org/everse/i/dimensions/maintainability - sameAs: https://doi.org/10.25504/FAIRsharing.b8eeb9 - source: - - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - - name: 'RSMD Guidelines - Re-execute: dependencies and execution environment' - url: https://fair-impact.github.io/RSMD-guidelines/7.Re-execute/ - status: Active - version: 1.0.0 -- abbreviation: software_has_citation - alternateName: FRSM-12 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if the project uses a citation to - reference contributors and authors (e.g., through a CFF file, in the README, - etc). - identifier: - '@id': https://w3id.org/everse/i/indicators/software_has_citation - keywords: - - citation - - metadata - - fair - - contributors - name: Software uses citation - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - sameAs: https://doi.org/10.25504/FAIRsharing.c585c5 - source: - - name: Research Software Metadata guidelines - Credit and attribution - url: https://fair-impact.github.io/RSMD-guidelines/5.Credit_Attribution/ - - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - status: Active - version: 1.0.0 -- abbreviation: software_has_documentation - alternateName: FRSM-05 - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if a software project comes with - many forms of documentation like readme or readthedocs - identifier: - '@id': https://w3id.org/everse/i/indicators/software_has_documentation - keywords: - - documentation - - fair - - usage - - readme - name: Software has documentation - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/interaction_capability - sameAs: https://doi.org/10.25504/FAIRsharing.452bcd - source: - name: FLOSS Best Practices Criteria - url: https://www.bestpractices.dev/en/criteria/0#0.documentation_basics - status: Active - version: 1.0.0 -- abbreviation: software_has_license - alternateName: FRSM-15 - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This check tries to determine if the project has published a license - identifier: - '@id': https://w3id.org/everse/i/indicators/software_has_license - keywords: - - license - - metadata - - fair - name: Software has license - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - - name: 'OpenSSF Scorecard: License' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#license - - name: Reuse, licensing and legal aspects. RSMD-6.2 - url: https://fair-impact.github.io/RSMD-guidelines/6.Reuse_legal/ - status: Active - version: 1.0.0 -- abbreviation: software_has_tests - alternateName: FRSM-14 - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: Evaluates the extent to which the software has been tested, including - unit tests, integration tests, and system tests, to ensure reliability and - correctness. - identifier: - '@id': https://w3id.org/everse/i/indicators/software_has_tests - keywords: - - test - - functionality - - fair - name: Software provides tests. - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/reliability - sameAs: https://doi.org/10.25504/FAIRsharing.a2dd1a - source: - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - status: Active - version: 1.0.0 -- abbreviation: software_test_coverage - author: - '@type': schema:Organization - name: ELIXIR-Steers - url: https://elixir-europe.org/about-us/how-funded/eu-projects/steers - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 03-12-2025 - description: Indicates that the test suite covers most (or ideally all) the code - branches, input fields, and functionality - identifier: - '@id': https://w3id.org/everse/i/indicators/software_test_coverage - keywords: - - test coverage - - code coverage - - branch coverage - - coverage threshold - - test completeness - name: Software has sufficient test coverage - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/reliability - - '@id': https://w3id.org/everse/i/dimensions/functional_suitability - source: - name: ELIXIR Steers D2.1 Report on best-practices and indicators available - and used by selected Communities - url: https://doi.org/10.5281/zenodo.17035105 - status: Active - version: 0.0.1 -- abbreviation: static_analysis_common_vulnerabilities - author: - '@type': Organization - name: OpenSSF - url: https://openssf.org/ - contactPoint: - '@type': schema:Person - email: thomas.vuillaume@lapp.in2p3.fr - name: Thomas Vuillaume - created: 03-04-2025 - description: At least one static code analysis tool used includes rules or techniques - to detect common vulnerabilities specific to the language or environment. - identifier: - '@id': https://w3id.org/everse/i/indicators/static_analysis_common_vulnerabilities - keywords: - - security - - vulnerabilities - - static analysis - name: Has static analysis for common vulnerabilities - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/security - source: - '@id': https://www.bestpractices.dev/en/criteria/0 - name: FLOSS Best Practices Criteria (Passing Badge) - url: https://www.bestpractices.dev/en/criteria/0#0.static_analysis_common_vulnerabilities - status: Active - version: 1.0.0 -- abbreviation: support_issue_tracking - author: - '@type': Organization - name: OpenSSF - url: https://openssf.org/ - contactPoint: - '@type': schema:Person - email: federica.quaglia@unipd.it - name: Federica Quaglia - created: 03-12-2025 - description: The software project offers an accessible issue tracking system (e.g., - GitHub/GitLab Issues or a helpdesk) that is used to report, document, and - manage bugs, enhancement requests, and user-facing operational issues. - identifier: - '@id': https://w3id.org/everse/i/indicators/support_issue_tracking - keywords: - - support - - issues - - helpdesk - - maintenance - - user support - name: Software provides issue tracking - qualityDimension: - '@id': 'https://w3id.org/everse/i/dimensions/maintainability ' - source: - '@id': https://zenodo.org/records/17035105 - name: ELIXIR-STEERS D2.1 Report on best-practices and indicators available - and used by selected Communities - url: https://zenodo.org/records/17035105 - status: Active - version: 1.0.0 -- abbreviation: uses_fuzzing - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-06-2025 - description: 'This indicator checks that the software produced by the project - includes software written using a memory-unsafe language (e.g., C or C++), - then at least one dynamic tool (e.g., a fuzzer or web application scanner) - be routinely used in combination with a mechanism to detect memory safety - problems such as buffer overwrites. ' - identifier: - '@id': https://w3id.org/everse/i/indicators/uses_fuzzing - keywords: - - fuzzing - - test - - code - name: Software uses fuzzing - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/safety - source: - name: 'OpenSSF Scorecard: Fuzzing' - url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#fuzzing - status: Active - version: 1.0.0 -- abbreviation: uses_tool_for_warnings_and_mistakes - author: - '@type': schema:Organization - name: OpenSSF - url: https://openssf.org/ - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 27-06-2025 - description: This indicator checks that the project enables one or more compiler - warning flags, a "safe" language mode, or uses a separate "linter" tool to - look for code quality errors or common simple mistakes, if there is at least - one FLOSS tool that can implement this criterion in the selected language. - identifier: - '@id': https://w3id.org/everse/i/indicators/uses_tool_for_warnings_and_mistakes - keywords: - - linting - - code analysis - - fair - name: Software uses a tool for warnings or mistakes - qualityDimension: - - '@id': https://w3id.org/everse/i/dimensions/fairness - - '@id': https://w3id.org/everse/i/dimensions/maintainability - source: - - name: 'OpenSSF Best Practices badge: Warning Flags' - url: https://www.bestpractices.dev/en/criteria/0#0.warnings - - '@id': https://zenodo.org/records/10723608 - name: Ensure Software Quality - url: https://zenodo.org/records/10723608 - status: Active - version: 1.0.0 -- abbreviation: version_control_use - alternateName: FRSM-17 - author: - - '@type': schema:Organization - name: Elixir focus group - url: https://zenodo.org/communities/elixir/records - - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 23-05-2025 - description: This indicator aims to determine if a software project uses version - control. - identifier: - '@id': https://w3id.org/everse/i/indicators/version_control_use - keywords: - - version - - control - - fair - - repository - - identifier - name: Software makes use of version control - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - sameAs: https://doi.org/10.25504/FAIRsharing.d2b2c5 - source: - - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://zenodo.org/records/10047401 - - name: 'Software Quality Indicators: extraction, categorisation and recommendations - from canonical sources' - url: https://doi.org/10.5281/zenodo.15474784 - - name: Reference and identification. RSMD-3.1 - url: https://fair-impact.github.io/RSMD-guidelines/3.Reference_identification/ - status: Active - version: 1.0.0 -- abbreviation: versioning_standards_use - author: - '@type': schema:Organization - name: FAIR-IMPACT - contact: - - '@type': schema:Person - name: Daniel Garijo - - '@type': schema:Person - name: Andres Montero - created: 14-07-2025 - description: This indicator aims to determine if the version (or versions) of - a software tool follows an established community convention like semantic - versioning (SemVer) or calendar versioning (CalVer). - identifier: - '@id': https://w3id.org/everse/i/indicators/versioning_standards_use - keywords: - - version - - versioning - - fair - - releases - name: Software follows versioning standards - qualityDimension: - '@id': https://w3id.org/everse/i/dimensions/fairness - source: - '@id': https://doi.org/10.5281/zenodo.15535629 - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary - context - url: https://doi.org/10.5281/zenodo.15535629 - status: Active - version: 1.0.0 +[] From c5897f64f6549e98cd30d5d09aaa3ec8d595ace6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sun, 25 Jan 2026 02:28:56 +0000 Subject: [PATCH 25/47] Automated update of RSQKit data files --- _data/quality_indicators.yml | 351 ++++++++++++++++++++++++++++++++++- 1 file changed, 350 insertions(+), 1 deletion(-) diff --git a/_data/quality_indicators.yml b/_data/quality_indicators.yml index fe51488c..7c07b3a2 100644 --- a/_data/quality_indicators.yml +++ b/_data/quality_indicators.yml @@ -1 +1,350 @@ -[] +- abbreviation: archived_in_scholarly_repository + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-06-2025 + description: 'The source code repository is archived in a scholarly repository + (e.g Zenodo, HAL) to ensure that software can be found and accessed in a scholarly + context ' + identifier: + '@id': https://w3id.org/everse/i/indicators/archived_in_scholarly_repository + keywords: + - repository + - fair + - scholar + name: Software is archived in a scholarly repository + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + '@id': https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ + name: Accessibility and preservation. RSMD 2.2 + url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/#accessibility-and-preservation + status: Active + version: 1.0.0 +- abbreviation: archived_in_software_heritage + alternateName: FRSM-08 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-06-2025 + description: The source code repository is found in the universal source code + archive, Software Heritage, to ensure long-term access to the full development + history. + identifier: + '@id': https://w3id.org/everse/i/indicators/archived_in_software_heritage + keywords: + - repository + - fair + - software heritage + name: Software is archived in Software Heritage + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + '@id': https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ + name: Accessibility and preservation. RSMD 2.1 + url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/#accessibility-and-preservation + status: Active + version: 1.0.0 +- abbreviation: codemeta_completeness + author: + - '@type': schema:Person + name: Thomas Vuillaume + - '@type': schema:Person + name: Daniel Garijo + contact: + '@type': Person + name: Thomas Vuillaume + created: 20-03-2025 + description: This indicator checks that the codemeta file is sufficiently complete + (according to community expectations). That is, the percentage of properties + that are filled with metadata is above an acceptable threshold established + by a target community. This indicator does not assess the quality of the metadata + fields available. + identifier: + '@id': https://w3id.org/everse/i/indicators/codemeta_completeness + keywords: + - codemeta + - metadata + - fair + name: CodeMeta completeness + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + status: Active + version: 1.0.0 +- abbreviation: dependency_management + author: + '@type': Person + name: Faruk Diblen + contact: + '@type': Person + name: Faruk Diblen + created: 03-04-2025 + description: Reviews how external libraries and dependencies are managed to ensure + compatibility and security. + identifier: + '@id': https://w3id.org/everse/i/indicators/dependency_management + keywords: + - sustaninability + - dependencies + name: Software has dependency management solution + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/sustainability + - '@id': https://w3id.org/everse/i/dimensions/security + - '@id': https://w3id.org/everse/i/dimensions/compatibility + source: + - identifier: https://zenodo.org/record/14852424 + name: 'Software Quality Indicators from BioHackathon 2024 (Sheet: Sustanability, + Row: Su7)' + url: https://zenodo.org/records/14852424/files/Software%20Quality%20Indicators.xlsx + - name: RSMD checklist + url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ + status: Active + version: 1.0.0 +- abbreviation: descriptive_metadata + alternateName: FRSM-06 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: 'This indicator aims to determine if a software component comes with + descriptive metadata that provides information. This includes, but is not + limited to: name, domain, programming language, date created, date of first + publication, keywords, related links, etc..' + identifier: + '@id': https://w3id.org/everse/i/indicators/descriptive_metadata + keywords: + - metadata + - software + - fair + - findability + name: Software has descriptive metadata + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + - name: Description & classification. RSMD-4.1 + url: https://fair-impact.github.io/RSMD-guidelines/4.Description_Classification/ + status: Active + version: 1.0.0 +- abbreviation: functional_correctness + author: + '@type': schema:Organization + name: University of Padova + contactPoint: + '@type': schema:Person + email: gavinmichael.farrell@studenti.unipd.it + name: Gavin Farrell + created: 03-12-2025 + description: For analysis code specifically, is there a quantifiable measure of + the functional correctness of the software output. This indicator focuses + on computational/statistical correctness. For example, in an ML model software + context, the indicator measures whether the repository reports metrics like + Accuracy, F1-score, or ROC-AUC to prove the model performs as intended. However + other performance metrics may also address the indicator. Evaluation metrics + may be provided through documentation, tables or scripts available in the + source code of the target tool. + identifier: + '@id': https://w3id.org/everse/i/indicators/functional_correctness + keywords: + - correctness + - machine learning + - models + name: Has a measure of functional correctness + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/functional_suitability + source: + '@id': https://dome-ml.org/guidelines + name: DOME Recommendations for Supervised Machine Learning (Evaluation section) + url: https://dome-ml.org/guidelines#evaluation-section + status: Active + version: 1.0.0 +- abbreviation: has_ci-tests + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if the project runs tests before + pull requests are merged. + identifier: + '@id': https://w3id.org/everse/i/indicators/has_ci-tests + keywords: + - continuous + - integration + - test + name: Software has continuous integration tests + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/maintainability + source: + name: 'OpenSSF Scorecard: CI-Tests' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#ci-tests + status: Active + version: 1.0.0 +- abbreviation: has_no_linting_issues + alternateName: has_no_linting_issues + author: + '@type': schema:Organization + name: Super-Linter + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-06-2025 + description: The project addresses or resolves warnings identified by compilers, + safe modes, or linters. + identifier: + '@id': https://w3id.org/everse/i/indicators/has_no_linting_issues + keywords: + - linting + - code analysis + - fair + name: Software has no linting issues + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/maintainability + source: + - name: Super-Linter + url: https://github.com/super-linter/super-linter + - name: OpenSSF best practices + url: https://www.bestpractices.dev/en/criteria/0#0.warnings_fixed + status: Active + version: 1.0.0 +- abbreviation: has_published_package + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if a software project is published + as a downloadable package. + identifier: + '@id': https://w3id.org/everse/i/indicators/has_published_package + keywords: + - release + - fair + - package + - packaging + name: Software is published as a downloadable package + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/flexibility + source: + name: 'OpenSSF Scorecard: Packaging' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#packaging + status: Active + version: 1.0.0 +- abbreviation: has_releases + alternateName: FRSM-03 + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: To enable collaborative review, the project's source repository MUST + include interim versions for review between releases; it MUST NOT include + only final releases. This indicator determines if a software project has releases. + This can be achieved by looking for tags or using software that retrieves + related data. + identifier: + '@id': https://w3id.org/everse/i/indicators/has_releases + keywords: + - releases + - repository + - fair + name: Software has releases + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/maintainability + - '@id': https://w3id.org/everse/i/dimensions/fairness + sameAs: https://doi.org/10.25504/FAIRsharing.ef9fc3 + source: + name: OpenSSF Best Practices (change control) + url: https://www.bestpractices.dev/en/criteria/0#0.repo_interim + status: Active + version: 1.0.0 +- abbreviation: human_code_review_requirement + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if a software project requires human + code review before pull requests. + identifier: + '@id': https://w3id.org/everse/i/indicators/human_code_review_requirement + keywords: + - human-in-the-loop + - pull request + - review + name: Software requires human code review. + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/functional_suitability + source: + name: 'OpenSSF Scorecard: Code-Review' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#code-review + status: Active + version: 1.0.0 +- abbreviation: listed_in_registry + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-06-2025 + description: The target source code repository is in a disciplinary or community + registry (e.g ascl.net, bio.tools, swMath, RRID portal, RSD, WikiData, DataCite, + etc.) to ensure that software can be found and accessed. + identifier: + '@id': https://w3id.org/everse/i/indicators/listed_in_registry + keywords: + - repository + - fair + - software heritage, zenodo + name: Software is listed in a registry + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + '@id': https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/ + name: Accessibility and preservation. RSMD 2.3 + url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/#accessibility-and-preservation + status: Active + version: 1.0.0 From d69dff3bc5747ebcf383b42882fb28f36795f33d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 26 Jan 2026 02:27:51 +0000 Subject: [PATCH 26/47] Automated update of RSQKit data files --- _data/quality_dimensions.yml | 421 +++++++++++++++++++++++++++- _data/quality_indicators.yml | 526 +++++++++++++++++++++++++++++++++++ 2 files changed, 946 insertions(+), 1 deletion(-) diff --git a/_data/quality_dimensions.yml b/_data/quality_dimensions.yml index fe51488c..a1bb3560 100644 --- a/_data/quality_dimensions.yml +++ b/_data/quality_dimensions.yml @@ -1 +1,420 @@ -[] +- abbreviation: compatibility + description: 'Degree to which a product, system or component can exchange information + with other products, systems or components, and/or perform its required functions + while sharing the same common environment and resources. This characteristic + is composed of the following sub-characteristics: + + + **Co-existence** + + + Degree to which a product can perform its required functions efficiently while + sharing a common environment and resources with other products, without detrimental + impact on any other product. + + + **Interoperability** + + + Degree to which a system, product or component can exchange information with + other products and mutually use the information that has been exchanged.' + identifier: https://w3id.org/everse/i/dimensions/compatibility + name: Compatibility + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: fairness + description: 'FAIRness refers to the degree to which research software adheres + to the FAIR principles: Findable, Accessible, Interoperable, and Reusable. + These principles, adapted for research software, aim to enhance the discoverability, + accessibility, interoperability, and reusability of software, thereby maximizing + its value and impact in scientific research.' + identifier: https://w3id.org/everse/i/dimensions/fairness + name: FAIRness + source: + name: Introducing the FAIR Principles for research software + url: https://www.nature.com/articles/s41597-022-01710-x +- abbreviation: flexibility + description: 'Degree to which a product can be adapted to changes in its requirements, + contexts of use or system environment. This characteristic is composed of + the following sub-characteristics: + + + **Adaptability** + + + Degree to which a product or system can effectively and efficiently be adapted + for or transferred to different hardware, software or other operational or + usage environments. + + + **Scalability** + + + Degree to which a product can handle growing or shrinking workloads or to + adapt its capacity to handle variability. + + + **Installability** + + + Degree of effectiveness and efficiency with which a product or system can + be successfully installed and/or uninstalled in a specified environment. + + + **Replaceability** + + + Degree to which a product can replace another specified software product for + the same purpose in the same environment.' + identifier: https://w3id.org/everse/i/dimensions/flexibility + name: Flexibility + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: functional_suitability + created: 03-04-2025 + description: 'This characteristic represents the degree to which a product or + system provides functions that meet stated and implied needs when used under + specified conditions. This characteristic is composed of the following sub-characteristics: + + + **Functional completeness** + + + Degree to which the set of functions covers all the specified tasks and intended + users'' objectives. + + + **Functional correctness** + + + Degree to which a product or system provides accurate results when used by + intended users. + + + **Functional appropriateness** + + + Degree to which the functions facilitate the accomplishment of specified tasks + and objectives.' + identifier: https://w3id.org/everse/i/dimensions/functional_suitability + name: Functional suitability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: interaction_capability + description: 'Degree to which a product or system can be interacted with by specified + users to exchange information via the user interface to complete specific + tasks in a variety of contexts of use. This characteristic is composed of + the following sub-characteristics: + + + **Appropriateness recognizability** + + + Degree to which users can recognize whether a product or system is appropriate + for their needs. + + + **Learnability** + + + Degree to which the functions of a product or system can be learnt to be used + by specified users within a specified amount of time. + + + **Operability** + + + Degree to which a product or system has attributes that make it easy to operate + and control. + + + **User error protection** + + + Degree to which a system prevents users against operation errors. + + + **User engagement** + + + Degree to which a user interface presents functions and information in an + inviting and motivating manner encouraging continued interaction. + + + **Inclusivity** + + + Degree to which a product or system can be used by people of various backgrounds + (such as people of various ages, abilities, cultures, ethnicities, languages, + genders, economic situations, etc.). + + + **User assistance** + + + Degree to which a product can be used by people with the widest range of characteristics + and capabilities to achieve specified goals in a specified context of use. + + + **Self-descriptiveness** + + + Degree to which a product presents appropriate information, where needed by + the user, to make its capabilities and use immediately obvious to the user + without excessive interactions with a product or other resources (such as + user documentation, help desks or other users).' + identifier: https://w3id.org/everse/i/dimensions/interaction_capability + name: Interaction Capability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: maintainability + description: 'This characteristic represents the degree of effectiveness and efficiency + with which a product or system can be modified to improve it, correct it or + adapt it to changes in environment, and in requirements. This characteristic + is composed of the following sub-characteristics: + + + **Modularity** + + + Degree to which a system or computer program is composed of discrete components + such that a change to one component has minimal impact on other components. + + + **Reusability** + + + Degree to which a product can be used as an asset in more than one system, + or in building other assets. + + + **Analysability** + + + Degree of effectiveness and efficiency with which it is possible to assess + the impact on a product or system of an intended change to one or more of + its parts, to diagnose a product for deficiencies or causes of failures, or + to identify parts to be modified. + + + **Modifiability** + + + Degree to which a product or system can be effectively and efficiently modified + without introducing defects or degrading existing product quality. + + + **Testability** + + + Degree of effectiveness and efficiency with which test criteria can be established + for a system, product or component and tests can be performed to determine + whether those criteria have been met.' + identifier: https://w3id.org/everse/i/dimensions/maintainability + name: Maintainability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: open_source_software + description: Open source software is software with source code that anyone can + inspect, modify, and enhance. Research software can be published with or without + open access to the source code. Open access to source code aligns better with + academic research purposes than closed source software; open source software + aligns with the FAIR4RS principles. It allows other researchers to directly + verify the methods used to produce the results published in papers. It also + makes reproducibility much easier. In addition to these research-driven reasons, + publishing research software as open source software can help with long term + maintenance in a cost-effective way, since interested developers can easily + contribute new functionality or fix bugs. Moreover, by integrating with the + greater open source ecosystem, researchers can leverage tools and support + communities already available. As such, for most academic communities with + limited resources, it is also a good choice from a software engineering perspective + identifier: https://w3id.org/everse/i/dimensions/open_source_software + name: Open Source Software + source: + - identifier: https://doi.org/10.5281/zenodo.14204478 + name: EVERSE Reference Framework + url: https://doi.org/10.5281/zenodo.14204478 + - name: What is Open Source? + url: https://opensource.com/resources/what-open-source +- abbreviation: performance_efficiency + description: 'This characteristic represents the degree to which a product performs + its functions within specified time and throughput parameters and is efficient + in the use of resources (such as CPU, memory, storage, network devices, energy, + materials...) under specified conditions. This characteristic is composed + of the following sub-characteristics: + + + **Time behaviour** + + + Degree to which the response time and throughput rates of a product or system, + when performing its functions, meet requirements. + + + **Resource utilization** + + + Degree to which the amounts and types of resources used by a product or system, + when performing its functions, meet requirements. + + + **Capacity** + + + Degree to which the maximum limits of a product or system parameter meet requirements.' + identifier: https://w3id.org/everse/i/dimensions/performance_efficiency + name: Performance Efficiency + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: reliability + description: 'Degree to which a system, product or component performs specified + functions under specified conditions for a specified period of time. This + characteristic is composed of the following sub-characteristics: + + + **Faultlessness** + + + Degree to which a system, product or component performs specified functions + without fault under normal operation. + + + **Availability** + + + Degree to which a system, product or component is operational and accessible + when required for use. + + + **Fault tolerance** + + + Degree to which a system, product or component operates as intended despite + the presence of hardware or software faults. + + + **Recoverability** + + + Degree to which, in the event of an interruption or a failure, a product or + system can recover the data directly affected and re-establish the desired + state of the system.' + identifier: https://w3id.org/everse/i/dimensions/reliability + name: Reliability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: safety + description: 'This characteristic represents the degree to which a product under + defined conditions avoids a state in which human life, health, property, or + the environment is endangered. This characteristic is composed of the following + sub-characteristics: + + + **Operational constraint** + + + Degree to which a product or system constrains its operation to within safe + parameters or states when encountering operational hazard. + + + **Risk identification** + + + Degree to which a product can identify a course of events or operations that + can expose life, property or environment to unacceptable risk. + + + **Fail safe** + + + Degree to which a product can automatically place itself in a safe operating + mode, or to revert to a safe condition in the event of a failure. + + + **Hazard warning** + + + Degree to which a product or system provides warnings of unacceptable risks + to operations or internal controls so that they can react in sufficient time + to sustain safe operations. + + + **Safe integration** + + + Degree to which a product can maintain safety during and after integration + with one or more components.' + identifier: https://w3id.org/everse/i/dimensions/safety + name: Safety + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: security + description: 'Degree to which a product or system defends against attack patterns + by malicious actors and protects information and data so that persons or other + products or systems have the degree of data access appropriate to their types + and levels of authorization. This characteristic is composed of the following + sub-characteristics: + + + **Confidentiality** + + + Degree to which a product or system ensures that data are accessible only + to those authorized to have access. + + + **Integrity** + + + Degree to which a system, product or component ensures that the state of its + system and data are protected from unauthorized modification or deletion either + by malicious action or computer error. + + + **Non-repudiation** + + + Degree to which actions or events can be proven to have taken place so that + the events or actions cannot be repudiated later. + + + **Accountability** + + + Degree to which the actions of an entity can be traced uniquely to the entity. + + + **Authenticity** + + + Degree to which the identity of a subject or resource can be proved to be + the one claimed. + + + **Resistance** + + + Degree to which the product or system sustains operations while under attack + from a malicious actor.' + identifier: https://w3id.org/everse/i/dimensions/security + name: Security + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: sustainability + description: The capacity of the software to endure. In other words, sustainability + means that the software will continue to be available in the future, on new + platforms, meeting new needs. + identifier: https://w3id.org/everse/i/dimensions/sustainability + name: Sustainability + source: + name: Defining Software Sustainability + url: https://danielskatzblog.wordpress.com/2016/09/13/defining-software-sustainability/ diff --git a/_data/quality_indicators.yml b/_data/quality_indicators.yml index 7c07b3a2..9c191dd7 100644 --- a/_data/quality_indicators.yml +++ b/_data/quality_indicators.yml @@ -348,3 +348,529 @@ url: https://fair-impact.github.io/RSMD-guidelines/8.rsmd_checklist/#accessibility-and-preservation status: Active version: 1.0.0 +- abbreviation: metadata_is_up_to_date + author: + - '@type': schema:Person + name: Tom François + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Thomas Vuillaume + contact: + - '@type': schema:Person + name: Tom François + - '@type': schema:Person + name: Daniel Garijo + created: 24-09-2025 + description: Metadata information reflects the current description of a software + project. This indicator ensures that the current project metadata provides + up to date, accurate and relevant information about a software component. + identifier: + '@id': https://w3id.org/everse/i/indicators/metadata_is_up_to_date + keywords: + - metadata + - software + - fair + - findability + - maintainability + name: Software has up-to-date metadata + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/maintainability + source: + - name: 'EOSC-SWRelMan-11: Metadata: Supportability, Maintainability, Availability.' + url: https://doi.org/10.5281/zenodo.10647227 + status: Active + version: 1.0.0 +- abbreviation: no_critical_vulnerability + author: + - '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + '@type': schema:Person + name: Tom François + schema:email: tom.francois@lapp.in2p3.fr + created: 03-04-2025 + description: Checks if reported critical vulnerabilities have been fixed + identifier: + '@id': https://w3id.org/everse/i/indicators/no_critical_vulnerability + keywords: + - security + - critical + - vulnerability + name: No critical vulnerabilities + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/security + source: + - '@id': https://www.bestpractices.dev/en/criteria/0#0.vulnerabilities_critical_fixed + name: OpenSSF Best practice Critical Vulnerability Fixed + status: Active + version: 1.0.0 +- abbreviation: no_leaked_credentials + author: + - '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + '@type': schema:Person + name: Tom François + schema:email: tom.francois@lapp.in2p3.fr + description: Checks if hardcoded secrets like passwords, API keys, and tokens + is stored in the public git repository + identifier: + '@id': https://w3id.org/everse/i/indicators/no_leaked_credentials + keywords: + - security + - credential + - leak + - secret + - password + name: No leaked credentials + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/security + source: + - '@id': https://www.bestpractices.dev/en/criteria/0#0.no_leaked_credentials + name: OpenSSF Best practice No Leaked Credentials + status: Active + version: 1.0.0 +- abbreviation: persistent_and_unique_identifier + alternateName: FRSM-01 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator tries to determine if the software identifier is based + on a suitable identifier scheme, and test it can be resolved. This is done + by checking if the identifier uses an identifier scheme contained in a list + of globally unique identifier schemes + identifier: + '@id': https://w3id.org/everse/i/indicators/persistent_and_unique_identifier + keywords: + - identifier + - unique + - fair + - persistent + - metadata + name: Software has persistent and unique identifier + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + sameAs: https://doi.org/10.25504/FAIRsharing.87c9a8 + source: + name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + status: Active + version: 1.0.0 +- abbreviation: repository_workflows + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator tries aims determine if a software project makes use + of workflows to automate processes like testing and deployment. + identifier: + '@id': https://w3id.org/everse/i/indicators/repository_workflows + keywords: + - workflows + - github + - fair + - repository + name: Software has ci/cd workflows in its repository + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/maintainability + source: + - name: 'OpenSSF Scorecard: CI-Tests' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#ci-tests + status: Active + version: 1.0.0 +- abbreviation: requirements_specified + alternateName: FRSM-13 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator tries to determine if the project specifies what is + required to use the software. + identifier: + '@id': https://w3id.org/everse/i/indicators/requirements_specified + keywords: + - documentation + - requirements + - dependencies + - fair + name: Software specifies requirements + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/flexibility + - '@id': https://w3id.org/everse/i/dimensions/maintainability + sameAs: https://doi.org/10.25504/FAIRsharing.b8eeb9 + source: + - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + - name: 'RSMD Guidelines - Re-execute: dependencies and execution environment' + url: https://fair-impact.github.io/RSMD-guidelines/7.Re-execute/ + status: Active + version: 1.0.0 +- abbreviation: software_has_citation + alternateName: FRSM-12 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if the project uses a citation to + reference contributors and authors (e.g., through a CFF file, in the README, + etc). + identifier: + '@id': https://w3id.org/everse/i/indicators/software_has_citation + keywords: + - citation + - metadata + - fair + - contributors + name: Software uses citation + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + sameAs: https://doi.org/10.25504/FAIRsharing.c585c5 + source: + - name: Research Software Metadata guidelines - Credit and attribution + url: https://fair-impact.github.io/RSMD-guidelines/5.Credit_Attribution/ + - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + status: Active + version: 1.0.0 +- abbreviation: software_has_documentation + alternateName: FRSM-05 + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if a software project comes with + many forms of documentation like readme or readthedocs + identifier: + '@id': https://w3id.org/everse/i/indicators/software_has_documentation + keywords: + - documentation + - fair + - usage + - readme + name: Software has documentation + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/interaction_capability + sameAs: https://doi.org/10.25504/FAIRsharing.452bcd + source: + name: FLOSS Best Practices Criteria + url: https://www.bestpractices.dev/en/criteria/0#0.documentation_basics + status: Active + version: 1.0.0 +- abbreviation: software_has_license + alternateName: FRSM-15 + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This check tries to determine if the project has published a license + identifier: + '@id': https://w3id.org/everse/i/indicators/software_has_license + keywords: + - license + - metadata + - fair + name: Software has license + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + - name: 'OpenSSF Scorecard: License' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#license + - name: Reuse, licensing and legal aspects. RSMD-6.2 + url: https://fair-impact.github.io/RSMD-guidelines/6.Reuse_legal/ + status: Active + version: 1.0.0 +- abbreviation: software_has_tests + alternateName: FRSM-14 + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: Evaluates the extent to which the software has been tested, including + unit tests, integration tests, and system tests, to ensure reliability and + correctness. + identifier: + '@id': https://w3id.org/everse/i/indicators/software_has_tests + keywords: + - test + - functionality + - fair + name: Software provides tests. + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/reliability + sameAs: https://doi.org/10.25504/FAIRsharing.a2dd1a + source: + name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + status: Active + version: 1.0.0 +- abbreviation: software_test_coverage + author: + '@type': schema:Organization + name: ELIXIR-Steers + url: https://elixir-europe.org/about-us/how-funded/eu-projects/steers + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 03-12-2025 + description: Indicates that the test suite covers most (or ideally all) the code + branches, input fields, and functionality + identifier: + '@id': https://w3id.org/everse/i/indicators/software_test_coverage + keywords: + - test coverage + - code coverage + - branch coverage + - coverage threshold + - test completeness + name: Software has sufficient test coverage + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/reliability + - '@id': https://w3id.org/everse/i/dimensions/functional_suitability + source: + name: ELIXIR Steers D2.1 Report on best-practices and indicators available + and used by selected Communities + url: https://doi.org/10.5281/zenodo.17035105 + status: Active + version: 0.0.1 +- abbreviation: static_analysis_common_vulnerabilities + author: + '@type': Organization + name: OpenSSF + url: https://openssf.org/ + contactPoint: + '@type': schema:Person + email: thomas.vuillaume@lapp.in2p3.fr + name: Thomas Vuillaume + created: 03-04-2025 + description: At least one static code analysis tool used includes rules or techniques + to detect common vulnerabilities specific to the language or environment. + identifier: + '@id': https://w3id.org/everse/i/indicators/static_analysis_common_vulnerabilities + keywords: + - security + - vulnerabilities + - static analysis + name: Has static analysis for common vulnerabilities + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/security + source: + '@id': https://www.bestpractices.dev/en/criteria/0 + name: FLOSS Best Practices Criteria (Passing Badge) + url: https://www.bestpractices.dev/en/criteria/0#0.static_analysis_common_vulnerabilities + status: Active + version: 1.0.0 +- abbreviation: support_issue_tracking + author: + '@type': Organization + name: OpenSSF + url: https://openssf.org/ + contactPoint: + '@type': schema:Person + email: federica.quaglia@unipd.it + name: Federica Quaglia + created: 03-12-2025 + description: The software project offers an accessible issue tracking system (e.g., + GitHub/GitLab Issues or a helpdesk) that is used to report, document, and + manage bugs, enhancement requests, and user-facing operational issues. + identifier: + '@id': https://w3id.org/everse/i/indicators/support_issue_tracking + keywords: + - support + - issues + - helpdesk + - maintenance + - user support + name: Software provides issue tracking + qualityDimension: + '@id': 'https://w3id.org/everse/i/dimensions/maintainability ' + source: + '@id': https://zenodo.org/records/17035105 + name: ELIXIR-STEERS D2.1 Report on best-practices and indicators available + and used by selected Communities + url: https://zenodo.org/records/17035105 + status: Active + version: 1.0.0 +- abbreviation: uses_fuzzing + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-06-2025 + description: 'This indicator checks that the software produced by the project + includes software written using a memory-unsafe language (e.g., C or C++), + then at least one dynamic tool (e.g., a fuzzer or web application scanner) + be routinely used in combination with a mechanism to detect memory safety + problems such as buffer overwrites. ' + identifier: + '@id': https://w3id.org/everse/i/indicators/uses_fuzzing + keywords: + - fuzzing + - test + - code + name: Software uses fuzzing + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/safety + source: + name: 'OpenSSF Scorecard: Fuzzing' + url: https://github.com/ossf/scorecard/blob/cd152cb6742c5b8f2f3d2b5193b41d9c50905198/docs/checks.md#fuzzing + status: Active + version: 1.0.0 +- abbreviation: uses_tool_for_warnings_and_mistakes + author: + '@type': schema:Organization + name: OpenSSF + url: https://openssf.org/ + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 27-06-2025 + description: This indicator checks that the project enables one or more compiler + warning flags, a "safe" language mode, or uses a separate "linter" tool to + look for code quality errors or common simple mistakes, if there is at least + one FLOSS tool that can implement this criterion in the selected language. + identifier: + '@id': https://w3id.org/everse/i/indicators/uses_tool_for_warnings_and_mistakes + keywords: + - linting + - code analysis + - fair + name: Software uses a tool for warnings or mistakes + qualityDimension: + - '@id': https://w3id.org/everse/i/dimensions/fairness + - '@id': https://w3id.org/everse/i/dimensions/maintainability + source: + - name: 'OpenSSF Best Practices badge: Warning Flags' + url: https://www.bestpractices.dev/en/criteria/0#0.warnings + - '@id': https://zenodo.org/records/10723608 + name: Ensure Software Quality + url: https://zenodo.org/records/10723608 + status: Active + version: 1.0.0 +- abbreviation: version_control_use + alternateName: FRSM-17 + author: + - '@type': schema:Organization + name: Elixir focus group + url: https://zenodo.org/communities/elixir/records + - '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 23-05-2025 + description: This indicator aims to determine if a software project uses version + control. + identifier: + '@id': https://w3id.org/everse/i/indicators/version_control_use + keywords: + - version + - control + - fair + - repository + - identifier + name: Software makes use of version control + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + sameAs: https://doi.org/10.25504/FAIRsharing.d2b2c5 + source: + - name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://zenodo.org/records/10047401 + - name: 'Software Quality Indicators: extraction, categorisation and recommendations + from canonical sources' + url: https://doi.org/10.5281/zenodo.15474784 + - name: Reference and identification. RSMD-3.1 + url: https://fair-impact.github.io/RSMD-guidelines/3.Reference_identification/ + status: Active + version: 1.0.0 +- abbreviation: versioning_standards_use + author: + '@type': schema:Organization + name: FAIR-IMPACT + contact: + - '@type': schema:Person + name: Daniel Garijo + - '@type': schema:Person + name: Andres Montero + created: 14-07-2025 + description: This indicator aims to determine if the version (or versions) of + a software tool follows an established community convention like semantic + versioning (SemVer) or calendar versioning (CalVer). + identifier: + '@id': https://w3id.org/everse/i/indicators/versioning_standards_use + keywords: + - version + - versioning + - fair + - releases + name: Software follows versioning standards + qualityDimension: + '@id': https://w3id.org/everse/i/dimensions/fairness + source: + '@id': https://doi.org/10.5281/zenodo.15535629 + name: D5.2 - Metrics for automated FAIR software assessment in a disciplinary + context + url: https://doi.org/10.5281/zenodo.15535629 + status: Active + version: 1.0.0 From 4f31b6bf4504f439b242d1698a3350865df2e39c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 30 Jan 2026 19:49:07 +0000 Subject: [PATCH 27/47] Automated update of RSQKit data files --- _data/quality_dimensions.yml | 421 ++++++++++++++++++++++++++++++++++- 1 file changed, 420 insertions(+), 1 deletion(-) diff --git a/_data/quality_dimensions.yml b/_data/quality_dimensions.yml index fe51488c..a1bb3560 100644 --- a/_data/quality_dimensions.yml +++ b/_data/quality_dimensions.yml @@ -1 +1,420 @@ -[] +- abbreviation: compatibility + description: 'Degree to which a product, system or component can exchange information + with other products, systems or components, and/or perform its required functions + while sharing the same common environment and resources. This characteristic + is composed of the following sub-characteristics: + + + **Co-existence** + + + Degree to which a product can perform its required functions efficiently while + sharing a common environment and resources with other products, without detrimental + impact on any other product. + + + **Interoperability** + + + Degree to which a system, product or component can exchange information with + other products and mutually use the information that has been exchanged.' + identifier: https://w3id.org/everse/i/dimensions/compatibility + name: Compatibility + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: fairness + description: 'FAIRness refers to the degree to which research software adheres + to the FAIR principles: Findable, Accessible, Interoperable, and Reusable. + These principles, adapted for research software, aim to enhance the discoverability, + accessibility, interoperability, and reusability of software, thereby maximizing + its value and impact in scientific research.' + identifier: https://w3id.org/everse/i/dimensions/fairness + name: FAIRness + source: + name: Introducing the FAIR Principles for research software + url: https://www.nature.com/articles/s41597-022-01710-x +- abbreviation: flexibility + description: 'Degree to which a product can be adapted to changes in its requirements, + contexts of use or system environment. This characteristic is composed of + the following sub-characteristics: + + + **Adaptability** + + + Degree to which a product or system can effectively and efficiently be adapted + for or transferred to different hardware, software or other operational or + usage environments. + + + **Scalability** + + + Degree to which a product can handle growing or shrinking workloads or to + adapt its capacity to handle variability. + + + **Installability** + + + Degree of effectiveness and efficiency with which a product or system can + be successfully installed and/or uninstalled in a specified environment. + + + **Replaceability** + + + Degree to which a product can replace another specified software product for + the same purpose in the same environment.' + identifier: https://w3id.org/everse/i/dimensions/flexibility + name: Flexibility + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: functional_suitability + created: 03-04-2025 + description: 'This characteristic represents the degree to which a product or + system provides functions that meet stated and implied needs when used under + specified conditions. This characteristic is composed of the following sub-characteristics: + + + **Functional completeness** + + + Degree to which the set of functions covers all the specified tasks and intended + users'' objectives. + + + **Functional correctness** + + + Degree to which a product or system provides accurate results when used by + intended users. + + + **Functional appropriateness** + + + Degree to which the functions facilitate the accomplishment of specified tasks + and objectives.' + identifier: https://w3id.org/everse/i/dimensions/functional_suitability + name: Functional suitability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: interaction_capability + description: 'Degree to which a product or system can be interacted with by specified + users to exchange information via the user interface to complete specific + tasks in a variety of contexts of use. This characteristic is composed of + the following sub-characteristics: + + + **Appropriateness recognizability** + + + Degree to which users can recognize whether a product or system is appropriate + for their needs. + + + **Learnability** + + + Degree to which the functions of a product or system can be learnt to be used + by specified users within a specified amount of time. + + + **Operability** + + + Degree to which a product or system has attributes that make it easy to operate + and control. + + + **User error protection** + + + Degree to which a system prevents users against operation errors. + + + **User engagement** + + + Degree to which a user interface presents functions and information in an + inviting and motivating manner encouraging continued interaction. + + + **Inclusivity** + + + Degree to which a product or system can be used by people of various backgrounds + (such as people of various ages, abilities, cultures, ethnicities, languages, + genders, economic situations, etc.). + + + **User assistance** + + + Degree to which a product can be used by people with the widest range of characteristics + and capabilities to achieve specified goals in a specified context of use. + + + **Self-descriptiveness** + + + Degree to which a product presents appropriate information, where needed by + the user, to make its capabilities and use immediately obvious to the user + without excessive interactions with a product or other resources (such as + user documentation, help desks or other users).' + identifier: https://w3id.org/everse/i/dimensions/interaction_capability + name: Interaction Capability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: maintainability + description: 'This characteristic represents the degree of effectiveness and efficiency + with which a product or system can be modified to improve it, correct it or + adapt it to changes in environment, and in requirements. This characteristic + is composed of the following sub-characteristics: + + + **Modularity** + + + Degree to which a system or computer program is composed of discrete components + such that a change to one component has minimal impact on other components. + + + **Reusability** + + + Degree to which a product can be used as an asset in more than one system, + or in building other assets. + + + **Analysability** + + + Degree of effectiveness and efficiency with which it is possible to assess + the impact on a product or system of an intended change to one or more of + its parts, to diagnose a product for deficiencies or causes of failures, or + to identify parts to be modified. + + + **Modifiability** + + + Degree to which a product or system can be effectively and efficiently modified + without introducing defects or degrading existing product quality. + + + **Testability** + + + Degree of effectiveness and efficiency with which test criteria can be established + for a system, product or component and tests can be performed to determine + whether those criteria have been met.' + identifier: https://w3id.org/everse/i/dimensions/maintainability + name: Maintainability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: open_source_software + description: Open source software is software with source code that anyone can + inspect, modify, and enhance. Research software can be published with or without + open access to the source code. Open access to source code aligns better with + academic research purposes than closed source software; open source software + aligns with the FAIR4RS principles. It allows other researchers to directly + verify the methods used to produce the results published in papers. It also + makes reproducibility much easier. In addition to these research-driven reasons, + publishing research software as open source software can help with long term + maintenance in a cost-effective way, since interested developers can easily + contribute new functionality or fix bugs. Moreover, by integrating with the + greater open source ecosystem, researchers can leverage tools and support + communities already available. As such, for most academic communities with + limited resources, it is also a good choice from a software engineering perspective + identifier: https://w3id.org/everse/i/dimensions/open_source_software + name: Open Source Software + source: + - identifier: https://doi.org/10.5281/zenodo.14204478 + name: EVERSE Reference Framework + url: https://doi.org/10.5281/zenodo.14204478 + - name: What is Open Source? + url: https://opensource.com/resources/what-open-source +- abbreviation: performance_efficiency + description: 'This characteristic represents the degree to which a product performs + its functions within specified time and throughput parameters and is efficient + in the use of resources (such as CPU, memory, storage, network devices, energy, + materials...) under specified conditions. This characteristic is composed + of the following sub-characteristics: + + + **Time behaviour** + + + Degree to which the response time and throughput rates of a product or system, + when performing its functions, meet requirements. + + + **Resource utilization** + + + Degree to which the amounts and types of resources used by a product or system, + when performing its functions, meet requirements. + + + **Capacity** + + + Degree to which the maximum limits of a product or system parameter meet requirements.' + identifier: https://w3id.org/everse/i/dimensions/performance_efficiency + name: Performance Efficiency + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: reliability + description: 'Degree to which a system, product or component performs specified + functions under specified conditions for a specified period of time. This + characteristic is composed of the following sub-characteristics: + + + **Faultlessness** + + + Degree to which a system, product or component performs specified functions + without fault under normal operation. + + + **Availability** + + + Degree to which a system, product or component is operational and accessible + when required for use. + + + **Fault tolerance** + + + Degree to which a system, product or component operates as intended despite + the presence of hardware or software faults. + + + **Recoverability** + + + Degree to which, in the event of an interruption or a failure, a product or + system can recover the data directly affected and re-establish the desired + state of the system.' + identifier: https://w3id.org/everse/i/dimensions/reliability + name: Reliability + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: safety + description: 'This characteristic represents the degree to which a product under + defined conditions avoids a state in which human life, health, property, or + the environment is endangered. This characteristic is composed of the following + sub-characteristics: + + + **Operational constraint** + + + Degree to which a product or system constrains its operation to within safe + parameters or states when encountering operational hazard. + + + **Risk identification** + + + Degree to which a product can identify a course of events or operations that + can expose life, property or environment to unacceptable risk. + + + **Fail safe** + + + Degree to which a product can automatically place itself in a safe operating + mode, or to revert to a safe condition in the event of a failure. + + + **Hazard warning** + + + Degree to which a product or system provides warnings of unacceptable risks + to operations or internal controls so that they can react in sufficient time + to sustain safe operations. + + + **Safe integration** + + + Degree to which a product can maintain safety during and after integration + with one or more components.' + identifier: https://w3id.org/everse/i/dimensions/safety + name: Safety + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: security + description: 'Degree to which a product or system defends against attack patterns + by malicious actors and protects information and data so that persons or other + products or systems have the degree of data access appropriate to their types + and levels of authorization. This characteristic is composed of the following + sub-characteristics: + + + **Confidentiality** + + + Degree to which a product or system ensures that data are accessible only + to those authorized to have access. + + + **Integrity** + + + Degree to which a system, product or component ensures that the state of its + system and data are protected from unauthorized modification or deletion either + by malicious action or computer error. + + + **Non-repudiation** + + + Degree to which actions or events can be proven to have taken place so that + the events or actions cannot be repudiated later. + + + **Accountability** + + + Degree to which the actions of an entity can be traced uniquely to the entity. + + + **Authenticity** + + + Degree to which the identity of a subject or resource can be proved to be + the one claimed. + + + **Resistance** + + + Degree to which the product or system sustains operations while under attack + from a malicious actor.' + identifier: https://w3id.org/everse/i/dimensions/security + name: Security + source: + name: ISO/IEC 25010 standard + url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 +- abbreviation: sustainability + description: The capacity of the software to endure. In other words, sustainability + means that the software will continue to be available in the future, on new + platforms, meeting new needs. + identifier: https://w3id.org/everse/i/dimensions/sustainability + name: Sustainability + source: + name: Defining Software Sustainability + url: https://danielskatzblog.wordpress.com/2016/09/13/defining-software-sustainability/ From d58965fd9c8aefe2f9de2476572ed814745a596e Mon Sep 17 00:00:00 2001 From: srghosh56 Date: Fri, 30 Jan 2026 21:14:36 +0100 Subject: [PATCH 28/47] Add PaNOSC Research Software Stories --- _data/quality_dimensions.yml | 421 +----------------- .../alpaka_research_software_story.md | 178 ++++++++ .../picongpu_research_software_story.md | 158 +++++++ 3 files changed, 337 insertions(+), 420 deletions(-) create mode 100644 pages/research_software_stories/alpaka_research_software_story.md create mode 100644 pages/research_software_stories/picongpu_research_software_story.md diff --git a/_data/quality_dimensions.yml b/_data/quality_dimensions.yml index a1bb3560..fe51488c 100644 --- a/_data/quality_dimensions.yml +++ b/_data/quality_dimensions.yml @@ -1,420 +1 @@ -- abbreviation: compatibility - description: 'Degree to which a product, system or component can exchange information - with other products, systems or components, and/or perform its required functions - while sharing the same common environment and resources. This characteristic - is composed of the following sub-characteristics: - - - **Co-existence** - - - Degree to which a product can perform its required functions efficiently while - sharing a common environment and resources with other products, without detrimental - impact on any other product. - - - **Interoperability** - - - Degree to which a system, product or component can exchange information with - other products and mutually use the information that has been exchanged.' - identifier: https://w3id.org/everse/i/dimensions/compatibility - name: Compatibility - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: fairness - description: 'FAIRness refers to the degree to which research software adheres - to the FAIR principles: Findable, Accessible, Interoperable, and Reusable. - These principles, adapted for research software, aim to enhance the discoverability, - accessibility, interoperability, and reusability of software, thereby maximizing - its value and impact in scientific research.' - identifier: https://w3id.org/everse/i/dimensions/fairness - name: FAIRness - source: - name: Introducing the FAIR Principles for research software - url: https://www.nature.com/articles/s41597-022-01710-x -- abbreviation: flexibility - description: 'Degree to which a product can be adapted to changes in its requirements, - contexts of use or system environment. This characteristic is composed of - the following sub-characteristics: - - - **Adaptability** - - - Degree to which a product or system can effectively and efficiently be adapted - for or transferred to different hardware, software or other operational or - usage environments. - - - **Scalability** - - - Degree to which a product can handle growing or shrinking workloads or to - adapt its capacity to handle variability. - - - **Installability** - - - Degree of effectiveness and efficiency with which a product or system can - be successfully installed and/or uninstalled in a specified environment. - - - **Replaceability** - - - Degree to which a product can replace another specified software product for - the same purpose in the same environment.' - identifier: https://w3id.org/everse/i/dimensions/flexibility - name: Flexibility - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: functional_suitability - created: 03-04-2025 - description: 'This characteristic represents the degree to which a product or - system provides functions that meet stated and implied needs when used under - specified conditions. This characteristic is composed of the following sub-characteristics: - - - **Functional completeness** - - - Degree to which the set of functions covers all the specified tasks and intended - users'' objectives. - - - **Functional correctness** - - - Degree to which a product or system provides accurate results when used by - intended users. - - - **Functional appropriateness** - - - Degree to which the functions facilitate the accomplishment of specified tasks - and objectives.' - identifier: https://w3id.org/everse/i/dimensions/functional_suitability - name: Functional suitability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: interaction_capability - description: 'Degree to which a product or system can be interacted with by specified - users to exchange information via the user interface to complete specific - tasks in a variety of contexts of use. This characteristic is composed of - the following sub-characteristics: - - - **Appropriateness recognizability** - - - Degree to which users can recognize whether a product or system is appropriate - for their needs. - - - **Learnability** - - - Degree to which the functions of a product or system can be learnt to be used - by specified users within a specified amount of time. - - - **Operability** - - - Degree to which a product or system has attributes that make it easy to operate - and control. - - - **User error protection** - - - Degree to which a system prevents users against operation errors. - - - **User engagement** - - - Degree to which a user interface presents functions and information in an - inviting and motivating manner encouraging continued interaction. - - - **Inclusivity** - - - Degree to which a product or system can be used by people of various backgrounds - (such as people of various ages, abilities, cultures, ethnicities, languages, - genders, economic situations, etc.). - - - **User assistance** - - - Degree to which a product can be used by people with the widest range of characteristics - and capabilities to achieve specified goals in a specified context of use. - - - **Self-descriptiveness** - - - Degree to which a product presents appropriate information, where needed by - the user, to make its capabilities and use immediately obvious to the user - without excessive interactions with a product or other resources (such as - user documentation, help desks or other users).' - identifier: https://w3id.org/everse/i/dimensions/interaction_capability - name: Interaction Capability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: maintainability - description: 'This characteristic represents the degree of effectiveness and efficiency - with which a product or system can be modified to improve it, correct it or - adapt it to changes in environment, and in requirements. This characteristic - is composed of the following sub-characteristics: - - - **Modularity** - - - Degree to which a system or computer program is composed of discrete components - such that a change to one component has minimal impact on other components. - - - **Reusability** - - - Degree to which a product can be used as an asset in more than one system, - or in building other assets. - - - **Analysability** - - - Degree of effectiveness and efficiency with which it is possible to assess - the impact on a product or system of an intended change to one or more of - its parts, to diagnose a product for deficiencies or causes of failures, or - to identify parts to be modified. - - - **Modifiability** - - - Degree to which a product or system can be effectively and efficiently modified - without introducing defects or degrading existing product quality. - - - **Testability** - - - Degree of effectiveness and efficiency with which test criteria can be established - for a system, product or component and tests can be performed to determine - whether those criteria have been met.' - identifier: https://w3id.org/everse/i/dimensions/maintainability - name: Maintainability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: open_source_software - description: Open source software is software with source code that anyone can - inspect, modify, and enhance. Research software can be published with or without - open access to the source code. Open access to source code aligns better with - academic research purposes than closed source software; open source software - aligns with the FAIR4RS principles. It allows other researchers to directly - verify the methods used to produce the results published in papers. It also - makes reproducibility much easier. In addition to these research-driven reasons, - publishing research software as open source software can help with long term - maintenance in a cost-effective way, since interested developers can easily - contribute new functionality or fix bugs. Moreover, by integrating with the - greater open source ecosystem, researchers can leverage tools and support - communities already available. As such, for most academic communities with - limited resources, it is also a good choice from a software engineering perspective - identifier: https://w3id.org/everse/i/dimensions/open_source_software - name: Open Source Software - source: - - identifier: https://doi.org/10.5281/zenodo.14204478 - name: EVERSE Reference Framework - url: https://doi.org/10.5281/zenodo.14204478 - - name: What is Open Source? - url: https://opensource.com/resources/what-open-source -- abbreviation: performance_efficiency - description: 'This characteristic represents the degree to which a product performs - its functions within specified time and throughput parameters and is efficient - in the use of resources (such as CPU, memory, storage, network devices, energy, - materials...) under specified conditions. This characteristic is composed - of the following sub-characteristics: - - - **Time behaviour** - - - Degree to which the response time and throughput rates of a product or system, - when performing its functions, meet requirements. - - - **Resource utilization** - - - Degree to which the amounts and types of resources used by a product or system, - when performing its functions, meet requirements. - - - **Capacity** - - - Degree to which the maximum limits of a product or system parameter meet requirements.' - identifier: https://w3id.org/everse/i/dimensions/performance_efficiency - name: Performance Efficiency - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: reliability - description: 'Degree to which a system, product or component performs specified - functions under specified conditions for a specified period of time. This - characteristic is composed of the following sub-characteristics: - - - **Faultlessness** - - - Degree to which a system, product or component performs specified functions - without fault under normal operation. - - - **Availability** - - - Degree to which a system, product or component is operational and accessible - when required for use. - - - **Fault tolerance** - - - Degree to which a system, product or component operates as intended despite - the presence of hardware or software faults. - - - **Recoverability** - - - Degree to which, in the event of an interruption or a failure, a product or - system can recover the data directly affected and re-establish the desired - state of the system.' - identifier: https://w3id.org/everse/i/dimensions/reliability - name: Reliability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: safety - description: 'This characteristic represents the degree to which a product under - defined conditions avoids a state in which human life, health, property, or - the environment is endangered. This characteristic is composed of the following - sub-characteristics: - - - **Operational constraint** - - - Degree to which a product or system constrains its operation to within safe - parameters or states when encountering operational hazard. - - - **Risk identification** - - - Degree to which a product can identify a course of events or operations that - can expose life, property or environment to unacceptable risk. - - - **Fail safe** - - - Degree to which a product can automatically place itself in a safe operating - mode, or to revert to a safe condition in the event of a failure. - - - **Hazard warning** - - - Degree to which a product or system provides warnings of unacceptable risks - to operations or internal controls so that they can react in sufficient time - to sustain safe operations. - - - **Safe integration** - - - Degree to which a product can maintain safety during and after integration - with one or more components.' - identifier: https://w3id.org/everse/i/dimensions/safety - name: Safety - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: security - description: 'Degree to which a product or system defends against attack patterns - by malicious actors and protects information and data so that persons or other - products or systems have the degree of data access appropriate to their types - and levels of authorization. This characteristic is composed of the following - sub-characteristics: - - - **Confidentiality** - - - Degree to which a product or system ensures that data are accessible only - to those authorized to have access. - - - **Integrity** - - - Degree to which a system, product or component ensures that the state of its - system and data are protected from unauthorized modification or deletion either - by malicious action or computer error. - - - **Non-repudiation** - - - Degree to which actions or events can be proven to have taken place so that - the events or actions cannot be repudiated later. - - - **Accountability** - - - Degree to which the actions of an entity can be traced uniquely to the entity. - - - **Authenticity** - - - Degree to which the identity of a subject or resource can be proved to be - the one claimed. - - - **Resistance** - - - Degree to which the product or system sustains operations while under attack - from a malicious actor.' - identifier: https://w3id.org/everse/i/dimensions/security - name: Security - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: sustainability - description: The capacity of the software to endure. In other words, sustainability - means that the software will continue to be available in the future, on new - platforms, meeting new needs. - identifier: https://w3id.org/everse/i/dimensions/sustainability - name: Sustainability - source: - name: Defining Software Sustainability - url: https://danielskatzblog.wordpress.com/2016/09/13/defining-software-sustainability/ +[] diff --git a/pages/research_software_stories/alpaka_research_software_story.md b/pages/research_software_stories/alpaka_research_software_story.md new file mode 100644 index 00000000..265ccd0b --- /dev/null +++ b/pages/research_software_stories/alpaka_research_software_story.md @@ -0,0 +1,178 @@ +--- +title: "alpaka - a header only C++ library to run your code on any kind of processor" +search_exclude: false +description: "alpaka is a header-only C++ template library that enables writing platform and performance portable applications. It can use CPUs with sequential and thread parallel code, GPUs via multiple programming paradigms and also FPGAs." +contributors: ["Guido Juckeland"] +page_id: alpaka +type: research_software_story +--- + +## The Problem +### Achieving performance portability in an increasingly heterogeneous HPC landscape + +alpaka is a header-only C++ template library that enables writing platform and performance portable applications. +It can use CPUs with sequential and thread parallel code, GPUs via multiple programming paradigms. +The library addresses the fundamental challenge facing HPC developers: how to write high-performance code once and run it efficiently across diverse hardware platforms without maintaining separate implementations for each architecture. + +Traditional approaches required separate code paths, within the user application, for NVIDIA GPUs (CUDA), AMD GPUs (HIP/ROCm), Intel GPUs (oneAPI/SYCL), and multicore x86/ARM/RISCV CPUs (OpenMP). +This multiplication of code creates enormous maintenance burdens and makes verification difficult. +alpaka solves this by providing a single abstraction layer where developers write algorithms once using portable interfaces, then compile to native code for different hardware backends. + +## User Community +### Joint development between HZDR and CERN serving the HPC community + +alpaka is jointly developed at the Helmholtz-Zentrum Dresden-Rossendorf (HZDR) and CERN (CMS experiment). +The development team combines computer scientists and physicists, with work mainly driven through PhD and master's thesis projects alongside requirements from CERN's experimental collaborations. + +**Development team composition:** +- HZDR and CMS are focused on core library architecture and performance optimization +- CMS collaboration developers at CERN driving requirements for high-energy physics data processing +- HZDR taking care of plasma physics simulation requirements +- HZDR is developing features based on external user requirements from DLR and HZB +- HZDR is developing the testing strategys and infrastructure to guarantee the code quallity +- PhD and master's students contributing focused improvements and new features + +**User base characteristics:** +- Advanced C++ programmers working in HPC environments +- Researchers needing codes to work across different computing centers with varying hardware +- CMS experiment and other scientific collaborations requiring performance portability +- Users comfortable with parallel programming concepts and template-heavy C++ code + +The community maintains connection through online videos and onboarding documents, a Mattermost team with core users, and personnel exchange visits between institutions. + +## Technical Aspects +### Header-only C++ template library for compile-time code generation + +alpaka is classified as Tier 1 Research Software Infrastructure (Services included), reflecting its critical enabling role for other scientific applications. + +**Technical specifications:** +- **Language:** Modern C++20 for expressive template metaprogramming +- **Codebase size:** Approximately 45k lines of code (30k in core library headers) and 10k lines of comments +- **Architecture:** Header-only library that doesn't "run" but translates at compile time +- **Compilation approach:** Compiler processes templates to generate hardware-specific code (CUDA, HIP/ROCm, OpenMP, etc.) +- **Performance:** Zero runtime overhead compared to hand-written platform-specific code + +When developers write alpaka-based algorithms and compile with a specific backend selected, the compiler produces native code for that platform. +Compiling the same source with different backends produces different optimized implementations from a single codebase. + +### Libraries and Systems + +alpaka's dependencies vary based on the selected compilation backend: + +- **CUDA:** Required when compiling for NVIDIA GPUs +- **HIP/ROCm:** Required when targeting AMD GPUs +- **OneAPI SYCL:** Required for Intel GPUs or optionally CPUs +- **OpenMP:** Used for thread-parallel CPU execution +- **TBB (Threading Building Blocks):** Alternative for task-based CPU parallelism + +This backend architecture means deploying alpaka-based code requires only the specific toolchain relevant to the target hardware, keeping deployment practical despite broad platform support. + +## Software Quality Practices +### Comprehensive testing across thousands of hardware configurations + +alpaka follows disciplined development practices essential for a library supporting such diverse platforms: + +- **Version control:** Git with the main repository on GitHub +- **Contribution guidelines:** Detailed guidelines in CONTRIBUTING.md maintain consistency across contributors +- **Code review:** Mandatory peer review before merging changes +- **Coding standards:** Comprehensive guidelines documented at https://alpaka.readthedocs.io/en/latest/dev/style.html + +The most remarkable quality practice is the extensive continuous integration infrastructure testing every change across thousands of configurations. +The CI system routes code from GitHub through GitLab.com to HZDR's local GitLab CI infrastructure with access to diverse hardware accelerators. +Each change triggers: + +- Static code quality checks through linting +- Compilation testing across all supported C++ compilers, hardware backends, and configurations +- Test suite execution verifying correctness on each platform +- ~~Performance validation ensuring abstractions don't introduce overhead~~ + +Results push back to GitHub pull requests, providing immediate feedback about cross-platform compatibility. +The code also integrates into multiple HPC compiler vendor and hardware manufacturer CI/CD test environments. + +## Developer Community +### Individualized onboarding for template metaprogramming expertise + +Onboarding new alpaka developers requires attention to the specialized C++ template metaprogramming knowledge needed to work effectively with the library. +The process is highly individualized, tailored to each contributor's background and the specific areas where they'll work. + +**Resources for developers:** +- Online videos introducing alpaka's architecture and design philosophy +- Written documentation explaining the template machinery +- Mattermost team for real-time support from experienced developers +- Personnel exchange visits for intensive knowledge transfer through pair programming + +**Typical user journey:** +New users typically start by adapting existing code from one platform (e.g., CUDA) to use alpaka's portable interfaces. +They begin by compiling only for familiar backends to verify correctness, then experiment with other platforms while comparing performance and debugging platform-specific issues. + +## Tools +### Performance profiling across diverse accelerator platforms + +alpaka works well with standard profiling tools for various platforms: + +- **NVIDIA Nsight** for NVIDIA GPU performance analysis +- **AMD Omniperf** for AMD GPU optimization +- **Score-P** for general parallel performance analysis + +Profiling can be challenging due to the highly asynchronous nature of GPU execution and complex control flow from template-based abstractions. +The development team uses these tools to verify memory access patterns are efficient and that kernel launches don't introduce unnecessary overhead. + +Like PIConGPU, alpaka has been incorporated into compiler vendor and hardware manufacturer testing environments, where it serves as a stress test for C++ template implementations and optimization capabilities. + +## FAIR & Open +### Open development supporting collaborative cross-institution research + +alpaka adheres to FAIR research software principles: + +- **Repository:** Publicly available on GitHub (https://github.com/alpaka-group/alpaka) +- **License:** Core under MPLv2 (Mozilla Public License v2.0), examples under ISC (Internet Systems Consortium) allowing incorporation into projects with different licensing requirements; Documentation under CC-BY 4.0 +- **Citeable:** Yes, with DOI 10.5281/zenodo.595380 +- **Discussion community:** Via GitHub Issues for public discussion and knowledge preservation +- **Software Quality Checklist:** Coding Guidelines at https://alpaka.readthedocs.io/en/latest/dev/style.html + +Development happens openly with features, architectural decisions, and bug reports discussed in public GitHub issues. +The MPLv2 licensing ensures the library remains free and open while accommodating use by large experimental collaborations with complex software licensing requirements. + +## Documentation +### Multi-level resources for diverse technical audiences + +alpaka documentation is organized to serve different user groups: + +- **Conceptual overviews:** Explaining the programming model and abstraction design +- **Installation guides:** Configuration for different backends and integration into projects +- **Tutorials:** Demonstrating common usage patterns through concrete examples +- **Developer documentation:** Architecture explanations and contribution guidance +- **API reference:** Technical specifications for library interfaces + +The primary documentation lives at https://alpaka.readthedocs.io using Read the Docs for versioned access. +Documentation is mainly written and maintained by the core development team, with contributions often arriving as part of pull requests introducing new features. + +## Sustainability +### Institutional funding and community governance ensure long-term evolution + +alpaka's sustainability model supports evolution over multi-decade timescales: + +**Funding and staffing:** +- Part of Helmholtz base-funded research activities at HZDR +- Permanently funded RSE as maintainer, ensuring continuity +- Coordination between HZDR and CERN ensures alignment with both general HPC and experimental collaboration needs + +**Governance:** +- Project builds on well-established FOSS community practices +- Guidance from experienced researchers and RSEs maintains coherent architecture +- Thesis-driven development provides fresh contributions while experienced maintainers preserve long-term vision + +**Recognition:** +- Author and contributor lists maintained in the software repository +- Software authors for specific scientific applications listed as co-authors on academic publications +- Citeable DOI (10.5281/zenodo.595380) enables proper acknowledgment in publications + +The combination of institutional support, dual-institution governance, and established community practices positions alpaka well for continued evolution as hardware platforms and programming models advance. + +## References + +- alpaka GitHub Repository: https://github.com/alpaka-group/alpaka +- Main publication: Matthes, A., et al. (2016). Tuning and optimization for a variety of many-core architectures without changing a single line of implementation code using the alpaka library. https://doi.org/10.1109/IPDPSW.2016.50 +- alpaka Documentation: https://alpaka.readthedocs.io +- Coding Guidelines: https://alpaka.readthedocs.io/en/latest/dev/style.html +- Software Citation: DOI 10.5281/zenodo.595380 diff --git a/pages/research_software_stories/picongpu_research_software_story.md b/pages/research_software_stories/picongpu_research_software_story.md new file mode 100644 index 00000000..c4e98b1a --- /dev/null +++ b/pages/research_software_stories/picongpu_research_software_story.md @@ -0,0 +1,158 @@ +--- +title: "PIConGPU - a fully relativistic 3D3V particle-in-cell code" +search_exclude: false +description: "PIConGPU is used to simulate nonlinear plasma physics, from laser plasma accelerators to astrophysics research." +contributors: ["Guido Juckeland"] +page_id: picongpu +type: research_software_story +--- + +## The Problem +### Simulating extreme laser-plasma physics for next-generation accelerators + +PIConGPU is a particle-in-cell code used to simulate nonlinear plasma physics. +It is primarily used for laser plasma acceleration, such as laser wakefield and target normal sheath acceleration, but it is also frequently applied to astrophysical scenarios, such as magnetic reconnection and shear surface instabilities in interstellar jets. +These extreme physical conditions require a fully relativistic approach and three-dimensional (3D) modeling of spatial coordinates and velocity space, which presents a substantial computational challenge. +This software provides accurate, high-performance simulations that can run on modern supercomputing architectures, supporting experimental design and theoretical understanding in plasma physics research. +## User Community +### Collaborative development driven by physics and computer science experts + +PIConGPU is primarily developed at the Helmholtz-Zentrum Dresden-Rossendorf (HZDR), where the team combines expertise from computer science and physics. +The development of physics capabilities is primarily driven by students as part of their Ph.D. or master's thesis work. This creates a dynamic environment in which early-career researchers can contribute to the project while advancing their own research goals under the supervision of a senior computational physicist. +In parallel, RSEs (research software engineers) mainly drive workflow design, domain-specific coupling between the computer science domain and physics simulations, and overall code maintenance. + +The development team consists of: +- A few computer scientists focused on software architecture and performance +- A larger group of physicists driving scientific requirements +- PhD and master's students as primary contributors of new features + +Users of PIConGPU are mainly researchers simulating laser-driven particle acceleration. +They tend to be advanced C++ users with strong computational backgrounds, capable of working within complex HPC environments and handling the sophisticated build requirements of the software. + +The community maintains connection through online videos and onboarding documents, a Mattermost team with core users, and personnel exchange visits that facilitate knowledge transfer between institutions. + +## Technical Aspects +### Modern C++ with extensive compilation infrastructure + +PIConGPU is classified as Tier 1 Research Software Infrastructure (Services included), reflecting its maturity and the comprehensive support provided to users. + +**Technical specifications:** +- **Language:** Modern C++20 for the source code, with Python bindings available for easier interaction +- **Codebase size:** Approximately 80k lines of code (including the PMacc library) plus roughly 55k lines of comments and documentation +- **Build system:** CMake for building and installation +- **Deployment:** Can ideally install on local machines if prerequisites are satisfied, but primarily targets HPC systems +- **Compilation characteristics:** Long compile times (~3+ minutes) for each setup due to heavy use of C++ templates for performance optimization +- **Parameter handling:** Simulation parameters are transported via CMake into the code, requiring recompilation when input parameters change + +This compilation-time parameter binding allows aggressive compiler optimizations but creates a different workflow than traditional runtime configuration approaches. + +### Libraries and Systems + +PIConGPU builds on several key dependencies: + +- **alpaka** (https://alpaka.readthedocs.io/): Core abstraction library enabling portability across different accelerators +- **CMake:** Build configuration and management +- **MPI:** Parallel execution across multiple nodes +- **Boost:** Essential C++ utilities and data structures +- **OpenPMD-api:** HPC IO abstraction library for parallel ADIOS2 or HDF5 + +The focused dependency set reflects a deliberate strategy of relying on well-established, widely-available libraries rather than accumulating numerous smaller dependencies. + +## Software Quality Practices +### Rigorous testing across thousands of hardware configurations + +PIConGPU follows disciplined software engineering practices with comprehensive version control and contribution guidelines: + +- **Version control:** Git, with the main repository hosted on GitHub +- **Contribution process:** Guidelines documented in CONTRIBUTING.md within the repository +- **Code review:** Changes reviewed before integration to maintain quality + +The most distinctive aspect of PIConGPU's quality infrastructure is its extensive continuous integration setup. +The CI workflow moves code from GitHub via GitLab.com to HZDR's local GitLab CI infrastructure, then pushes all pipeline results back to GitHub pull requests. +This complex pipeline: + +- Checks static code quality through linting and code style enforcement +- Compiles test cases for all supported combinations of hardware architectures, accelerators (GPUs), and libraries +- Generates hundreds of CI jobs per change +- Runs tests and validates output against expected results + +The code also integrates with multiple HPC compiler and hardware vendor CI/CD test environments, serving as a real-world stress test for their tools. + +## Developer Community +### Structured support for physicists learning computational methods + +The PIConGPU project provides multiple resources to help newcomers: + +- Online videos and comprehensive onboarding documents introducing the software's purpose and architecture +- A Mattermost team where developers and users can ask questions and share solutions +- Personnel exchange visits allowing researchers to work directly with core developers + +The typical user journey starts with learning to run existing simulation setups and modify parameters. +As users gain experience, they progress to adapting simulation geometries and incorporating new initial conditions. +Advanced users eventually contribute new physical models or extend the code's capabilities for their specific research needs. + +## Tools +### Performance profiling across diverse accelerator architectures + +PIConGPU works well with industry-standard performance profiling tools including: + +- **NVIDIA Nsight** for NVIDIA GPUs +- **AMD Omniperf** for AMD GPUs +- **Score-P** for general parallel performance analysis + +The highly asynchronous nature of particle-in-cell algorithms makes profiling challenging, as GPU operations may overlap with CPU work and communication in complex ways. +Despite these challenges, detailed profiling helps developers identify bottlenecks and optimize critical code paths. + +## FAIR & Open +### Transparent development with strong licensing and citability + +PIConGPU exemplifies FAIR research software principles: + +- **Repository:** Openly available on GitHub (https://github.com/ComputationalRadiationPhysics/picongpu) +- **License:** GPLv3+ for the main code, LGPLv3+ for libraries, and CC-BY 4.0 for documentation +- **Citeable:** Yes, with DOI 10.5281/zenodo.591746 +- **Discussion community:** Via GitHub Issues for transparent community engagement +- **Software Quality Checklist:** Commit Rules documented at https://github.com/ComputationalRadiationPhysics/picongpu/blob/dev/docs/COMMIT.md + +Development happens openly, with discussions about features, bugs, and design decisions occurring in public GitHub issues. The GPL licensing ensures that improvements benefit the entire community rather than being captured in proprietary forks. + +## Documentation +### Multi-level resources serving diverse user needs + +PIConGPU provides documentation organized for different audiences: + +- **User documentation:** Installation guides, tutorials, and usage examples +- **Developer documentation:** Code structure explanations and contribution guidelines +- **Maintainer documentation:** Release processes and long-term decisions on code structure + +The primary documentation lives at https://picongpu.readthedocs.io, using Read the Docs for versioned, searchable access. +Documentation is mainly written and maintained by the core development team, with contributions often arriving as part of pull requests when new features are added. + +## Sustainability +### Institutional commitment ensures long-term viability + +PIConGPU benefits from stable institutional support: + +**Funding model:** +- Part of Helmholtz base-funded research activities at HZDR +- Permanently funded RSEs serving as maintainer, ensuring continuity beyond individual researchers +- Further RSEs funded via European project for HPC and plasma research + +**Governance:** +- Project builds on well-established FOSS community practices +- Development guided by experienced researchers and RSEs who maintain overall architecture +- Benefits from thesis-driven development while maintaining coherent long-term vision + +**Recognition:** +- Author and contributor lists maintained in the software repository +- Software authors for specific scientific use cases listed as authors on academic publications + +The combination of permanent funding, experienced maintainers, and established community practices positions PIConGPU well for long-term sustainability as computing architectures and research needs evolve. + +## References + +- PIConGPU GitHub Repository: https://github.com/ComputationalRadiationPhysics/picongpu +- Main publication: Bussmann, M., et al. (2013). Radiative signatures of the relativistic Kelvin-Helmholtz instability. https://doi.org/10.1145/2503210.2504564 +- PIConGPU Documentation: https://picongpu.readthedocs.io +- Software Citation: DOI 10.5281/zenodo.591746 + From f535f365cdf7ed669b326f38ed50ebfee9a32a81 Mon Sep 17 00:00:00 2001 From: srghosh56 Date: Mon, 9 Feb 2026 12:51:37 +0100 Subject: [PATCH 29/47] Address review feedback --- .../alpaka_research_software_story.md | 113 +++++++++++------- .../picongpu_research_software_story.md | 106 ++++++++++------ 2 files changed, 139 insertions(+), 80 deletions(-) diff --git a/pages/research_software_stories/alpaka_research_software_story.md b/pages/research_software_stories/alpaka_research_software_story.md index 265ccd0b..e3987b84 100644 --- a/pages/research_software_stories/alpaka_research_software_story.md +++ b/pages/research_software_stories/alpaka_research_software_story.md @@ -1,8 +1,8 @@ --- -title: "alpaka - a header only C++ library to run your code on any kind of processor" +title: "Research Software Story - alpaka" search_exclude: false description: "alpaka is a header-only C++ template library that enables writing platform and performance portable applications. It can use CPUs with sequential and thread parallel code, GPUs via multiple programming paradigms and also FPGAs." -contributors: ["Guido Juckeland"] +contributors: ["Guido Juckeland", "Srobona Ghosh"] page_id: alpaka type: research_software_story --- @@ -10,46 +10,46 @@ type: research_software_story ## The Problem ### Achieving performance portability in an increasingly heterogeneous HPC landscape -alpaka is a header-only C++ template library that enables writing platform and performance portable applications. +alpaka is a header-only C++ template library that enables writing [platform and performance portable applications][ALPAKA_GITHUB]. It can use CPUs with sequential and thread parallel code, GPUs via multiple programming paradigms. The library addresses the fundamental challenge facing HPC developers: how to write high-performance code once and run it efficiently across diverse hardware platforms without maintaining separate implementations for each architecture. -Traditional approaches required separate code paths, within the user application, for NVIDIA GPUs (CUDA), AMD GPUs (HIP/ROCm), Intel GPUs (oneAPI/SYCL), and multicore x86/ARM/RISCV CPUs (OpenMP). +Traditional approaches required separate code paths, within the user application, for NVIDIA GPUs ([CUDA][CUDA]), [AMD GPUs][HIP] ([HIP/ROCm][HIP]), [Intel GPUs][SYCL] ([oneAPI/SYCL][SYCL]), and multicore x86/ARM/RISCV CPUs ([OpenMP][OPENMP]). This multiplication of code creates enormous maintenance burdens and makes verification difficult. alpaka solves this by providing a single abstraction layer where developers write algorithms once using portable interfaces, then compile to native code for different hardware backends. ## User Community ### Joint development between HZDR and CERN serving the HPC community -alpaka is jointly developed at the Helmholtz-Zentrum Dresden-Rossendorf (HZDR) and CERN (CMS experiment). +alpaka is jointly developed at the [Helmholtz-Zentrum Dresden-Rossendorf (HZDR)][HZDR] and [CERN][CERN] (CMS experiment). The development team combines computer scientists and physicists, with work mainly driven through PhD and master's thesis projects alongside requirements from CERN's experimental collaborations. **Development team composition:** - HZDR and CMS are focused on core library architecture and performance optimization - CMS collaboration developers at CERN driving requirements for high-energy physics data processing - HZDR taking care of plasma physics simulation requirements -- HZDR is developing features based on external user requirements from DLR and HZB -- HZDR is developing the testing strategys and infrastructure to guarantee the code quallity +- HZDR is developing features based on external user requirements from [DLR][DLR] and [HZB][HZB] +- HZDR is developing the testing strategies and infrastructure to guarantee the code quality - PhD and master's students contributing focused improvements and new features **User base characteristics:** -- Advanced C++ programmers working in HPC environments +- Advanced [C++][LANGUAGE_CPP] programmers working in HPC environments - Researchers needing codes to work across different computing centers with varying hardware - CMS experiment and other scientific collaborations requiring performance portability - Users comfortable with parallel programming concepts and template-heavy C++ code -The community maintains connection through online videos and onboarding documents, a Mattermost team with core users, and personnel exchange visits between institutions. +The community maintains connection through [online videos and onboarding documents][ALPAKA_DOCS], a [Mattermost][TOOL_MATTERMOST] team with core users, and personnel exchange visits between institutions. ## Technical Aspects ### Header-only C++ template library for compile-time code generation -alpaka is classified as Tier 1 Research Software Infrastructure (Services included), reflecting its critical enabling role for other scientific applications. +alpaka is classified as Tier 3 Research Software Infrastructure (Services included), reflecting its critical enabling role for other scientific applications. **Technical specifications:** -- **Language:** Modern C++20 for expressive template metaprogramming +- **Language:** Modern [C++20][LANGUAGE_CPP20] for expressive template metaprogramming - **Codebase size:** Approximately 45k lines of code (30k in core library headers) and 10k lines of comments - **Architecture:** Header-only library that doesn't "run" but translates at compile time -- **Compilation approach:** Compiler processes templates to generate hardware-specific code (CUDA, HIP/ROCm, OpenMP, etc.) +- **Compilation approach:** Compiler processes templates to generate hardware-specific code ({% tool "cuda" %}, {% tool "hip" %}/{% tool "rocm" %}, {% tool "openmp" %}, etc.) - **Performance:** Zero runtime overhead compared to hand-written platform-specific code When developers write alpaka-based algorithms and compile with a specific backend selected, the compiler produces native code for that platform. @@ -59,11 +59,11 @@ Compiling the same source with different backends produces different optimized i alpaka's dependencies vary based on the selected compilation backend: -- **CUDA:** Required when compiling for NVIDIA GPUs -- **HIP/ROCm:** Required when targeting AMD GPUs -- **OneAPI SYCL:** Required for Intel GPUs or optionally CPUs -- **OpenMP:** Used for thread-parallel CPU execution -- **TBB (Threading Building Blocks):** Alternative for task-based CPU parallelism +- **{% tool "cuda" %}:** Required when compiling for NVIDIA GPUs +- **{% tool "hip" %}/{% tool "rocm" %}:** Required when targeting AMD GPUs +- **[OneAPI SYCL][SYCL]:** Required for Intel GPUs or optionally CPUs +- **{% tool "openmp" %}:** Used for thread-parallel CPU execution +- **[TBB (Threading Building Blocks)][TBB]:** Alternative for task-based CPU parallelism This backend architecture means deploying alpaka-based code requires only the specific toolchain relevant to the target hardware, keeping deployment practical despite broad platform support. @@ -72,19 +72,18 @@ This backend architecture means deploying alpaka-based code requires only the sp alpaka follows disciplined development practices essential for a library supporting such diverse platforms: -- **Version control:** Git with the main repository on GitHub -- **Contribution guidelines:** Detailed guidelines in CONTRIBUTING.md maintain consistency across contributors +- **Version control:** {% tool "git" %} with the main repository on [GitHub][ALPAKA_GITHUB] +- **Contribution guidelines:** Detailed guidelines in [CONTRIBUTING.md][ALPAKA_CONTRIBUTING] maintain consistency across contributors - **Code review:** Mandatory peer review before merging changes -- **Coding standards:** Comprehensive guidelines documented at https://alpaka.readthedocs.io/en/latest/dev/style.html +- **Coding standards:** Comprehensive [guidelines documented][ALPAKA_STYLE] for maintaining code quality The most remarkable quality practice is the extensive continuous integration infrastructure testing every change across thousands of configurations. -The CI system routes code from GitHub through GitLab.com to HZDR's local GitLab CI infrastructure with access to diverse hardware accelerators. +The CI system routes code from {% tool "github" %} through [GitLab.com][GITLAB] to HZDR's local GitLab CI infrastructure with access to diverse hardware accelerators. Each change triggers: - Static code quality checks through linting - Compilation testing across all supported C++ compilers, hardware backends, and configurations - Test suite execution verifying correctness on each platform -- ~~Performance validation ensuring abstractions don't introduce overhead~~ Results push back to GitHub pull requests, providing immediate feedback about cross-platform compatibility. The code also integrates into multiple HPC compiler vendor and hardware manufacturer CI/CD test environments. @@ -97,12 +96,12 @@ The process is highly individualized, tailored to each contributor's background **Resources for developers:** - Online videos introducing alpaka's architecture and design philosophy -- Written documentation explaining the template machinery -- Mattermost team for real-time support from experienced developers +- [Written documentation][ALPAKA_DOCS] explaining the template machinery +- [Mattermost][TOOL_MATTERMOST] team for real-time support from experienced developers - Personnel exchange visits for intensive knowledge transfer through pair programming **Typical user journey:** -New users typically start by adapting existing code from one platform (e.g., CUDA) to use alpaka's portable interfaces. +New users typically start by adapting existing code from one platform (e.g., {% tool "cuda" %}) to use alpaka's portable interfaces. They begin by compiling only for familiar backends to verify correctness, then experiment with other platforms while comparing performance and debugging platform-specific issues. ## Tools @@ -110,9 +109,9 @@ They begin by compiling only for familiar backends to verify correctness, then e alpaka works well with standard profiling tools for various platforms: -- **NVIDIA Nsight** for NVIDIA GPU performance analysis -- **AMD Omniperf** for AMD GPU optimization -- **Score-P** for general parallel performance analysis +- **[NVIDIA Nsight][NVIDIA_NSIGHT]** for NVIDIA GPU performance analysis +- **[AMD Omniperf][AMD_OMNIPERF]** for AMD GPU optimization +- **[Score-P][SCOREP]** for general parallel performance analysis Profiling can be challenging due to the highly asynchronous nature of GPU execution and complex control flow from template-based abstractions. The development team uses these tools to verify memory access patterns are efficient and that kernel launches don't introduce unnecessary overhead. @@ -122,15 +121,17 @@ Like PIConGPU, alpaka has been incorporated into compiler vendor and hardware ma ## FAIR & Open ### Open development supporting collaborative cross-institution research -alpaka adheres to FAIR research software principles: +alpaka adheres to the [FAIR principles for research software][FAIR_PRINCIPLES]: -- **Repository:** Publicly available on GitHub (https://github.com/alpaka-group/alpaka) -- **License:** Core under MPLv2 (Mozilla Public License v2.0), examples under ISC (Internet Systems Consortium) allowing incorporation into projects with different licensing requirements; Documentation under CC-BY 4.0 -- **Citeable:** Yes, with DOI 10.5281/zenodo.595380 -- **Discussion community:** Via GitHub Issues for public discussion and knowledge preservation -- **Software Quality Checklist:** Coding Guidelines at https://alpaka.readthedocs.io/en/latest/dev/style.html +* **Findable**: The code is openly available on [GitHub][ALPAKA_GITHUB] with clear versioning, and releases are archived with assigned DOIs for academic referencing. -Development happens openly with features, architectural decisions, and bug reports discussed in public GitHub issues. +* **Accessible**: Core licensed under [MPLv2 (Mozilla Public License v2.0)][LICENSE_MPL2], examples under [ISC (Internet Systems Consortium)][LICENSE_ISC] allowing incorporation into projects with different licensing requirements; documentation under [CC-BY 4.0][LICENSE_CCBY]. + +* **Interoperable**: Designed to work seamlessly with standard HPC frameworks and supports multiple hardware backends ({% tool "cuda" %}, {% tool "hip" %}, {% tool "openmp" %}, [SYCL][SYCL]), enabling integration across diverse computing environments. + +* **Reusable**: alpaka provides well-documented, tested components with comprehensive [coding guidelines][ALPAKA_STYLE] and clear [contribution process][ALPAKA_CONTRIBUTING], enabling reuse and easy adaptation across multiple research projects. + +Development happens openly with features, architectural decisions, and bug reports discussed in public [GitHub Issues][ALPAKA_ISSUES]. The MPLv2 licensing ensures the library remains free and open while accommodating use by large experimental collaborations with complex software licensing requirements. ## Documentation @@ -144,7 +145,7 @@ alpaka documentation is organized to serve different user groups: - **Developer documentation:** Architecture explanations and contribution guidance - **API reference:** Technical specifications for library interfaces -The primary documentation lives at https://alpaka.readthedocs.io using Read the Docs for versioned access. +The primary documentation lives at using [Read the Docs][READTHEDOCS] for versioned access. Documentation is mainly written and maintained by the core development team, with contributions often arriving as part of pull requests introducing new features. ## Sustainability @@ -165,14 +166,42 @@ alpaka's sustainability model supports evolution over multi-decade timescales: **Recognition:** - Author and contributor lists maintained in the software repository - Software authors for specific scientific applications listed as co-authors on academic publications -- Citeable DOI (10.5281/zenodo.595380) enables proper acknowledgment in publications +- Citeable DOI enables proper acknowledgment in publications The combination of institutional support, dual-institution governance, and established community practices positions alpaka well for continued evolution as hardware platforms and programming models advance. ## References -- alpaka GitHub Repository: https://github.com/alpaka-group/alpaka -- Main publication: Matthes, A., et al. (2016). Tuning and optimization for a variety of many-core architectures without changing a single line of implementation code using the alpaka library. https://doi.org/10.1109/IPDPSW.2016.50 -- alpaka Documentation: https://alpaka.readthedocs.io -- Coding Guidelines: https://alpaka.readthedocs.io/en/latest/dev/style.html -- Software Citation: DOI 10.5281/zenodo.595380 +- alpaka GitHub Repository: +- Main publication: Matthes, A., et al. (2016). Tuning and optimization for a variety of many-core architectures without changing a single line of implementation code using the alpaka library. +- alpaka Documentation: +- Coding Guidelines: +- Software Citation: [DOI 10.5281/zenodo.595380](https://doi.org/10.5281/zenodo.595380) + + +[HZDR]: https://www.hzdr.de/ +[CERN]: https://home.cern/ +[DLR]: https://www.dlr.de/ +[HZB]: https://www.helmholtz-berlin.de/ +[LANGUAGE_CPP]: https://en.cppreference.com/w/cpp +[LANGUAGE_CPP20]: https://en.cppreference.com/w/cpp/20 +[TOOL_MATTERMOST]: https://mattermost.com/ +[CUDA]: https://developer.nvidia.com/cuda-toolkit +[HIP]: https://rocm.docs.amd.com/projects/HIP/en/latest/ +[SYCL]: https://www.khronos.org/sycl/ +[OPENMP]: https://www.openmp.org/ +[TBB]: https://www.intel.com/content/www/us/en/developer/tools/oneapi/onetbb.html +[ALPAKA_GITHUB]: https://github.com/alpaka-group/alpaka +[ALPAKA_CONTRIBUTING]: https://github.com/alpaka-group/alpaka/blob/develop/CONTRIBUTING.md +[ALPAKA_STYLE]: https://alpaka.readthedocs.io/en/latest/dev/style.html +[ALPAKA_ISSUES]: https://github.com/alpaka-group/alpaka/issues +[ALPAKA_DOCS]: https://alpaka.readthedocs.io +[GITLAB]: https://gitlab.com +[NVIDIA_NSIGHT]: https://developer.nvidia.com/nsight-systems +[AMD_OMNIPERF]: https://rocm.docs.amd.com/projects/omniperf/en/latest/ +[SCOREP]: https://www.vi-hps.org/projects/score-p/ +[FAIR_PRINCIPLES]: https://www.nature.com/articles/s41597-022-01710-x +[LICENSE_MPL2]: https://www.mozilla.org/en-US/MPL/2.0/ +[LICENSE_ISC]: https://opensource.org/license/isc-license-txt +[LICENSE_CCBY]: https://creativecommons.org/licenses/by/4.0/ +[READTHEDOCS]: https://readthedocs.org/ diff --git a/pages/research_software_stories/picongpu_research_software_story.md b/pages/research_software_stories/picongpu_research_software_story.md index c4e98b1a..60d81d0c 100644 --- a/pages/research_software_stories/picongpu_research_software_story.md +++ b/pages/research_software_stories/picongpu_research_software_story.md @@ -1,8 +1,8 @@ --- -title: "PIConGPU - a fully relativistic 3D3V particle-in-cell code" +title: "Research Software Story - PIConGPU" search_exclude: false description: "PIConGPU is used to simulate nonlinear plasma physics, from laser plasma accelerators to astrophysics research." -contributors: ["Guido Juckeland"] +contributors: ["Guido Juckeland", "Srobona Ghosh"] page_id: picongpu type: research_software_story --- @@ -10,14 +10,15 @@ type: research_software_story ## The Problem ### Simulating extreme laser-plasma physics for next-generation accelerators -PIConGPU is a particle-in-cell code used to simulate nonlinear plasma physics. -It is primarily used for laser plasma acceleration, such as laser wakefield and target normal sheath acceleration, but it is also frequently applied to astrophysical scenarios, such as magnetic reconnection and shear surface instabilities in interstellar jets. +PIConGPU is a [particle-in-cell code][PICONGPU_GITHUB] used to simulate [nonlinear plasma physics][PLASMA_PHYSICS]. +It is primarily used for [laser plasma acceleration][LASER_PLASMA_ACCEL], such as laser wakefield and target normal sheath acceleration, but it is also frequently applied to astrophysical scenarios, such as magnetic reconnection and shear surface instabilities in interstellar jets. These extreme physical conditions require a fully relativistic approach and three-dimensional (3D) modeling of spatial coordinates and velocity space, which presents a substantial computational challenge. -This software provides accurate, high-performance simulations that can run on modern supercomputing architectures, supporting experimental design and theoretical understanding in plasma physics research. +This software provides accurate, high-performance simulations that can run on modern [supercomputing architectures][HPC_ARCHS], supporting experimental design and theoretical understanding in plasma physics research. + ## User Community ### Collaborative development driven by physics and computer science experts -PIConGPU is primarily developed at the Helmholtz-Zentrum Dresden-Rossendorf (HZDR), where the team combines expertise from computer science and physics. +PIConGPU is primarily developed at the [Helmholtz-Zentrum Dresden-Rossendorf (HZDR)][HZDR], where the team combines expertise from computer science and physics. The development of physics capabilities is primarily driven by students as part of their Ph.D. or master's thesis work. This creates a dynamic environment in which early-career researchers can contribute to the project while advancing their own research goals under the supervision of a senior computational physicist. In parallel, RSEs (research software engineers) mainly drive workflow design, domain-specific coupling between the computer science domain and physics simulations, and overall code maintenance. @@ -27,22 +28,22 @@ The development team consists of: - PhD and master's students as primary contributors of new features Users of PIConGPU are mainly researchers simulating laser-driven particle acceleration. -They tend to be advanced C++ users with strong computational backgrounds, capable of working within complex HPC environments and handling the sophisticated build requirements of the software. +They tend to be advanced [C++][LANGUAGE_CPP] users with strong computational backgrounds, capable of working within complex HPC environments and handling the sophisticated build requirements of the software. -The community maintains connection through online videos and onboarding documents, a Mattermost team with core users, and personnel exchange visits that facilitate knowledge transfer between institutions. +The community maintains connection through [online videos and comprehensive onboarding documents][PICONGPU_DOCS], a [Mattermost][TOOL_MATTERMOST] team with core users, and personnel exchange visits that facilitate knowledge transfer between institutions. ## Technical Aspects ### Modern C++ with extensive compilation infrastructure -PIConGPU is classified as Tier 1 Research Software Infrastructure (Services included), reflecting its maturity and the comprehensive support provided to users. +PIConGPU is classified as Tier 3 Research Software Infrastructure (Services included), reflecting its maturity and the comprehensive support provided to users. **Technical specifications:** -- **Language:** Modern C++20 for the source code, with Python bindings available for easier interaction +- **Language:** Modern [C++20][LANGUAGE_CPP20] for the source code, with [Python][LANGUAGE_PYTHON] bindings available for easier interaction - **Codebase size:** Approximately 80k lines of code (including the PMacc library) plus roughly 55k lines of comments and documentation -- **Build system:** CMake for building and installation +- **Build system:** {% tool "cmake" %} for building and installation - **Deployment:** Can ideally install on local machines if prerequisites are satisfied, but primarily targets HPC systems - **Compilation characteristics:** Long compile times (~3+ minutes) for each setup due to heavy use of C++ templates for performance optimization -- **Parameter handling:** Simulation parameters are transported via CMake into the code, requiring recompilation when input parameters change +- **Parameter handling:** Simulation parameters are transported via {% tool "cmake" %} into the code, requiring recompilation when input parameters change This compilation-time parameter binding allows aggressive compiler optimizations but creates a different workflow than traditional runtime configuration approaches. @@ -50,11 +51,11 @@ This compilation-time parameter binding allows aggressive compiler optimizations PIConGPU builds on several key dependencies: -- **alpaka** (https://alpaka.readthedocs.io/): Core abstraction library enabling portability across different accelerators -- **CMake:** Build configuration and management -- **MPI:** Parallel execution across multiple nodes -- **Boost:** Essential C++ utilities and data structures -- **OpenPMD-api:** HPC IO abstraction library for parallel ADIOS2 or HDF5 +- **[alpaka][ALPAKA]**: Core abstraction library enabling portability across different accelerators +- **{% tool "cmake" %}:** Build configuration and management +- **{% tool "mpi" %}:** Parallel execution across multiple nodes +- **{% tool "boost" %}:** Essential C++ utilities and data structures +- **[OpenPMD-api][OPENPMD]:** HPC IO abstraction library for parallel [ADIOS2][ADIOS2] or [HDF5][HDF5] The focused dependency set reflects a deliberate strategy of relying on well-established, widely-available libraries rather than accumulating numerous smaller dependencies. @@ -63,12 +64,12 @@ The focused dependency set reflects a deliberate strategy of relying on well-est PIConGPU follows disciplined software engineering practices with comprehensive version control and contribution guidelines: -- **Version control:** Git, with the main repository hosted on GitHub -- **Contribution process:** Guidelines documented in CONTRIBUTING.md within the repository +- **Version control:** {% tool "git" %}, with the main repository hosted on [GitHub][PICONGPU_GITHUB] +- **Contribution process:** Guidelines documented in [CONTRIBUTING.md][PICONGPU_CONTRIBUTING] within the repository - **Code review:** Changes reviewed before integration to maintain quality The most distinctive aspect of PIConGPU's quality infrastructure is its extensive continuous integration setup. -The CI workflow moves code from GitHub via GitLab.com to HZDR's local GitLab CI infrastructure, then pushes all pipeline results back to GitHub pull requests. +The CI workflow moves code from {% tool "github" %} via [GitLab.com][GITLAB] to HZDR's local GitLab CI infrastructure, then pushes all pipeline results back to GitHub pull requests. This complex pipeline: - Checks static code quality through linting and code style enforcement @@ -83,8 +84,8 @@ The code also integrates with multiple HPC compiler and hardware vendor CI/CD te The PIConGPU project provides multiple resources to help newcomers: -- Online videos and comprehensive onboarding documents introducing the software's purpose and architecture -- A Mattermost team where developers and users can ask questions and share solutions +- [Online videos and comprehensive onboarding documents][PICONGPU_DOCS] introducing the software's purpose and architecture +- A [Mattermost][TOOL_MATTERMOST] team where developers and users can ask questions and share solutions - Personnel exchange visits allowing researchers to work directly with core developers The typical user journey starts with learning to run existing simulation setups and modify parameters. @@ -96,9 +97,9 @@ Advanced users eventually contribute new physical models or extend the code's ca PIConGPU works well with industry-standard performance profiling tools including: -- **NVIDIA Nsight** for NVIDIA GPUs -- **AMD Omniperf** for AMD GPUs -- **Score-P** for general parallel performance analysis +- **[NVIDIA Nsight][NVIDIA_NSIGHT]** for NVIDIA GPUs +- **[AMD Omniperf][AMD_OMNIPERF]** for AMD GPUs +- **[Score-P][SCOREP]** for general parallel performance analysis The highly asynchronous nature of particle-in-cell algorithms makes profiling challenging, as GPU operations may overlap with CPU work and communication in complex ways. Despite these challenges, detailed profiling helps developers identify bottlenecks and optimize critical code paths. @@ -106,15 +107,17 @@ Despite these challenges, detailed profiling helps developers identify bottlenec ## FAIR & Open ### Transparent development with strong licensing and citability -PIConGPU exemplifies FAIR research software principles: +PIConGPU adheres to the [FAIR principles for research software][FAIR_PRINCIPLES]: + +* **Findable**: The code is openly available on [GitHub][PICONGPU_GITHUB] with clear versioning, and major releases are archived with assigned DOIs for academic referencing. + +* **Accessible**: Licensed under [GPLv3+][LICENSE_GPL3] for the main code, [LGPLv3+][LICENSE_LGPL3] for libraries, and [CC-BY 4.0][LICENSE_CCBY] for documentation, facilitating open access and wide adoption. -- **Repository:** Openly available on GitHub (https://github.com/ComputationalRadiationPhysics/picongpu) -- **License:** GPLv3+ for the main code, LGPLv3+ for libraries, and CC-BY 4.0 for documentation -- **Citeable:** Yes, with DOI 10.5281/zenodo.591746 -- **Discussion community:** Via GitHub Issues for transparent community engagement -- **Software Quality Checklist:** Commit Rules documented at https://github.com/ComputationalRadiationPhysics/picongpu/blob/dev/docs/COMMIT.md +* **Interoperable**: Designed to work with standard HPC frameworks and supports multiple accelerator backends through [alpaka][ALPAKA], enabling integration across diverse computing environments. -Development happens openly, with discussions about features, bugs, and design decisions occurring in public GitHub issues. The GPL licensing ensures that improvements benefit the entire community rather than being captured in proprietary forks. +* **Reusable**: PIConGPU provides well-documented, tested components with clear [contribution guidelines][PICONGPU_CONTRIBUTING] and [commit rules][PICONGPU_COMMIT_RULES], enabling reuse and easy adaptation across multiple research projects. + +Development happens openly, with discussions about features, bugs, and design decisions occurring in public [GitHub Issues][PICONGPU_ISSUES]. The GPL licensing ensures that improvements benefit the entire community rather than being captured in proprietary forks. ## Documentation ### Multi-level resources serving diverse user needs @@ -125,7 +128,7 @@ PIConGPU provides documentation organized for different audiences: - **Developer documentation:** Code structure explanations and contribution guidelines - **Maintainer documentation:** Release processes and long-term decisions on code structure -The primary documentation lives at https://picongpu.readthedocs.io, using Read the Docs for versioned, searchable access. +The primary documentation lives at , using [Read the Docs][READTHEDOCS] for versioned, searchable access. Documentation is mainly written and maintained by the core development team, with contributions often arriving as part of pull requests when new features are added. ## Sustainability @@ -151,8 +154,35 @@ The combination of permanent funding, experienced maintainers, and established c ## References -- PIConGPU GitHub Repository: https://github.com/ComputationalRadiationPhysics/picongpu -- Main publication: Bussmann, M., et al. (2013). Radiative signatures of the relativistic Kelvin-Helmholtz instability. https://doi.org/10.1145/2503210.2504564 -- PIConGPU Documentation: https://picongpu.readthedocs.io -- Software Citation: DOI 10.5281/zenodo.591746 - +- PIConGPU GitHub Repository: +- Main publication: Bussmann, M., et al. (2013). Radiative signatures of the relativistic Kelvin-Helmholtz instability. +- PIConGPU Documentation: +- Software Citation: [DOI 10.5281/zenodo.591746](https://doi.org/10.5281/zenodo.591746) + + +[HZDR]: https://www.hzdr.de/ +[LANGUAGE_CPP]: https://en.cppreference.com/w/cpp +[LANGUAGE_CPP20]: https://en.cppreference.com/w/cpp/20 +[LANGUAGE_PYTHON]: https://www.python.org/ +[TOOL_MATTERMOST]: https://mattermost.com/ +[ALPAKA]: https://alpaka.readthedocs.io/ +[OPENPMD]: https://openpmd-api.readthedocs.io/ +[ADIOS2]: https://adios2.readthedocs.io/ +[HDF5]: https://www.hdfgroup.org/solutions/hdf5/ +[PICONGPU_GITHUB]: https://github.com/ComputationalRadiationPhysics/picongpu +[PICONGPU_CONTRIBUTING]: https://github.com/ComputationalRadiationPhysics/picongpu/blob/dev/CONTRIBUTING.md +[PICONGPU_COMMIT_RULES]: https://github.com/ComputationalRadiationPhysics/picongpu/blob/dev/docs/COMMIT.md +[PICONGPU_ISSUES]: https://github.com/ComputationalRadiationPhysics/picongpu/issues +[PICONGPU_DOCS]: https://picongpu.readthedocs.io +[GITLAB]: https://gitlab.com +[NVIDIA_NSIGHT]: https://developer.nvidia.com/nsight-systems +[AMD_OMNIPERF]: https://rocm.docs.amd.com/projects/omniperf/en/latest/ +[SCOREP]: https://www.vi-hps.org/projects/score-p/ +[FAIR_PRINCIPLES]: https://www.nature.com/articles/s41597-022-01710-x +[LICENSE_GPL3]: https://www.gnu.org/licenses/gpl-3.0.en.html +[LICENSE_LGPL3]: https://www.gnu.org/licenses/lgpl-3.0.en.html +[LICENSE_CCBY]: https://creativecommons.org/licenses/by/4.0/ +[READTHEDOCS]: https://readthedocs.org/ +[PLASMA_PHYSICS]: https://en.wikipedia.org/wiki/Plasma_(physics) +[LASER_PLASMA_ACCEL]: https://en.wikipedia.org/wiki/Laser-plasma_accelerator +[HPC_ARCHS]: https://www.top500.org/ From fb5612ad5b568a17c58d312fe5cf1ea9243029e5 Mon Sep 17 00:00:00 2001 From: srghosh56 Date: Mon, 9 Feb 2026 13:00:33 +0100 Subject: [PATCH 30/47] Address invalid tool id error for hip --- .../research_software_stories/alpaka_research_software_story.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/research_software_stories/alpaka_research_software_story.md b/pages/research_software_stories/alpaka_research_software_story.md index e3987b84..549a175e 100644 --- a/pages/research_software_stories/alpaka_research_software_story.md +++ b/pages/research_software_stories/alpaka_research_software_story.md @@ -60,7 +60,7 @@ Compiling the same source with different backends produces different optimized i alpaka's dependencies vary based on the selected compilation backend: - **{% tool "cuda" %}:** Required when compiling for NVIDIA GPUs -- **{% tool "hip" %}/{% tool "rocm" %}:** Required when targeting AMD GPUs +- **[HIP][HIP]/{% tool "rocm" %}:** Required when targeting AMD GPUs - **[OneAPI SYCL][SYCL]:** Required for Intel GPUs or optionally CPUs - **{% tool "openmp" %}:** Used for thread-parallel CPU execution - **[TBB (Threading Building Blocks)][TBB]:** Alternative for task-based CPU parallelism From 4f542690a2d464ec72e8cdb9c4e4fe2884be4661 Mon Sep 17 00:00:00 2001 From: srghosh56 Date: Mon, 9 Feb 2026 13:07:17 +0100 Subject: [PATCH 31/47] Address invalid tool id error for hip for other instances --- .../alpaka_research_software_story.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/research_software_stories/alpaka_research_software_story.md b/pages/research_software_stories/alpaka_research_software_story.md index 549a175e..ba72985c 100644 --- a/pages/research_software_stories/alpaka_research_software_story.md +++ b/pages/research_software_stories/alpaka_research_software_story.md @@ -49,7 +49,7 @@ alpaka is classified as Tier 3 Research Software Infrastructure (Services includ - **Language:** Modern [C++20][LANGUAGE_CPP20] for expressive template metaprogramming - **Codebase size:** Approximately 45k lines of code (30k in core library headers) and 10k lines of comments - **Architecture:** Header-only library that doesn't "run" but translates at compile time -- **Compilation approach:** Compiler processes templates to generate hardware-specific code ({% tool "cuda" %}, {% tool "hip" %}/{% tool "rocm" %}, {% tool "openmp" %}, etc.) +- **Compilation approach:** Compiler processes templates to generate hardware-specific code ({% tool "cuda" %}, HIP/{% tool "rocm" %}, {% tool "openmp" %}, etc.) - **Performance:** Zero runtime overhead compared to hand-written platform-specific code When developers write alpaka-based algorithms and compile with a specific backend selected, the compiler produces native code for that platform. @@ -127,7 +127,7 @@ alpaka adheres to the [FAIR principles for research software][FAIR_PRINCIPLES]: * **Accessible**: Core licensed under [MPLv2 (Mozilla Public License v2.0)][LICENSE_MPL2], examples under [ISC (Internet Systems Consortium)][LICENSE_ISC] allowing incorporation into projects with different licensing requirements; documentation under [CC-BY 4.0][LICENSE_CCBY]. -* **Interoperable**: Designed to work seamlessly with standard HPC frameworks and supports multiple hardware backends ({% tool "cuda" %}, {% tool "hip" %}, {% tool "openmp" %}, [SYCL][SYCL]), enabling integration across diverse computing environments. +* **Interoperable**: Designed to work seamlessly with standard HPC frameworks and supports multiple hardware backends ({% tool "cuda" %}, HIP, {% tool "openmp" %}, [SYCL][SYCL]), enabling integration across diverse computing environments. * **Reusable**: alpaka provides well-documented, tested components with comprehensive [coding guidelines][ALPAKA_STYLE] and clear [contribution process][ALPAKA_CONTRIBUTING], enabling reuse and easy adaptation across multiple research projects. From a5f59002fa241e7b9a6c32ea13c21907ab4aee46 Mon Sep 17 00:00:00 2001 From: srghosh56 Date: Mon, 9 Feb 2026 13:09:10 +0100 Subject: [PATCH 32/47] Address invalid tool id error for hip for other instances --- .../alpaka_research_software_story.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/research_software_stories/alpaka_research_software_story.md b/pages/research_software_stories/alpaka_research_software_story.md index ba72985c..dd7c8824 100644 --- a/pages/research_software_stories/alpaka_research_software_story.md +++ b/pages/research_software_stories/alpaka_research_software_story.md @@ -49,7 +49,7 @@ alpaka is classified as Tier 3 Research Software Infrastructure (Services includ - **Language:** Modern [C++20][LANGUAGE_CPP20] for expressive template metaprogramming - **Codebase size:** Approximately 45k lines of code (30k in core library headers) and 10k lines of comments - **Architecture:** Header-only library that doesn't "run" but translates at compile time -- **Compilation approach:** Compiler processes templates to generate hardware-specific code ({% tool "cuda" %}, HIP/{% tool "rocm" %}, {% tool "openmp" %}, etc.) +- **Compilation approach:** Compiler processes templates to generate hardware-specific code ({% tool "cuda" %}, HIP/ROCm, {% tool "openmp" %}, etc.) - **Performance:** Zero runtime overhead compared to hand-written platform-specific code When developers write alpaka-based algorithms and compile with a specific backend selected, the compiler produces native code for that platform. @@ -60,7 +60,7 @@ Compiling the same source with different backends produces different optimized i alpaka's dependencies vary based on the selected compilation backend: - **{% tool "cuda" %}:** Required when compiling for NVIDIA GPUs -- **[HIP][HIP]/{% tool "rocm" %}:** Required when targeting AMD GPUs +- **[HIP][HIP]/ROCm:** Required when targeting AMD GPUs - **[OneAPI SYCL][SYCL]:** Required for Intel GPUs or optionally CPUs - **{% tool "openmp" %}:** Used for thread-parallel CPU execution - **[TBB (Threading Building Blocks)][TBB]:** Alternative for task-based CPU parallelism From f6571e4b109ff2b1717be5d3335c5bb3027d024e Mon Sep 17 00:00:00 2001 From: srghosh56 Date: Mon, 9 Feb 2026 13:10:51 +0100 Subject: [PATCH 33/47] Address invalid tool id error for openmp --- .../alpaka_research_software_story.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pages/research_software_stories/alpaka_research_software_story.md b/pages/research_software_stories/alpaka_research_software_story.md index dd7c8824..e69d1e29 100644 --- a/pages/research_software_stories/alpaka_research_software_story.md +++ b/pages/research_software_stories/alpaka_research_software_story.md @@ -49,7 +49,7 @@ alpaka is classified as Tier 3 Research Software Infrastructure (Services includ - **Language:** Modern [C++20][LANGUAGE_CPP20] for expressive template metaprogramming - **Codebase size:** Approximately 45k lines of code (30k in core library headers) and 10k lines of comments - **Architecture:** Header-only library that doesn't "run" but translates at compile time -- **Compilation approach:** Compiler processes templates to generate hardware-specific code ({% tool "cuda" %}, HIP/ROCm, {% tool "openmp" %}, etc.) +- **Compilation approach:** Compiler processes templates to generate hardware-specific code ({% tool "cuda" %}, HIP/ROCm, OpenMP, etc.) - **Performance:** Zero runtime overhead compared to hand-written platform-specific code When developers write alpaka-based algorithms and compile with a specific backend selected, the compiler produces native code for that platform. @@ -62,7 +62,7 @@ alpaka's dependencies vary based on the selected compilation backend: - **{% tool "cuda" %}:** Required when compiling for NVIDIA GPUs - **[HIP][HIP]/ROCm:** Required when targeting AMD GPUs - **[OneAPI SYCL][SYCL]:** Required for Intel GPUs or optionally CPUs -- **{% tool "openmp" %}:** Used for thread-parallel CPU execution +- **OpenMP:** Used for thread-parallel CPU execution - **[TBB (Threading Building Blocks)][TBB]:** Alternative for task-based CPU parallelism This backend architecture means deploying alpaka-based code requires only the specific toolchain relevant to the target hardware, keeping deployment practical despite broad platform support. @@ -127,7 +127,7 @@ alpaka adheres to the [FAIR principles for research software][FAIR_PRINCIPLES]: * **Accessible**: Core licensed under [MPLv2 (Mozilla Public License v2.0)][LICENSE_MPL2], examples under [ISC (Internet Systems Consortium)][LICENSE_ISC] allowing incorporation into projects with different licensing requirements; documentation under [CC-BY 4.0][LICENSE_CCBY]. -* **Interoperable**: Designed to work seamlessly with standard HPC frameworks and supports multiple hardware backends ({% tool "cuda" %}, HIP, {% tool "openmp" %}, [SYCL][SYCL]), enabling integration across diverse computing environments. +* **Interoperable**: Designed to work seamlessly with standard HPC frameworks and supports multiple hardware backends ({% tool "cuda" %}, HIP, OpenMP, [SYCL][SYCL]), enabling integration across diverse computing environments. * **Reusable**: alpaka provides well-documented, tested components with comprehensive [coding guidelines][ALPAKA_STYLE] and clear [contribution process][ALPAKA_CONTRIBUTING], enabling reuse and easy adaptation across multiple research projects. From e2d068d4df8b82b36cf7bc45082f85173f0b5cc4 Mon Sep 17 00:00:00 2001 From: srghosh56 Date: Mon, 9 Feb 2026 13:14:43 +0100 Subject: [PATCH 34/47] Address invalid tool id errors --- .../picongpu_research_software_story.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/research_software_stories/picongpu_research_software_story.md b/pages/research_software_stories/picongpu_research_software_story.md index 60d81d0c..663c85c8 100644 --- a/pages/research_software_stories/picongpu_research_software_story.md +++ b/pages/research_software_stories/picongpu_research_software_story.md @@ -53,7 +53,7 @@ PIConGPU builds on several key dependencies: - **[alpaka][ALPAKA]**: Core abstraction library enabling portability across different accelerators - **{% tool "cmake" %}:** Build configuration and management -- **{% tool "mpi" %}:** Parallel execution across multiple nodes +- **MPI:** Parallel execution across multiple nodes - **{% tool "boost" %}:** Essential C++ utilities and data structures - **[OpenPMD-api][OPENPMD]:** HPC IO abstraction library for parallel [ADIOS2][ADIOS2] or [HDF5][HDF5] From 36c520b5884fadf638b10244158e8bcad80b7d33 Mon Sep 17 00:00:00 2001 From: srghosh56 Date: Mon, 9 Feb 2026 13:16:36 +0100 Subject: [PATCH 35/47] Address invalid tool id error for boost --- .../picongpu_research_software_story.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/research_software_stories/picongpu_research_software_story.md b/pages/research_software_stories/picongpu_research_software_story.md index 663c85c8..8407e438 100644 --- a/pages/research_software_stories/picongpu_research_software_story.md +++ b/pages/research_software_stories/picongpu_research_software_story.md @@ -54,7 +54,7 @@ PIConGPU builds on several key dependencies: - **[alpaka][ALPAKA]**: Core abstraction library enabling portability across different accelerators - **{% tool "cmake" %}:** Build configuration and management - **MPI:** Parallel execution across multiple nodes -- **{% tool "boost" %}:** Essential C++ utilities and data structures +- **Boost:** Essential C++ utilities and data structures - **[OpenPMD-api][OPENPMD]:** HPC IO abstraction library for parallel [ADIOS2][ADIOS2] or [HDF5][HDF5] The focused dependency set reflects a deliberate strategy of relying on well-established, widely-available libraries rather than accumulating numerous smaller dependencies. From 53715a168388115cabe5a2f2cf63b224536bff05 Mon Sep 17 00:00:00 2001 From: srghosh56 Date: Mon, 9 Feb 2026 13:33:54 +0100 Subject: [PATCH 36/47] Fix all invalid tool id errors --- .../alpaka_research_software_story.md | 9 +++++---- .../picongpu_research_software_story.md | 6 ++++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/pages/research_software_stories/alpaka_research_software_story.md b/pages/research_software_stories/alpaka_research_software_story.md index e69d1e29..e638a8fe 100644 --- a/pages/research_software_stories/alpaka_research_software_story.md +++ b/pages/research_software_stories/alpaka_research_software_story.md @@ -49,7 +49,7 @@ alpaka is classified as Tier 3 Research Software Infrastructure (Services includ - **Language:** Modern [C++20][LANGUAGE_CPP20] for expressive template metaprogramming - **Codebase size:** Approximately 45k lines of code (30k in core library headers) and 10k lines of comments - **Architecture:** Header-only library that doesn't "run" but translates at compile time -- **Compilation approach:** Compiler processes templates to generate hardware-specific code ({% tool "cuda" %}, HIP/ROCm, OpenMP, etc.) +- **Compilation approach:** Compiler processes templates to generate hardware-specific code ({% tool "cuda" %}, [HIP][HIP]/[ROCm][ROCm], [OpenMP][OPENMP], etc.) - **Performance:** Zero runtime overhead compared to hand-written platform-specific code When developers write alpaka-based algorithms and compile with a specific backend selected, the compiler produces native code for that platform. @@ -60,9 +60,9 @@ Compiling the same source with different backends produces different optimized i alpaka's dependencies vary based on the selected compilation backend: - **{% tool "cuda" %}:** Required when compiling for NVIDIA GPUs -- **[HIP][HIP]/ROCm:** Required when targeting AMD GPUs +- **[HIP][HIP]/[ROCm][ROCm]:** Required when targeting AMD GPUs - **[OneAPI SYCL][SYCL]:** Required for Intel GPUs or optionally CPUs -- **OpenMP:** Used for thread-parallel CPU execution +- **[OpenMP][OPENMP]:** Used for thread-parallel CPU execution - **[TBB (Threading Building Blocks)][TBB]:** Alternative for task-based CPU parallelism This backend architecture means deploying alpaka-based code requires only the specific toolchain relevant to the target hardware, keeping deployment practical despite broad platform support. @@ -127,7 +127,7 @@ alpaka adheres to the [FAIR principles for research software][FAIR_PRINCIPLES]: * **Accessible**: Core licensed under [MPLv2 (Mozilla Public License v2.0)][LICENSE_MPL2], examples under [ISC (Internet Systems Consortium)][LICENSE_ISC] allowing incorporation into projects with different licensing requirements; documentation under [CC-BY 4.0][LICENSE_CCBY]. -* **Interoperable**: Designed to work seamlessly with standard HPC frameworks and supports multiple hardware backends ({% tool "cuda" %}, HIP, OpenMP, [SYCL][SYCL]), enabling integration across diverse computing environments. +* **Interoperable**: Designed to work seamlessly with standard HPC frameworks and supports multiple hardware backends ({% tool "cuda" %}, [HIP][HIP], [OpenMP][OPENMP], [SYCL][SYCL]), enabling integration across diverse computing environments. * **Reusable**: alpaka provides well-documented, tested components with comprehensive [coding guidelines][ALPAKA_STYLE] and clear [contribution process][ALPAKA_CONTRIBUTING], enabling reuse and easy adaptation across multiple research projects. @@ -205,3 +205,4 @@ The combination of institutional support, dual-institution governance, and estab [LICENSE_ISC]: https://opensource.org/license/isc-license-txt [LICENSE_CCBY]: https://creativecommons.org/licenses/by/4.0/ [READTHEDOCS]: https://readthedocs.org/ +[ROCm]: https://rocm.docs.amd.com/en/latest/ \ No newline at end of file diff --git a/pages/research_software_stories/picongpu_research_software_story.md b/pages/research_software_stories/picongpu_research_software_story.md index 8407e438..46e893f6 100644 --- a/pages/research_software_stories/picongpu_research_software_story.md +++ b/pages/research_software_stories/picongpu_research_software_story.md @@ -53,8 +53,8 @@ PIConGPU builds on several key dependencies: - **[alpaka][ALPAKA]**: Core abstraction library enabling portability across different accelerators - **{% tool "cmake" %}:** Build configuration and management -- **MPI:** Parallel execution across multiple nodes -- **Boost:** Essential C++ utilities and data structures +- **[MPI][MPI]:** Parallel execution across multiple nodes +- **[Boost][Boost]:** Essential C++ utilities and data structures - **[OpenPMD-api][OPENPMD]:** HPC IO abstraction library for parallel [ADIOS2][ADIOS2] or [HDF5][HDF5] The focused dependency set reflects a deliberate strategy of relying on well-established, widely-available libraries rather than accumulating numerous smaller dependencies. @@ -186,3 +186,5 @@ The combination of permanent funding, experienced maintainers, and established c [PLASMA_PHYSICS]: https://en.wikipedia.org/wiki/Plasma_(physics) [LASER_PLASMA_ACCEL]: https://en.wikipedia.org/wiki/Laser-plasma_accelerator [HPC_ARCHS]: https://www.top500.org/ +[MPI]: https://www.open-mpi.org/doc/ +[Boost]: https://www.boost.org/libraries/latest/grid/ \ No newline at end of file From bb5c96fb60cd4886f419f41a44529e71cea87449 Mon Sep 17 00:00:00 2001 From: srghosh56 Date: Fri, 30 Jan 2026 21:14:36 +0100 Subject: [PATCH 37/47] Add PaNOSC Research Software Stories --- _data/quality_dimensions.yml | 421 +----------------- .../alpaka_research_software_story.md | 178 ++++++++ .../picongpu_research_software_story.md | 158 +++++++ 3 files changed, 337 insertions(+), 420 deletions(-) create mode 100644 pages/research_software_stories/alpaka_research_software_story.md create mode 100644 pages/research_software_stories/picongpu_research_software_story.md diff --git a/_data/quality_dimensions.yml b/_data/quality_dimensions.yml index a1bb3560..fe51488c 100644 --- a/_data/quality_dimensions.yml +++ b/_data/quality_dimensions.yml @@ -1,420 +1 @@ -- abbreviation: compatibility - description: 'Degree to which a product, system or component can exchange information - with other products, systems or components, and/or perform its required functions - while sharing the same common environment and resources. This characteristic - is composed of the following sub-characteristics: - - - **Co-existence** - - - Degree to which a product can perform its required functions efficiently while - sharing a common environment and resources with other products, without detrimental - impact on any other product. - - - **Interoperability** - - - Degree to which a system, product or component can exchange information with - other products and mutually use the information that has been exchanged.' - identifier: https://w3id.org/everse/i/dimensions/compatibility - name: Compatibility - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: fairness - description: 'FAIRness refers to the degree to which research software adheres - to the FAIR principles: Findable, Accessible, Interoperable, and Reusable. - These principles, adapted for research software, aim to enhance the discoverability, - accessibility, interoperability, and reusability of software, thereby maximizing - its value and impact in scientific research.' - identifier: https://w3id.org/everse/i/dimensions/fairness - name: FAIRness - source: - name: Introducing the FAIR Principles for research software - url: https://www.nature.com/articles/s41597-022-01710-x -- abbreviation: flexibility - description: 'Degree to which a product can be adapted to changes in its requirements, - contexts of use or system environment. This characteristic is composed of - the following sub-characteristics: - - - **Adaptability** - - - Degree to which a product or system can effectively and efficiently be adapted - for or transferred to different hardware, software or other operational or - usage environments. - - - **Scalability** - - - Degree to which a product can handle growing or shrinking workloads or to - adapt its capacity to handle variability. - - - **Installability** - - - Degree of effectiveness and efficiency with which a product or system can - be successfully installed and/or uninstalled in a specified environment. - - - **Replaceability** - - - Degree to which a product can replace another specified software product for - the same purpose in the same environment.' - identifier: https://w3id.org/everse/i/dimensions/flexibility - name: Flexibility - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: functional_suitability - created: 03-04-2025 - description: 'This characteristic represents the degree to which a product or - system provides functions that meet stated and implied needs when used under - specified conditions. This characteristic is composed of the following sub-characteristics: - - - **Functional completeness** - - - Degree to which the set of functions covers all the specified tasks and intended - users'' objectives. - - - **Functional correctness** - - - Degree to which a product or system provides accurate results when used by - intended users. - - - **Functional appropriateness** - - - Degree to which the functions facilitate the accomplishment of specified tasks - and objectives.' - identifier: https://w3id.org/everse/i/dimensions/functional_suitability - name: Functional suitability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: interaction_capability - description: 'Degree to which a product or system can be interacted with by specified - users to exchange information via the user interface to complete specific - tasks in a variety of contexts of use. This characteristic is composed of - the following sub-characteristics: - - - **Appropriateness recognizability** - - - Degree to which users can recognize whether a product or system is appropriate - for their needs. - - - **Learnability** - - - Degree to which the functions of a product or system can be learnt to be used - by specified users within a specified amount of time. - - - **Operability** - - - Degree to which a product or system has attributes that make it easy to operate - and control. - - - **User error protection** - - - Degree to which a system prevents users against operation errors. - - - **User engagement** - - - Degree to which a user interface presents functions and information in an - inviting and motivating manner encouraging continued interaction. - - - **Inclusivity** - - - Degree to which a product or system can be used by people of various backgrounds - (such as people of various ages, abilities, cultures, ethnicities, languages, - genders, economic situations, etc.). - - - **User assistance** - - - Degree to which a product can be used by people with the widest range of characteristics - and capabilities to achieve specified goals in a specified context of use. - - - **Self-descriptiveness** - - - Degree to which a product presents appropriate information, where needed by - the user, to make its capabilities and use immediately obvious to the user - without excessive interactions with a product or other resources (such as - user documentation, help desks or other users).' - identifier: https://w3id.org/everse/i/dimensions/interaction_capability - name: Interaction Capability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: maintainability - description: 'This characteristic represents the degree of effectiveness and efficiency - with which a product or system can be modified to improve it, correct it or - adapt it to changes in environment, and in requirements. This characteristic - is composed of the following sub-characteristics: - - - **Modularity** - - - Degree to which a system or computer program is composed of discrete components - such that a change to one component has minimal impact on other components. - - - **Reusability** - - - Degree to which a product can be used as an asset in more than one system, - or in building other assets. - - - **Analysability** - - - Degree of effectiveness and efficiency with which it is possible to assess - the impact on a product or system of an intended change to one or more of - its parts, to diagnose a product for deficiencies or causes of failures, or - to identify parts to be modified. - - - **Modifiability** - - - Degree to which a product or system can be effectively and efficiently modified - without introducing defects or degrading existing product quality. - - - **Testability** - - - Degree of effectiveness and efficiency with which test criteria can be established - for a system, product or component and tests can be performed to determine - whether those criteria have been met.' - identifier: https://w3id.org/everse/i/dimensions/maintainability - name: Maintainability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: open_source_software - description: Open source software is software with source code that anyone can - inspect, modify, and enhance. Research software can be published with or without - open access to the source code. Open access to source code aligns better with - academic research purposes than closed source software; open source software - aligns with the FAIR4RS principles. It allows other researchers to directly - verify the methods used to produce the results published in papers. It also - makes reproducibility much easier. In addition to these research-driven reasons, - publishing research software as open source software can help with long term - maintenance in a cost-effective way, since interested developers can easily - contribute new functionality or fix bugs. Moreover, by integrating with the - greater open source ecosystem, researchers can leverage tools and support - communities already available. As such, for most academic communities with - limited resources, it is also a good choice from a software engineering perspective - identifier: https://w3id.org/everse/i/dimensions/open_source_software - name: Open Source Software - source: - - identifier: https://doi.org/10.5281/zenodo.14204478 - name: EVERSE Reference Framework - url: https://doi.org/10.5281/zenodo.14204478 - - name: What is Open Source? - url: https://opensource.com/resources/what-open-source -- abbreviation: performance_efficiency - description: 'This characteristic represents the degree to which a product performs - its functions within specified time and throughput parameters and is efficient - in the use of resources (such as CPU, memory, storage, network devices, energy, - materials...) under specified conditions. This characteristic is composed - of the following sub-characteristics: - - - **Time behaviour** - - - Degree to which the response time and throughput rates of a product or system, - when performing its functions, meet requirements. - - - **Resource utilization** - - - Degree to which the amounts and types of resources used by a product or system, - when performing its functions, meet requirements. - - - **Capacity** - - - Degree to which the maximum limits of a product or system parameter meet requirements.' - identifier: https://w3id.org/everse/i/dimensions/performance_efficiency - name: Performance Efficiency - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: reliability - description: 'Degree to which a system, product or component performs specified - functions under specified conditions for a specified period of time. This - characteristic is composed of the following sub-characteristics: - - - **Faultlessness** - - - Degree to which a system, product or component performs specified functions - without fault under normal operation. - - - **Availability** - - - Degree to which a system, product or component is operational and accessible - when required for use. - - - **Fault tolerance** - - - Degree to which a system, product or component operates as intended despite - the presence of hardware or software faults. - - - **Recoverability** - - - Degree to which, in the event of an interruption or a failure, a product or - system can recover the data directly affected and re-establish the desired - state of the system.' - identifier: https://w3id.org/everse/i/dimensions/reliability - name: Reliability - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: safety - description: 'This characteristic represents the degree to which a product under - defined conditions avoids a state in which human life, health, property, or - the environment is endangered. This characteristic is composed of the following - sub-characteristics: - - - **Operational constraint** - - - Degree to which a product or system constrains its operation to within safe - parameters or states when encountering operational hazard. - - - **Risk identification** - - - Degree to which a product can identify a course of events or operations that - can expose life, property or environment to unacceptable risk. - - - **Fail safe** - - - Degree to which a product can automatically place itself in a safe operating - mode, or to revert to a safe condition in the event of a failure. - - - **Hazard warning** - - - Degree to which a product or system provides warnings of unacceptable risks - to operations or internal controls so that they can react in sufficient time - to sustain safe operations. - - - **Safe integration** - - - Degree to which a product can maintain safety during and after integration - with one or more components.' - identifier: https://w3id.org/everse/i/dimensions/safety - name: Safety - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: security - description: 'Degree to which a product or system defends against attack patterns - by malicious actors and protects information and data so that persons or other - products or systems have the degree of data access appropriate to their types - and levels of authorization. This characteristic is composed of the following - sub-characteristics: - - - **Confidentiality** - - - Degree to which a product or system ensures that data are accessible only - to those authorized to have access. - - - **Integrity** - - - Degree to which a system, product or component ensures that the state of its - system and data are protected from unauthorized modification or deletion either - by malicious action or computer error. - - - **Non-repudiation** - - - Degree to which actions or events can be proven to have taken place so that - the events or actions cannot be repudiated later. - - - **Accountability** - - - Degree to which the actions of an entity can be traced uniquely to the entity. - - - **Authenticity** - - - Degree to which the identity of a subject or resource can be proved to be - the one claimed. - - - **Resistance** - - - Degree to which the product or system sustains operations while under attack - from a malicious actor.' - identifier: https://w3id.org/everse/i/dimensions/security - name: Security - source: - name: ISO/IEC 25010 standard - url: https://iso25000.com/index.php/en/iso-25000-standards/iso-25010 -- abbreviation: sustainability - description: The capacity of the software to endure. In other words, sustainability - means that the software will continue to be available in the future, on new - platforms, meeting new needs. - identifier: https://w3id.org/everse/i/dimensions/sustainability - name: Sustainability - source: - name: Defining Software Sustainability - url: https://danielskatzblog.wordpress.com/2016/09/13/defining-software-sustainability/ +[] diff --git a/pages/research_software_stories/alpaka_research_software_story.md b/pages/research_software_stories/alpaka_research_software_story.md new file mode 100644 index 00000000..265ccd0b --- /dev/null +++ b/pages/research_software_stories/alpaka_research_software_story.md @@ -0,0 +1,178 @@ +--- +title: "alpaka - a header only C++ library to run your code on any kind of processor" +search_exclude: false +description: "alpaka is a header-only C++ template library that enables writing platform and performance portable applications. It can use CPUs with sequential and thread parallel code, GPUs via multiple programming paradigms and also FPGAs." +contributors: ["Guido Juckeland"] +page_id: alpaka +type: research_software_story +--- + +## The Problem +### Achieving performance portability in an increasingly heterogeneous HPC landscape + +alpaka is a header-only C++ template library that enables writing platform and performance portable applications. +It can use CPUs with sequential and thread parallel code, GPUs via multiple programming paradigms. +The library addresses the fundamental challenge facing HPC developers: how to write high-performance code once and run it efficiently across diverse hardware platforms without maintaining separate implementations for each architecture. + +Traditional approaches required separate code paths, within the user application, for NVIDIA GPUs (CUDA), AMD GPUs (HIP/ROCm), Intel GPUs (oneAPI/SYCL), and multicore x86/ARM/RISCV CPUs (OpenMP). +This multiplication of code creates enormous maintenance burdens and makes verification difficult. +alpaka solves this by providing a single abstraction layer where developers write algorithms once using portable interfaces, then compile to native code for different hardware backends. + +## User Community +### Joint development between HZDR and CERN serving the HPC community + +alpaka is jointly developed at the Helmholtz-Zentrum Dresden-Rossendorf (HZDR) and CERN (CMS experiment). +The development team combines computer scientists and physicists, with work mainly driven through PhD and master's thesis projects alongside requirements from CERN's experimental collaborations. + +**Development team composition:** +- HZDR and CMS are focused on core library architecture and performance optimization +- CMS collaboration developers at CERN driving requirements for high-energy physics data processing +- HZDR taking care of plasma physics simulation requirements +- HZDR is developing features based on external user requirements from DLR and HZB +- HZDR is developing the testing strategys and infrastructure to guarantee the code quallity +- PhD and master's students contributing focused improvements and new features + +**User base characteristics:** +- Advanced C++ programmers working in HPC environments +- Researchers needing codes to work across different computing centers with varying hardware +- CMS experiment and other scientific collaborations requiring performance portability +- Users comfortable with parallel programming concepts and template-heavy C++ code + +The community maintains connection through online videos and onboarding documents, a Mattermost team with core users, and personnel exchange visits between institutions. + +## Technical Aspects +### Header-only C++ template library for compile-time code generation + +alpaka is classified as Tier 1 Research Software Infrastructure (Services included), reflecting its critical enabling role for other scientific applications. + +**Technical specifications:** +- **Language:** Modern C++20 for expressive template metaprogramming +- **Codebase size:** Approximately 45k lines of code (30k in core library headers) and 10k lines of comments +- **Architecture:** Header-only library that doesn't "run" but translates at compile time +- **Compilation approach:** Compiler processes templates to generate hardware-specific code (CUDA, HIP/ROCm, OpenMP, etc.) +- **Performance:** Zero runtime overhead compared to hand-written platform-specific code + +When developers write alpaka-based algorithms and compile with a specific backend selected, the compiler produces native code for that platform. +Compiling the same source with different backends produces different optimized implementations from a single codebase. + +### Libraries and Systems + +alpaka's dependencies vary based on the selected compilation backend: + +- **CUDA:** Required when compiling for NVIDIA GPUs +- **HIP/ROCm:** Required when targeting AMD GPUs +- **OneAPI SYCL:** Required for Intel GPUs or optionally CPUs +- **OpenMP:** Used for thread-parallel CPU execution +- **TBB (Threading Building Blocks):** Alternative for task-based CPU parallelism + +This backend architecture means deploying alpaka-based code requires only the specific toolchain relevant to the target hardware, keeping deployment practical despite broad platform support. + +## Software Quality Practices +### Comprehensive testing across thousands of hardware configurations + +alpaka follows disciplined development practices essential for a library supporting such diverse platforms: + +- **Version control:** Git with the main repository on GitHub +- **Contribution guidelines:** Detailed guidelines in CONTRIBUTING.md maintain consistency across contributors +- **Code review:** Mandatory peer review before merging changes +- **Coding standards:** Comprehensive guidelines documented at https://alpaka.readthedocs.io/en/latest/dev/style.html + +The most remarkable quality practice is the extensive continuous integration infrastructure testing every change across thousands of configurations. +The CI system routes code from GitHub through GitLab.com to HZDR's local GitLab CI infrastructure with access to diverse hardware accelerators. +Each change triggers: + +- Static code quality checks through linting +- Compilation testing across all supported C++ compilers, hardware backends, and configurations +- Test suite execution verifying correctness on each platform +- ~~Performance validation ensuring abstractions don't introduce overhead~~ + +Results push back to GitHub pull requests, providing immediate feedback about cross-platform compatibility. +The code also integrates into multiple HPC compiler vendor and hardware manufacturer CI/CD test environments. + +## Developer Community +### Individualized onboarding for template metaprogramming expertise + +Onboarding new alpaka developers requires attention to the specialized C++ template metaprogramming knowledge needed to work effectively with the library. +The process is highly individualized, tailored to each contributor's background and the specific areas where they'll work. + +**Resources for developers:** +- Online videos introducing alpaka's architecture and design philosophy +- Written documentation explaining the template machinery +- Mattermost team for real-time support from experienced developers +- Personnel exchange visits for intensive knowledge transfer through pair programming + +**Typical user journey:** +New users typically start by adapting existing code from one platform (e.g., CUDA) to use alpaka's portable interfaces. +They begin by compiling only for familiar backends to verify correctness, then experiment with other platforms while comparing performance and debugging platform-specific issues. + +## Tools +### Performance profiling across diverse accelerator platforms + +alpaka works well with standard profiling tools for various platforms: + +- **NVIDIA Nsight** for NVIDIA GPU performance analysis +- **AMD Omniperf** for AMD GPU optimization +- **Score-P** for general parallel performance analysis + +Profiling can be challenging due to the highly asynchronous nature of GPU execution and complex control flow from template-based abstractions. +The development team uses these tools to verify memory access patterns are efficient and that kernel launches don't introduce unnecessary overhead. + +Like PIConGPU, alpaka has been incorporated into compiler vendor and hardware manufacturer testing environments, where it serves as a stress test for C++ template implementations and optimization capabilities. + +## FAIR & Open +### Open development supporting collaborative cross-institution research + +alpaka adheres to FAIR research software principles: + +- **Repository:** Publicly available on GitHub (https://github.com/alpaka-group/alpaka) +- **License:** Core under MPLv2 (Mozilla Public License v2.0), examples under ISC (Internet Systems Consortium) allowing incorporation into projects with different licensing requirements; Documentation under CC-BY 4.0 +- **Citeable:** Yes, with DOI 10.5281/zenodo.595380 +- **Discussion community:** Via GitHub Issues for public discussion and knowledge preservation +- **Software Quality Checklist:** Coding Guidelines at https://alpaka.readthedocs.io/en/latest/dev/style.html + +Development happens openly with features, architectural decisions, and bug reports discussed in public GitHub issues. +The MPLv2 licensing ensures the library remains free and open while accommodating use by large experimental collaborations with complex software licensing requirements. + +## Documentation +### Multi-level resources for diverse technical audiences + +alpaka documentation is organized to serve different user groups: + +- **Conceptual overviews:** Explaining the programming model and abstraction design +- **Installation guides:** Configuration for different backends and integration into projects +- **Tutorials:** Demonstrating common usage patterns through concrete examples +- **Developer documentation:** Architecture explanations and contribution guidance +- **API reference:** Technical specifications for library interfaces + +The primary documentation lives at https://alpaka.readthedocs.io using Read the Docs for versioned access. +Documentation is mainly written and maintained by the core development team, with contributions often arriving as part of pull requests introducing new features. + +## Sustainability +### Institutional funding and community governance ensure long-term evolution + +alpaka's sustainability model supports evolution over multi-decade timescales: + +**Funding and staffing:** +- Part of Helmholtz base-funded research activities at HZDR +- Permanently funded RSE as maintainer, ensuring continuity +- Coordination between HZDR and CERN ensures alignment with both general HPC and experimental collaboration needs + +**Governance:** +- Project builds on well-established FOSS community practices +- Guidance from experienced researchers and RSEs maintains coherent architecture +- Thesis-driven development provides fresh contributions while experienced maintainers preserve long-term vision + +**Recognition:** +- Author and contributor lists maintained in the software repository +- Software authors for specific scientific applications listed as co-authors on academic publications +- Citeable DOI (10.5281/zenodo.595380) enables proper acknowledgment in publications + +The combination of institutional support, dual-institution governance, and established community practices positions alpaka well for continued evolution as hardware platforms and programming models advance. + +## References + +- alpaka GitHub Repository: https://github.com/alpaka-group/alpaka +- Main publication: Matthes, A., et al. (2016). Tuning and optimization for a variety of many-core architectures without changing a single line of implementation code using the alpaka library. https://doi.org/10.1109/IPDPSW.2016.50 +- alpaka Documentation: https://alpaka.readthedocs.io +- Coding Guidelines: https://alpaka.readthedocs.io/en/latest/dev/style.html +- Software Citation: DOI 10.5281/zenodo.595380 diff --git a/pages/research_software_stories/picongpu_research_software_story.md b/pages/research_software_stories/picongpu_research_software_story.md new file mode 100644 index 00000000..c4e98b1a --- /dev/null +++ b/pages/research_software_stories/picongpu_research_software_story.md @@ -0,0 +1,158 @@ +--- +title: "PIConGPU - a fully relativistic 3D3V particle-in-cell code" +search_exclude: false +description: "PIConGPU is used to simulate nonlinear plasma physics, from laser plasma accelerators to astrophysics research." +contributors: ["Guido Juckeland"] +page_id: picongpu +type: research_software_story +--- + +## The Problem +### Simulating extreme laser-plasma physics for next-generation accelerators + +PIConGPU is a particle-in-cell code used to simulate nonlinear plasma physics. +It is primarily used for laser plasma acceleration, such as laser wakefield and target normal sheath acceleration, but it is also frequently applied to astrophysical scenarios, such as magnetic reconnection and shear surface instabilities in interstellar jets. +These extreme physical conditions require a fully relativistic approach and three-dimensional (3D) modeling of spatial coordinates and velocity space, which presents a substantial computational challenge. +This software provides accurate, high-performance simulations that can run on modern supercomputing architectures, supporting experimental design and theoretical understanding in plasma physics research. +## User Community +### Collaborative development driven by physics and computer science experts + +PIConGPU is primarily developed at the Helmholtz-Zentrum Dresden-Rossendorf (HZDR), where the team combines expertise from computer science and physics. +The development of physics capabilities is primarily driven by students as part of their Ph.D. or master's thesis work. This creates a dynamic environment in which early-career researchers can contribute to the project while advancing their own research goals under the supervision of a senior computational physicist. +In parallel, RSEs (research software engineers) mainly drive workflow design, domain-specific coupling between the computer science domain and physics simulations, and overall code maintenance. + +The development team consists of: +- A few computer scientists focused on software architecture and performance +- A larger group of physicists driving scientific requirements +- PhD and master's students as primary contributors of new features + +Users of PIConGPU are mainly researchers simulating laser-driven particle acceleration. +They tend to be advanced C++ users with strong computational backgrounds, capable of working within complex HPC environments and handling the sophisticated build requirements of the software. + +The community maintains connection through online videos and onboarding documents, a Mattermost team with core users, and personnel exchange visits that facilitate knowledge transfer between institutions. + +## Technical Aspects +### Modern C++ with extensive compilation infrastructure + +PIConGPU is classified as Tier 1 Research Software Infrastructure (Services included), reflecting its maturity and the comprehensive support provided to users. + +**Technical specifications:** +- **Language:** Modern C++20 for the source code, with Python bindings available for easier interaction +- **Codebase size:** Approximately 80k lines of code (including the PMacc library) plus roughly 55k lines of comments and documentation +- **Build system:** CMake for building and installation +- **Deployment:** Can ideally install on local machines if prerequisites are satisfied, but primarily targets HPC systems +- **Compilation characteristics:** Long compile times (~3+ minutes) for each setup due to heavy use of C++ templates for performance optimization +- **Parameter handling:** Simulation parameters are transported via CMake into the code, requiring recompilation when input parameters change + +This compilation-time parameter binding allows aggressive compiler optimizations but creates a different workflow than traditional runtime configuration approaches. + +### Libraries and Systems + +PIConGPU builds on several key dependencies: + +- **alpaka** (https://alpaka.readthedocs.io/): Core abstraction library enabling portability across different accelerators +- **CMake:** Build configuration and management +- **MPI:** Parallel execution across multiple nodes +- **Boost:** Essential C++ utilities and data structures +- **OpenPMD-api:** HPC IO abstraction library for parallel ADIOS2 or HDF5 + +The focused dependency set reflects a deliberate strategy of relying on well-established, widely-available libraries rather than accumulating numerous smaller dependencies. + +## Software Quality Practices +### Rigorous testing across thousands of hardware configurations + +PIConGPU follows disciplined software engineering practices with comprehensive version control and contribution guidelines: + +- **Version control:** Git, with the main repository hosted on GitHub +- **Contribution process:** Guidelines documented in CONTRIBUTING.md within the repository +- **Code review:** Changes reviewed before integration to maintain quality + +The most distinctive aspect of PIConGPU's quality infrastructure is its extensive continuous integration setup. +The CI workflow moves code from GitHub via GitLab.com to HZDR's local GitLab CI infrastructure, then pushes all pipeline results back to GitHub pull requests. +This complex pipeline: + +- Checks static code quality through linting and code style enforcement +- Compiles test cases for all supported combinations of hardware architectures, accelerators (GPUs), and libraries +- Generates hundreds of CI jobs per change +- Runs tests and validates output against expected results + +The code also integrates with multiple HPC compiler and hardware vendor CI/CD test environments, serving as a real-world stress test for their tools. + +## Developer Community +### Structured support for physicists learning computational methods + +The PIConGPU project provides multiple resources to help newcomers: + +- Online videos and comprehensive onboarding documents introducing the software's purpose and architecture +- A Mattermost team where developers and users can ask questions and share solutions +- Personnel exchange visits allowing researchers to work directly with core developers + +The typical user journey starts with learning to run existing simulation setups and modify parameters. +As users gain experience, they progress to adapting simulation geometries and incorporating new initial conditions. +Advanced users eventually contribute new physical models or extend the code's capabilities for their specific research needs. + +## Tools +### Performance profiling across diverse accelerator architectures + +PIConGPU works well with industry-standard performance profiling tools including: + +- **NVIDIA Nsight** for NVIDIA GPUs +- **AMD Omniperf** for AMD GPUs +- **Score-P** for general parallel performance analysis + +The highly asynchronous nature of particle-in-cell algorithms makes profiling challenging, as GPU operations may overlap with CPU work and communication in complex ways. +Despite these challenges, detailed profiling helps developers identify bottlenecks and optimize critical code paths. + +## FAIR & Open +### Transparent development with strong licensing and citability + +PIConGPU exemplifies FAIR research software principles: + +- **Repository:** Openly available on GitHub (https://github.com/ComputationalRadiationPhysics/picongpu) +- **License:** GPLv3+ for the main code, LGPLv3+ for libraries, and CC-BY 4.0 for documentation +- **Citeable:** Yes, with DOI 10.5281/zenodo.591746 +- **Discussion community:** Via GitHub Issues for transparent community engagement +- **Software Quality Checklist:** Commit Rules documented at https://github.com/ComputationalRadiationPhysics/picongpu/blob/dev/docs/COMMIT.md + +Development happens openly, with discussions about features, bugs, and design decisions occurring in public GitHub issues. The GPL licensing ensures that improvements benefit the entire community rather than being captured in proprietary forks. + +## Documentation +### Multi-level resources serving diverse user needs + +PIConGPU provides documentation organized for different audiences: + +- **User documentation:** Installation guides, tutorials, and usage examples +- **Developer documentation:** Code structure explanations and contribution guidelines +- **Maintainer documentation:** Release processes and long-term decisions on code structure + +The primary documentation lives at https://picongpu.readthedocs.io, using Read the Docs for versioned, searchable access. +Documentation is mainly written and maintained by the core development team, with contributions often arriving as part of pull requests when new features are added. + +## Sustainability +### Institutional commitment ensures long-term viability + +PIConGPU benefits from stable institutional support: + +**Funding model:** +- Part of Helmholtz base-funded research activities at HZDR +- Permanently funded RSEs serving as maintainer, ensuring continuity beyond individual researchers +- Further RSEs funded via European project for HPC and plasma research + +**Governance:** +- Project builds on well-established FOSS community practices +- Development guided by experienced researchers and RSEs who maintain overall architecture +- Benefits from thesis-driven development while maintaining coherent long-term vision + +**Recognition:** +- Author and contributor lists maintained in the software repository +- Software authors for specific scientific use cases listed as authors on academic publications + +The combination of permanent funding, experienced maintainers, and established community practices positions PIConGPU well for long-term sustainability as computing architectures and research needs evolve. + +## References + +- PIConGPU GitHub Repository: https://github.com/ComputationalRadiationPhysics/picongpu +- Main publication: Bussmann, M., et al. (2013). Radiative signatures of the relativistic Kelvin-Helmholtz instability. https://doi.org/10.1145/2503210.2504564 +- PIConGPU Documentation: https://picongpu.readthedocs.io +- Software Citation: DOI 10.5281/zenodo.591746 + From c19d87c49304c6d1908d886ee9422e218662f9bd Mon Sep 17 00:00:00 2001 From: srghosh56 Date: Mon, 9 Feb 2026 12:51:37 +0100 Subject: [PATCH 38/47] Address review feedback --- .../alpaka_research_software_story.md | 113 +++++++++++------- .../picongpu_research_software_story.md | 106 ++++++++++------ 2 files changed, 139 insertions(+), 80 deletions(-) diff --git a/pages/research_software_stories/alpaka_research_software_story.md b/pages/research_software_stories/alpaka_research_software_story.md index 265ccd0b..e3987b84 100644 --- a/pages/research_software_stories/alpaka_research_software_story.md +++ b/pages/research_software_stories/alpaka_research_software_story.md @@ -1,8 +1,8 @@ --- -title: "alpaka - a header only C++ library to run your code on any kind of processor" +title: "Research Software Story - alpaka" search_exclude: false description: "alpaka is a header-only C++ template library that enables writing platform and performance portable applications. It can use CPUs with sequential and thread parallel code, GPUs via multiple programming paradigms and also FPGAs." -contributors: ["Guido Juckeland"] +contributors: ["Guido Juckeland", "Srobona Ghosh"] page_id: alpaka type: research_software_story --- @@ -10,46 +10,46 @@ type: research_software_story ## The Problem ### Achieving performance portability in an increasingly heterogeneous HPC landscape -alpaka is a header-only C++ template library that enables writing platform and performance portable applications. +alpaka is a header-only C++ template library that enables writing [platform and performance portable applications][ALPAKA_GITHUB]. It can use CPUs with sequential and thread parallel code, GPUs via multiple programming paradigms. The library addresses the fundamental challenge facing HPC developers: how to write high-performance code once and run it efficiently across diverse hardware platforms without maintaining separate implementations for each architecture. -Traditional approaches required separate code paths, within the user application, for NVIDIA GPUs (CUDA), AMD GPUs (HIP/ROCm), Intel GPUs (oneAPI/SYCL), and multicore x86/ARM/RISCV CPUs (OpenMP). +Traditional approaches required separate code paths, within the user application, for NVIDIA GPUs ([CUDA][CUDA]), [AMD GPUs][HIP] ([HIP/ROCm][HIP]), [Intel GPUs][SYCL] ([oneAPI/SYCL][SYCL]), and multicore x86/ARM/RISCV CPUs ([OpenMP][OPENMP]). This multiplication of code creates enormous maintenance burdens and makes verification difficult. alpaka solves this by providing a single abstraction layer where developers write algorithms once using portable interfaces, then compile to native code for different hardware backends. ## User Community ### Joint development between HZDR and CERN serving the HPC community -alpaka is jointly developed at the Helmholtz-Zentrum Dresden-Rossendorf (HZDR) and CERN (CMS experiment). +alpaka is jointly developed at the [Helmholtz-Zentrum Dresden-Rossendorf (HZDR)][HZDR] and [CERN][CERN] (CMS experiment). The development team combines computer scientists and physicists, with work mainly driven through PhD and master's thesis projects alongside requirements from CERN's experimental collaborations. **Development team composition:** - HZDR and CMS are focused on core library architecture and performance optimization - CMS collaboration developers at CERN driving requirements for high-energy physics data processing - HZDR taking care of plasma physics simulation requirements -- HZDR is developing features based on external user requirements from DLR and HZB -- HZDR is developing the testing strategys and infrastructure to guarantee the code quallity +- HZDR is developing features based on external user requirements from [DLR][DLR] and [HZB][HZB] +- HZDR is developing the testing strategies and infrastructure to guarantee the code quality - PhD and master's students contributing focused improvements and new features **User base characteristics:** -- Advanced C++ programmers working in HPC environments +- Advanced [C++][LANGUAGE_CPP] programmers working in HPC environments - Researchers needing codes to work across different computing centers with varying hardware - CMS experiment and other scientific collaborations requiring performance portability - Users comfortable with parallel programming concepts and template-heavy C++ code -The community maintains connection through online videos and onboarding documents, a Mattermost team with core users, and personnel exchange visits between institutions. +The community maintains connection through [online videos and onboarding documents][ALPAKA_DOCS], a [Mattermost][TOOL_MATTERMOST] team with core users, and personnel exchange visits between institutions. ## Technical Aspects ### Header-only C++ template library for compile-time code generation -alpaka is classified as Tier 1 Research Software Infrastructure (Services included), reflecting its critical enabling role for other scientific applications. +alpaka is classified as Tier 3 Research Software Infrastructure (Services included), reflecting its critical enabling role for other scientific applications. **Technical specifications:** -- **Language:** Modern C++20 for expressive template metaprogramming +- **Language:** Modern [C++20][LANGUAGE_CPP20] for expressive template metaprogramming - **Codebase size:** Approximately 45k lines of code (30k in core library headers) and 10k lines of comments - **Architecture:** Header-only library that doesn't "run" but translates at compile time -- **Compilation approach:** Compiler processes templates to generate hardware-specific code (CUDA, HIP/ROCm, OpenMP, etc.) +- **Compilation approach:** Compiler processes templates to generate hardware-specific code ({% tool "cuda" %}, {% tool "hip" %}/{% tool "rocm" %}, {% tool "openmp" %}, etc.) - **Performance:** Zero runtime overhead compared to hand-written platform-specific code When developers write alpaka-based algorithms and compile with a specific backend selected, the compiler produces native code for that platform. @@ -59,11 +59,11 @@ Compiling the same source with different backends produces different optimized i alpaka's dependencies vary based on the selected compilation backend: -- **CUDA:** Required when compiling for NVIDIA GPUs -- **HIP/ROCm:** Required when targeting AMD GPUs -- **OneAPI SYCL:** Required for Intel GPUs or optionally CPUs -- **OpenMP:** Used for thread-parallel CPU execution -- **TBB (Threading Building Blocks):** Alternative for task-based CPU parallelism +- **{% tool "cuda" %}:** Required when compiling for NVIDIA GPUs +- **{% tool "hip" %}/{% tool "rocm" %}:** Required when targeting AMD GPUs +- **[OneAPI SYCL][SYCL]:** Required for Intel GPUs or optionally CPUs +- **{% tool "openmp" %}:** Used for thread-parallel CPU execution +- **[TBB (Threading Building Blocks)][TBB]:** Alternative for task-based CPU parallelism This backend architecture means deploying alpaka-based code requires only the specific toolchain relevant to the target hardware, keeping deployment practical despite broad platform support. @@ -72,19 +72,18 @@ This backend architecture means deploying alpaka-based code requires only the sp alpaka follows disciplined development practices essential for a library supporting such diverse platforms: -- **Version control:** Git with the main repository on GitHub -- **Contribution guidelines:** Detailed guidelines in CONTRIBUTING.md maintain consistency across contributors +- **Version control:** {% tool "git" %} with the main repository on [GitHub][ALPAKA_GITHUB] +- **Contribution guidelines:** Detailed guidelines in [CONTRIBUTING.md][ALPAKA_CONTRIBUTING] maintain consistency across contributors - **Code review:** Mandatory peer review before merging changes -- **Coding standards:** Comprehensive guidelines documented at https://alpaka.readthedocs.io/en/latest/dev/style.html +- **Coding standards:** Comprehensive [guidelines documented][ALPAKA_STYLE] for maintaining code quality The most remarkable quality practice is the extensive continuous integration infrastructure testing every change across thousands of configurations. -The CI system routes code from GitHub through GitLab.com to HZDR's local GitLab CI infrastructure with access to diverse hardware accelerators. +The CI system routes code from {% tool "github" %} through [GitLab.com][GITLAB] to HZDR's local GitLab CI infrastructure with access to diverse hardware accelerators. Each change triggers: - Static code quality checks through linting - Compilation testing across all supported C++ compilers, hardware backends, and configurations - Test suite execution verifying correctness on each platform -- ~~Performance validation ensuring abstractions don't introduce overhead~~ Results push back to GitHub pull requests, providing immediate feedback about cross-platform compatibility. The code also integrates into multiple HPC compiler vendor and hardware manufacturer CI/CD test environments. @@ -97,12 +96,12 @@ The process is highly individualized, tailored to each contributor's background **Resources for developers:** - Online videos introducing alpaka's architecture and design philosophy -- Written documentation explaining the template machinery -- Mattermost team for real-time support from experienced developers +- [Written documentation][ALPAKA_DOCS] explaining the template machinery +- [Mattermost][TOOL_MATTERMOST] team for real-time support from experienced developers - Personnel exchange visits for intensive knowledge transfer through pair programming **Typical user journey:** -New users typically start by adapting existing code from one platform (e.g., CUDA) to use alpaka's portable interfaces. +New users typically start by adapting existing code from one platform (e.g., {% tool "cuda" %}) to use alpaka's portable interfaces. They begin by compiling only for familiar backends to verify correctness, then experiment with other platforms while comparing performance and debugging platform-specific issues. ## Tools @@ -110,9 +109,9 @@ They begin by compiling only for familiar backends to verify correctness, then e alpaka works well with standard profiling tools for various platforms: -- **NVIDIA Nsight** for NVIDIA GPU performance analysis -- **AMD Omniperf** for AMD GPU optimization -- **Score-P** for general parallel performance analysis +- **[NVIDIA Nsight][NVIDIA_NSIGHT]** for NVIDIA GPU performance analysis +- **[AMD Omniperf][AMD_OMNIPERF]** for AMD GPU optimization +- **[Score-P][SCOREP]** for general parallel performance analysis Profiling can be challenging due to the highly asynchronous nature of GPU execution and complex control flow from template-based abstractions. The development team uses these tools to verify memory access patterns are efficient and that kernel launches don't introduce unnecessary overhead. @@ -122,15 +121,17 @@ Like PIConGPU, alpaka has been incorporated into compiler vendor and hardware ma ## FAIR & Open ### Open development supporting collaborative cross-institution research -alpaka adheres to FAIR research software principles: +alpaka adheres to the [FAIR principles for research software][FAIR_PRINCIPLES]: -- **Repository:** Publicly available on GitHub (https://github.com/alpaka-group/alpaka) -- **License:** Core under MPLv2 (Mozilla Public License v2.0), examples under ISC (Internet Systems Consortium) allowing incorporation into projects with different licensing requirements; Documentation under CC-BY 4.0 -- **Citeable:** Yes, with DOI 10.5281/zenodo.595380 -- **Discussion community:** Via GitHub Issues for public discussion and knowledge preservation -- **Software Quality Checklist:** Coding Guidelines at https://alpaka.readthedocs.io/en/latest/dev/style.html +* **Findable**: The code is openly available on [GitHub][ALPAKA_GITHUB] with clear versioning, and releases are archived with assigned DOIs for academic referencing. -Development happens openly with features, architectural decisions, and bug reports discussed in public GitHub issues. +* **Accessible**: Core licensed under [MPLv2 (Mozilla Public License v2.0)][LICENSE_MPL2], examples under [ISC (Internet Systems Consortium)][LICENSE_ISC] allowing incorporation into projects with different licensing requirements; documentation under [CC-BY 4.0][LICENSE_CCBY]. + +* **Interoperable**: Designed to work seamlessly with standard HPC frameworks and supports multiple hardware backends ({% tool "cuda" %}, {% tool "hip" %}, {% tool "openmp" %}, [SYCL][SYCL]), enabling integration across diverse computing environments. + +* **Reusable**: alpaka provides well-documented, tested components with comprehensive [coding guidelines][ALPAKA_STYLE] and clear [contribution process][ALPAKA_CONTRIBUTING], enabling reuse and easy adaptation across multiple research projects. + +Development happens openly with features, architectural decisions, and bug reports discussed in public [GitHub Issues][ALPAKA_ISSUES]. The MPLv2 licensing ensures the library remains free and open while accommodating use by large experimental collaborations with complex software licensing requirements. ## Documentation @@ -144,7 +145,7 @@ alpaka documentation is organized to serve different user groups: - **Developer documentation:** Architecture explanations and contribution guidance - **API reference:** Technical specifications for library interfaces -The primary documentation lives at https://alpaka.readthedocs.io using Read the Docs for versioned access. +The primary documentation lives at using [Read the Docs][READTHEDOCS] for versioned access. Documentation is mainly written and maintained by the core development team, with contributions often arriving as part of pull requests introducing new features. ## Sustainability @@ -165,14 +166,42 @@ alpaka's sustainability model supports evolution over multi-decade timescales: **Recognition:** - Author and contributor lists maintained in the software repository - Software authors for specific scientific applications listed as co-authors on academic publications -- Citeable DOI (10.5281/zenodo.595380) enables proper acknowledgment in publications +- Citeable DOI enables proper acknowledgment in publications The combination of institutional support, dual-institution governance, and established community practices positions alpaka well for continued evolution as hardware platforms and programming models advance. ## References -- alpaka GitHub Repository: https://github.com/alpaka-group/alpaka -- Main publication: Matthes, A., et al. (2016). Tuning and optimization for a variety of many-core architectures without changing a single line of implementation code using the alpaka library. https://doi.org/10.1109/IPDPSW.2016.50 -- alpaka Documentation: https://alpaka.readthedocs.io -- Coding Guidelines: https://alpaka.readthedocs.io/en/latest/dev/style.html -- Software Citation: DOI 10.5281/zenodo.595380 +- alpaka GitHub Repository: +- Main publication: Matthes, A., et al. (2016). Tuning and optimization for a variety of many-core architectures without changing a single line of implementation code using the alpaka library. +- alpaka Documentation: +- Coding Guidelines: +- Software Citation: [DOI 10.5281/zenodo.595380](https://doi.org/10.5281/zenodo.595380) + + +[HZDR]: https://www.hzdr.de/ +[CERN]: https://home.cern/ +[DLR]: https://www.dlr.de/ +[HZB]: https://www.helmholtz-berlin.de/ +[LANGUAGE_CPP]: https://en.cppreference.com/w/cpp +[LANGUAGE_CPP20]: https://en.cppreference.com/w/cpp/20 +[TOOL_MATTERMOST]: https://mattermost.com/ +[CUDA]: https://developer.nvidia.com/cuda-toolkit +[HIP]: https://rocm.docs.amd.com/projects/HIP/en/latest/ +[SYCL]: https://www.khronos.org/sycl/ +[OPENMP]: https://www.openmp.org/ +[TBB]: https://www.intel.com/content/www/us/en/developer/tools/oneapi/onetbb.html +[ALPAKA_GITHUB]: https://github.com/alpaka-group/alpaka +[ALPAKA_CONTRIBUTING]: https://github.com/alpaka-group/alpaka/blob/develop/CONTRIBUTING.md +[ALPAKA_STYLE]: https://alpaka.readthedocs.io/en/latest/dev/style.html +[ALPAKA_ISSUES]: https://github.com/alpaka-group/alpaka/issues +[ALPAKA_DOCS]: https://alpaka.readthedocs.io +[GITLAB]: https://gitlab.com +[NVIDIA_NSIGHT]: https://developer.nvidia.com/nsight-systems +[AMD_OMNIPERF]: https://rocm.docs.amd.com/projects/omniperf/en/latest/ +[SCOREP]: https://www.vi-hps.org/projects/score-p/ +[FAIR_PRINCIPLES]: https://www.nature.com/articles/s41597-022-01710-x +[LICENSE_MPL2]: https://www.mozilla.org/en-US/MPL/2.0/ +[LICENSE_ISC]: https://opensource.org/license/isc-license-txt +[LICENSE_CCBY]: https://creativecommons.org/licenses/by/4.0/ +[READTHEDOCS]: https://readthedocs.org/ diff --git a/pages/research_software_stories/picongpu_research_software_story.md b/pages/research_software_stories/picongpu_research_software_story.md index c4e98b1a..60d81d0c 100644 --- a/pages/research_software_stories/picongpu_research_software_story.md +++ b/pages/research_software_stories/picongpu_research_software_story.md @@ -1,8 +1,8 @@ --- -title: "PIConGPU - a fully relativistic 3D3V particle-in-cell code" +title: "Research Software Story - PIConGPU" search_exclude: false description: "PIConGPU is used to simulate nonlinear plasma physics, from laser plasma accelerators to astrophysics research." -contributors: ["Guido Juckeland"] +contributors: ["Guido Juckeland", "Srobona Ghosh"] page_id: picongpu type: research_software_story --- @@ -10,14 +10,15 @@ type: research_software_story ## The Problem ### Simulating extreme laser-plasma physics for next-generation accelerators -PIConGPU is a particle-in-cell code used to simulate nonlinear plasma physics. -It is primarily used for laser plasma acceleration, such as laser wakefield and target normal sheath acceleration, but it is also frequently applied to astrophysical scenarios, such as magnetic reconnection and shear surface instabilities in interstellar jets. +PIConGPU is a [particle-in-cell code][PICONGPU_GITHUB] used to simulate [nonlinear plasma physics][PLASMA_PHYSICS]. +It is primarily used for [laser plasma acceleration][LASER_PLASMA_ACCEL], such as laser wakefield and target normal sheath acceleration, but it is also frequently applied to astrophysical scenarios, such as magnetic reconnection and shear surface instabilities in interstellar jets. These extreme physical conditions require a fully relativistic approach and three-dimensional (3D) modeling of spatial coordinates and velocity space, which presents a substantial computational challenge. -This software provides accurate, high-performance simulations that can run on modern supercomputing architectures, supporting experimental design and theoretical understanding in plasma physics research. +This software provides accurate, high-performance simulations that can run on modern [supercomputing architectures][HPC_ARCHS], supporting experimental design and theoretical understanding in plasma physics research. + ## User Community ### Collaborative development driven by physics and computer science experts -PIConGPU is primarily developed at the Helmholtz-Zentrum Dresden-Rossendorf (HZDR), where the team combines expertise from computer science and physics. +PIConGPU is primarily developed at the [Helmholtz-Zentrum Dresden-Rossendorf (HZDR)][HZDR], where the team combines expertise from computer science and physics. The development of physics capabilities is primarily driven by students as part of their Ph.D. or master's thesis work. This creates a dynamic environment in which early-career researchers can contribute to the project while advancing their own research goals under the supervision of a senior computational physicist. In parallel, RSEs (research software engineers) mainly drive workflow design, domain-specific coupling between the computer science domain and physics simulations, and overall code maintenance. @@ -27,22 +28,22 @@ The development team consists of: - PhD and master's students as primary contributors of new features Users of PIConGPU are mainly researchers simulating laser-driven particle acceleration. -They tend to be advanced C++ users with strong computational backgrounds, capable of working within complex HPC environments and handling the sophisticated build requirements of the software. +They tend to be advanced [C++][LANGUAGE_CPP] users with strong computational backgrounds, capable of working within complex HPC environments and handling the sophisticated build requirements of the software. -The community maintains connection through online videos and onboarding documents, a Mattermost team with core users, and personnel exchange visits that facilitate knowledge transfer between institutions. +The community maintains connection through [online videos and comprehensive onboarding documents][PICONGPU_DOCS], a [Mattermost][TOOL_MATTERMOST] team with core users, and personnel exchange visits that facilitate knowledge transfer between institutions. ## Technical Aspects ### Modern C++ with extensive compilation infrastructure -PIConGPU is classified as Tier 1 Research Software Infrastructure (Services included), reflecting its maturity and the comprehensive support provided to users. +PIConGPU is classified as Tier 3 Research Software Infrastructure (Services included), reflecting its maturity and the comprehensive support provided to users. **Technical specifications:** -- **Language:** Modern C++20 for the source code, with Python bindings available for easier interaction +- **Language:** Modern [C++20][LANGUAGE_CPP20] for the source code, with [Python][LANGUAGE_PYTHON] bindings available for easier interaction - **Codebase size:** Approximately 80k lines of code (including the PMacc library) plus roughly 55k lines of comments and documentation -- **Build system:** CMake for building and installation +- **Build system:** {% tool "cmake" %} for building and installation - **Deployment:** Can ideally install on local machines if prerequisites are satisfied, but primarily targets HPC systems - **Compilation characteristics:** Long compile times (~3+ minutes) for each setup due to heavy use of C++ templates for performance optimization -- **Parameter handling:** Simulation parameters are transported via CMake into the code, requiring recompilation when input parameters change +- **Parameter handling:** Simulation parameters are transported via {% tool "cmake" %} into the code, requiring recompilation when input parameters change This compilation-time parameter binding allows aggressive compiler optimizations but creates a different workflow than traditional runtime configuration approaches. @@ -50,11 +51,11 @@ This compilation-time parameter binding allows aggressive compiler optimizations PIConGPU builds on several key dependencies: -- **alpaka** (https://alpaka.readthedocs.io/): Core abstraction library enabling portability across different accelerators -- **CMake:** Build configuration and management -- **MPI:** Parallel execution across multiple nodes -- **Boost:** Essential C++ utilities and data structures -- **OpenPMD-api:** HPC IO abstraction library for parallel ADIOS2 or HDF5 +- **[alpaka][ALPAKA]**: Core abstraction library enabling portability across different accelerators +- **{% tool "cmake" %}:** Build configuration and management +- **{% tool "mpi" %}:** Parallel execution across multiple nodes +- **{% tool "boost" %}:** Essential C++ utilities and data structures +- **[OpenPMD-api][OPENPMD]:** HPC IO abstraction library for parallel [ADIOS2][ADIOS2] or [HDF5][HDF5] The focused dependency set reflects a deliberate strategy of relying on well-established, widely-available libraries rather than accumulating numerous smaller dependencies. @@ -63,12 +64,12 @@ The focused dependency set reflects a deliberate strategy of relying on well-est PIConGPU follows disciplined software engineering practices with comprehensive version control and contribution guidelines: -- **Version control:** Git, with the main repository hosted on GitHub -- **Contribution process:** Guidelines documented in CONTRIBUTING.md within the repository +- **Version control:** {% tool "git" %}, with the main repository hosted on [GitHub][PICONGPU_GITHUB] +- **Contribution process:** Guidelines documented in [CONTRIBUTING.md][PICONGPU_CONTRIBUTING] within the repository - **Code review:** Changes reviewed before integration to maintain quality The most distinctive aspect of PIConGPU's quality infrastructure is its extensive continuous integration setup. -The CI workflow moves code from GitHub via GitLab.com to HZDR's local GitLab CI infrastructure, then pushes all pipeline results back to GitHub pull requests. +The CI workflow moves code from {% tool "github" %} via [GitLab.com][GITLAB] to HZDR's local GitLab CI infrastructure, then pushes all pipeline results back to GitHub pull requests. This complex pipeline: - Checks static code quality through linting and code style enforcement @@ -83,8 +84,8 @@ The code also integrates with multiple HPC compiler and hardware vendor CI/CD te The PIConGPU project provides multiple resources to help newcomers: -- Online videos and comprehensive onboarding documents introducing the software's purpose and architecture -- A Mattermost team where developers and users can ask questions and share solutions +- [Online videos and comprehensive onboarding documents][PICONGPU_DOCS] introducing the software's purpose and architecture +- A [Mattermost][TOOL_MATTERMOST] team where developers and users can ask questions and share solutions - Personnel exchange visits allowing researchers to work directly with core developers The typical user journey starts with learning to run existing simulation setups and modify parameters. @@ -96,9 +97,9 @@ Advanced users eventually contribute new physical models or extend the code's ca PIConGPU works well with industry-standard performance profiling tools including: -- **NVIDIA Nsight** for NVIDIA GPUs -- **AMD Omniperf** for AMD GPUs -- **Score-P** for general parallel performance analysis +- **[NVIDIA Nsight][NVIDIA_NSIGHT]** for NVIDIA GPUs +- **[AMD Omniperf][AMD_OMNIPERF]** for AMD GPUs +- **[Score-P][SCOREP]** for general parallel performance analysis The highly asynchronous nature of particle-in-cell algorithms makes profiling challenging, as GPU operations may overlap with CPU work and communication in complex ways. Despite these challenges, detailed profiling helps developers identify bottlenecks and optimize critical code paths. @@ -106,15 +107,17 @@ Despite these challenges, detailed profiling helps developers identify bottlenec ## FAIR & Open ### Transparent development with strong licensing and citability -PIConGPU exemplifies FAIR research software principles: +PIConGPU adheres to the [FAIR principles for research software][FAIR_PRINCIPLES]: + +* **Findable**: The code is openly available on [GitHub][PICONGPU_GITHUB] with clear versioning, and major releases are archived with assigned DOIs for academic referencing. + +* **Accessible**: Licensed under [GPLv3+][LICENSE_GPL3] for the main code, [LGPLv3+][LICENSE_LGPL3] for libraries, and [CC-BY 4.0][LICENSE_CCBY] for documentation, facilitating open access and wide adoption. -- **Repository:** Openly available on GitHub (https://github.com/ComputationalRadiationPhysics/picongpu) -- **License:** GPLv3+ for the main code, LGPLv3+ for libraries, and CC-BY 4.0 for documentation -- **Citeable:** Yes, with DOI 10.5281/zenodo.591746 -- **Discussion community:** Via GitHub Issues for transparent community engagement -- **Software Quality Checklist:** Commit Rules documented at https://github.com/ComputationalRadiationPhysics/picongpu/blob/dev/docs/COMMIT.md +* **Interoperable**: Designed to work with standard HPC frameworks and supports multiple accelerator backends through [alpaka][ALPAKA], enabling integration across diverse computing environments. -Development happens openly, with discussions about features, bugs, and design decisions occurring in public GitHub issues. The GPL licensing ensures that improvements benefit the entire community rather than being captured in proprietary forks. +* **Reusable**: PIConGPU provides well-documented, tested components with clear [contribution guidelines][PICONGPU_CONTRIBUTING] and [commit rules][PICONGPU_COMMIT_RULES], enabling reuse and easy adaptation across multiple research projects. + +Development happens openly, with discussions about features, bugs, and design decisions occurring in public [GitHub Issues][PICONGPU_ISSUES]. The GPL licensing ensures that improvements benefit the entire community rather than being captured in proprietary forks. ## Documentation ### Multi-level resources serving diverse user needs @@ -125,7 +128,7 @@ PIConGPU provides documentation organized for different audiences: - **Developer documentation:** Code structure explanations and contribution guidelines - **Maintainer documentation:** Release processes and long-term decisions on code structure -The primary documentation lives at https://picongpu.readthedocs.io, using Read the Docs for versioned, searchable access. +The primary documentation lives at , using [Read the Docs][READTHEDOCS] for versioned, searchable access. Documentation is mainly written and maintained by the core development team, with contributions often arriving as part of pull requests when new features are added. ## Sustainability @@ -151,8 +154,35 @@ The combination of permanent funding, experienced maintainers, and established c ## References -- PIConGPU GitHub Repository: https://github.com/ComputationalRadiationPhysics/picongpu -- Main publication: Bussmann, M., et al. (2013). Radiative signatures of the relativistic Kelvin-Helmholtz instability. https://doi.org/10.1145/2503210.2504564 -- PIConGPU Documentation: https://picongpu.readthedocs.io -- Software Citation: DOI 10.5281/zenodo.591746 - +- PIConGPU GitHub Repository: +- Main publication: Bussmann, M., et al. (2013). Radiative signatures of the relativistic Kelvin-Helmholtz instability. +- PIConGPU Documentation: +- Software Citation: [DOI 10.5281/zenodo.591746](https://doi.org/10.5281/zenodo.591746) + + +[HZDR]: https://www.hzdr.de/ +[LANGUAGE_CPP]: https://en.cppreference.com/w/cpp +[LANGUAGE_CPP20]: https://en.cppreference.com/w/cpp/20 +[LANGUAGE_PYTHON]: https://www.python.org/ +[TOOL_MATTERMOST]: https://mattermost.com/ +[ALPAKA]: https://alpaka.readthedocs.io/ +[OPENPMD]: https://openpmd-api.readthedocs.io/ +[ADIOS2]: https://adios2.readthedocs.io/ +[HDF5]: https://www.hdfgroup.org/solutions/hdf5/ +[PICONGPU_GITHUB]: https://github.com/ComputationalRadiationPhysics/picongpu +[PICONGPU_CONTRIBUTING]: https://github.com/ComputationalRadiationPhysics/picongpu/blob/dev/CONTRIBUTING.md +[PICONGPU_COMMIT_RULES]: https://github.com/ComputationalRadiationPhysics/picongpu/blob/dev/docs/COMMIT.md +[PICONGPU_ISSUES]: https://github.com/ComputationalRadiationPhysics/picongpu/issues +[PICONGPU_DOCS]: https://picongpu.readthedocs.io +[GITLAB]: https://gitlab.com +[NVIDIA_NSIGHT]: https://developer.nvidia.com/nsight-systems +[AMD_OMNIPERF]: https://rocm.docs.amd.com/projects/omniperf/en/latest/ +[SCOREP]: https://www.vi-hps.org/projects/score-p/ +[FAIR_PRINCIPLES]: https://www.nature.com/articles/s41597-022-01710-x +[LICENSE_GPL3]: https://www.gnu.org/licenses/gpl-3.0.en.html +[LICENSE_LGPL3]: https://www.gnu.org/licenses/lgpl-3.0.en.html +[LICENSE_CCBY]: https://creativecommons.org/licenses/by/4.0/ +[READTHEDOCS]: https://readthedocs.org/ +[PLASMA_PHYSICS]: https://en.wikipedia.org/wiki/Plasma_(physics) +[LASER_PLASMA_ACCEL]: https://en.wikipedia.org/wiki/Laser-plasma_accelerator +[HPC_ARCHS]: https://www.top500.org/ From cb3f6c3dd2b0e5324547202bc1f315eb7f082d05 Mon Sep 17 00:00:00 2001 From: srghosh56 Date: Mon, 9 Feb 2026 13:00:33 +0100 Subject: [PATCH 39/47] Address invalid tool id error for hip --- .../research_software_stories/alpaka_research_software_story.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/research_software_stories/alpaka_research_software_story.md b/pages/research_software_stories/alpaka_research_software_story.md index e3987b84..549a175e 100644 --- a/pages/research_software_stories/alpaka_research_software_story.md +++ b/pages/research_software_stories/alpaka_research_software_story.md @@ -60,7 +60,7 @@ Compiling the same source with different backends produces different optimized i alpaka's dependencies vary based on the selected compilation backend: - **{% tool "cuda" %}:** Required when compiling for NVIDIA GPUs -- **{% tool "hip" %}/{% tool "rocm" %}:** Required when targeting AMD GPUs +- **[HIP][HIP]/{% tool "rocm" %}:** Required when targeting AMD GPUs - **[OneAPI SYCL][SYCL]:** Required for Intel GPUs or optionally CPUs - **{% tool "openmp" %}:** Used for thread-parallel CPU execution - **[TBB (Threading Building Blocks)][TBB]:** Alternative for task-based CPU parallelism From 10a6936ab35b05512806510b19418bad26abbc18 Mon Sep 17 00:00:00 2001 From: srghosh56 Date: Mon, 9 Feb 2026 13:07:17 +0100 Subject: [PATCH 40/47] Address invalid tool id error for hip for other instances --- .../alpaka_research_software_story.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/research_software_stories/alpaka_research_software_story.md b/pages/research_software_stories/alpaka_research_software_story.md index 549a175e..ba72985c 100644 --- a/pages/research_software_stories/alpaka_research_software_story.md +++ b/pages/research_software_stories/alpaka_research_software_story.md @@ -49,7 +49,7 @@ alpaka is classified as Tier 3 Research Software Infrastructure (Services includ - **Language:** Modern [C++20][LANGUAGE_CPP20] for expressive template metaprogramming - **Codebase size:** Approximately 45k lines of code (30k in core library headers) and 10k lines of comments - **Architecture:** Header-only library that doesn't "run" but translates at compile time -- **Compilation approach:** Compiler processes templates to generate hardware-specific code ({% tool "cuda" %}, {% tool "hip" %}/{% tool "rocm" %}, {% tool "openmp" %}, etc.) +- **Compilation approach:** Compiler processes templates to generate hardware-specific code ({% tool "cuda" %}, HIP/{% tool "rocm" %}, {% tool "openmp" %}, etc.) - **Performance:** Zero runtime overhead compared to hand-written platform-specific code When developers write alpaka-based algorithms and compile with a specific backend selected, the compiler produces native code for that platform. @@ -127,7 +127,7 @@ alpaka adheres to the [FAIR principles for research software][FAIR_PRINCIPLES]: * **Accessible**: Core licensed under [MPLv2 (Mozilla Public License v2.0)][LICENSE_MPL2], examples under [ISC (Internet Systems Consortium)][LICENSE_ISC] allowing incorporation into projects with different licensing requirements; documentation under [CC-BY 4.0][LICENSE_CCBY]. -* **Interoperable**: Designed to work seamlessly with standard HPC frameworks and supports multiple hardware backends ({% tool "cuda" %}, {% tool "hip" %}, {% tool "openmp" %}, [SYCL][SYCL]), enabling integration across diverse computing environments. +* **Interoperable**: Designed to work seamlessly with standard HPC frameworks and supports multiple hardware backends ({% tool "cuda" %}, HIP, {% tool "openmp" %}, [SYCL][SYCL]), enabling integration across diverse computing environments. * **Reusable**: alpaka provides well-documented, tested components with comprehensive [coding guidelines][ALPAKA_STYLE] and clear [contribution process][ALPAKA_CONTRIBUTING], enabling reuse and easy adaptation across multiple research projects. From a5b550cb39fbe7c57af877c3542ec46160f21c88 Mon Sep 17 00:00:00 2001 From: srghosh56 Date: Mon, 9 Feb 2026 13:09:10 +0100 Subject: [PATCH 41/47] Address invalid tool id error for hip for other instances --- .../alpaka_research_software_story.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/research_software_stories/alpaka_research_software_story.md b/pages/research_software_stories/alpaka_research_software_story.md index ba72985c..dd7c8824 100644 --- a/pages/research_software_stories/alpaka_research_software_story.md +++ b/pages/research_software_stories/alpaka_research_software_story.md @@ -49,7 +49,7 @@ alpaka is classified as Tier 3 Research Software Infrastructure (Services includ - **Language:** Modern [C++20][LANGUAGE_CPP20] for expressive template metaprogramming - **Codebase size:** Approximately 45k lines of code (30k in core library headers) and 10k lines of comments - **Architecture:** Header-only library that doesn't "run" but translates at compile time -- **Compilation approach:** Compiler processes templates to generate hardware-specific code ({% tool "cuda" %}, HIP/{% tool "rocm" %}, {% tool "openmp" %}, etc.) +- **Compilation approach:** Compiler processes templates to generate hardware-specific code ({% tool "cuda" %}, HIP/ROCm, {% tool "openmp" %}, etc.) - **Performance:** Zero runtime overhead compared to hand-written platform-specific code When developers write alpaka-based algorithms and compile with a specific backend selected, the compiler produces native code for that platform. @@ -60,7 +60,7 @@ Compiling the same source with different backends produces different optimized i alpaka's dependencies vary based on the selected compilation backend: - **{% tool "cuda" %}:** Required when compiling for NVIDIA GPUs -- **[HIP][HIP]/{% tool "rocm" %}:** Required when targeting AMD GPUs +- **[HIP][HIP]/ROCm:** Required when targeting AMD GPUs - **[OneAPI SYCL][SYCL]:** Required for Intel GPUs or optionally CPUs - **{% tool "openmp" %}:** Used for thread-parallel CPU execution - **[TBB (Threading Building Blocks)][TBB]:** Alternative for task-based CPU parallelism From 4ec1f9953b44ad5cf02ead9e72a2a7463cb63397 Mon Sep 17 00:00:00 2001 From: srghosh56 Date: Mon, 9 Feb 2026 13:10:51 +0100 Subject: [PATCH 42/47] Address invalid tool id error for openmp --- .../alpaka_research_software_story.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pages/research_software_stories/alpaka_research_software_story.md b/pages/research_software_stories/alpaka_research_software_story.md index dd7c8824..e69d1e29 100644 --- a/pages/research_software_stories/alpaka_research_software_story.md +++ b/pages/research_software_stories/alpaka_research_software_story.md @@ -49,7 +49,7 @@ alpaka is classified as Tier 3 Research Software Infrastructure (Services includ - **Language:** Modern [C++20][LANGUAGE_CPP20] for expressive template metaprogramming - **Codebase size:** Approximately 45k lines of code (30k in core library headers) and 10k lines of comments - **Architecture:** Header-only library that doesn't "run" but translates at compile time -- **Compilation approach:** Compiler processes templates to generate hardware-specific code ({% tool "cuda" %}, HIP/ROCm, {% tool "openmp" %}, etc.) +- **Compilation approach:** Compiler processes templates to generate hardware-specific code ({% tool "cuda" %}, HIP/ROCm, OpenMP, etc.) - **Performance:** Zero runtime overhead compared to hand-written platform-specific code When developers write alpaka-based algorithms and compile with a specific backend selected, the compiler produces native code for that platform. @@ -62,7 +62,7 @@ alpaka's dependencies vary based on the selected compilation backend: - **{% tool "cuda" %}:** Required when compiling for NVIDIA GPUs - **[HIP][HIP]/ROCm:** Required when targeting AMD GPUs - **[OneAPI SYCL][SYCL]:** Required for Intel GPUs or optionally CPUs -- **{% tool "openmp" %}:** Used for thread-parallel CPU execution +- **OpenMP:** Used for thread-parallel CPU execution - **[TBB (Threading Building Blocks)][TBB]:** Alternative for task-based CPU parallelism This backend architecture means deploying alpaka-based code requires only the specific toolchain relevant to the target hardware, keeping deployment practical despite broad platform support. @@ -127,7 +127,7 @@ alpaka adheres to the [FAIR principles for research software][FAIR_PRINCIPLES]: * **Accessible**: Core licensed under [MPLv2 (Mozilla Public License v2.0)][LICENSE_MPL2], examples under [ISC (Internet Systems Consortium)][LICENSE_ISC] allowing incorporation into projects with different licensing requirements; documentation under [CC-BY 4.0][LICENSE_CCBY]. -* **Interoperable**: Designed to work seamlessly with standard HPC frameworks and supports multiple hardware backends ({% tool "cuda" %}, HIP, {% tool "openmp" %}, [SYCL][SYCL]), enabling integration across diverse computing environments. +* **Interoperable**: Designed to work seamlessly with standard HPC frameworks and supports multiple hardware backends ({% tool "cuda" %}, HIP, OpenMP, [SYCL][SYCL]), enabling integration across diverse computing environments. * **Reusable**: alpaka provides well-documented, tested components with comprehensive [coding guidelines][ALPAKA_STYLE] and clear [contribution process][ALPAKA_CONTRIBUTING], enabling reuse and easy adaptation across multiple research projects. From 90033b5068f95cd51a4f88b62ddb282b20c9e4f2 Mon Sep 17 00:00:00 2001 From: srghosh56 Date: Mon, 9 Feb 2026 13:14:43 +0100 Subject: [PATCH 43/47] Address invalid tool id errors --- .../picongpu_research_software_story.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/research_software_stories/picongpu_research_software_story.md b/pages/research_software_stories/picongpu_research_software_story.md index 60d81d0c..663c85c8 100644 --- a/pages/research_software_stories/picongpu_research_software_story.md +++ b/pages/research_software_stories/picongpu_research_software_story.md @@ -53,7 +53,7 @@ PIConGPU builds on several key dependencies: - **[alpaka][ALPAKA]**: Core abstraction library enabling portability across different accelerators - **{% tool "cmake" %}:** Build configuration and management -- **{% tool "mpi" %}:** Parallel execution across multiple nodes +- **MPI:** Parallel execution across multiple nodes - **{% tool "boost" %}:** Essential C++ utilities and data structures - **[OpenPMD-api][OPENPMD]:** HPC IO abstraction library for parallel [ADIOS2][ADIOS2] or [HDF5][HDF5] From 690076a8b5da500d2bb9d459d70ec7ada06b91c0 Mon Sep 17 00:00:00 2001 From: srghosh56 Date: Mon, 9 Feb 2026 13:16:36 +0100 Subject: [PATCH 44/47] Address invalid tool id error for boost --- .../picongpu_research_software_story.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/research_software_stories/picongpu_research_software_story.md b/pages/research_software_stories/picongpu_research_software_story.md index 663c85c8..8407e438 100644 --- a/pages/research_software_stories/picongpu_research_software_story.md +++ b/pages/research_software_stories/picongpu_research_software_story.md @@ -54,7 +54,7 @@ PIConGPU builds on several key dependencies: - **[alpaka][ALPAKA]**: Core abstraction library enabling portability across different accelerators - **{% tool "cmake" %}:** Build configuration and management - **MPI:** Parallel execution across multiple nodes -- **{% tool "boost" %}:** Essential C++ utilities and data structures +- **Boost:** Essential C++ utilities and data structures - **[OpenPMD-api][OPENPMD]:** HPC IO abstraction library for parallel [ADIOS2][ADIOS2] or [HDF5][HDF5] The focused dependency set reflects a deliberate strategy of relying on well-established, widely-available libraries rather than accumulating numerous smaller dependencies. From 701bb7410b35181771708e3250fc14f6adc8cc5a Mon Sep 17 00:00:00 2001 From: srghosh56 Date: Mon, 9 Feb 2026 13:33:54 +0100 Subject: [PATCH 45/47] Fix all invalid tool id errors --- .../alpaka_research_software_story.md | 9 +++++---- .../picongpu_research_software_story.md | 6 ++++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/pages/research_software_stories/alpaka_research_software_story.md b/pages/research_software_stories/alpaka_research_software_story.md index e69d1e29..e638a8fe 100644 --- a/pages/research_software_stories/alpaka_research_software_story.md +++ b/pages/research_software_stories/alpaka_research_software_story.md @@ -49,7 +49,7 @@ alpaka is classified as Tier 3 Research Software Infrastructure (Services includ - **Language:** Modern [C++20][LANGUAGE_CPP20] for expressive template metaprogramming - **Codebase size:** Approximately 45k lines of code (30k in core library headers) and 10k lines of comments - **Architecture:** Header-only library that doesn't "run" but translates at compile time -- **Compilation approach:** Compiler processes templates to generate hardware-specific code ({% tool "cuda" %}, HIP/ROCm, OpenMP, etc.) +- **Compilation approach:** Compiler processes templates to generate hardware-specific code ({% tool "cuda" %}, [HIP][HIP]/[ROCm][ROCm], [OpenMP][OPENMP], etc.) - **Performance:** Zero runtime overhead compared to hand-written platform-specific code When developers write alpaka-based algorithms and compile with a specific backend selected, the compiler produces native code for that platform. @@ -60,9 +60,9 @@ Compiling the same source with different backends produces different optimized i alpaka's dependencies vary based on the selected compilation backend: - **{% tool "cuda" %}:** Required when compiling for NVIDIA GPUs -- **[HIP][HIP]/ROCm:** Required when targeting AMD GPUs +- **[HIP][HIP]/[ROCm][ROCm]:** Required when targeting AMD GPUs - **[OneAPI SYCL][SYCL]:** Required for Intel GPUs or optionally CPUs -- **OpenMP:** Used for thread-parallel CPU execution +- **[OpenMP][OPENMP]:** Used for thread-parallel CPU execution - **[TBB (Threading Building Blocks)][TBB]:** Alternative for task-based CPU parallelism This backend architecture means deploying alpaka-based code requires only the specific toolchain relevant to the target hardware, keeping deployment practical despite broad platform support. @@ -127,7 +127,7 @@ alpaka adheres to the [FAIR principles for research software][FAIR_PRINCIPLES]: * **Accessible**: Core licensed under [MPLv2 (Mozilla Public License v2.0)][LICENSE_MPL2], examples under [ISC (Internet Systems Consortium)][LICENSE_ISC] allowing incorporation into projects with different licensing requirements; documentation under [CC-BY 4.0][LICENSE_CCBY]. -* **Interoperable**: Designed to work seamlessly with standard HPC frameworks and supports multiple hardware backends ({% tool "cuda" %}, HIP, OpenMP, [SYCL][SYCL]), enabling integration across diverse computing environments. +* **Interoperable**: Designed to work seamlessly with standard HPC frameworks and supports multiple hardware backends ({% tool "cuda" %}, [HIP][HIP], [OpenMP][OPENMP], [SYCL][SYCL]), enabling integration across diverse computing environments. * **Reusable**: alpaka provides well-documented, tested components with comprehensive [coding guidelines][ALPAKA_STYLE] and clear [contribution process][ALPAKA_CONTRIBUTING], enabling reuse and easy adaptation across multiple research projects. @@ -205,3 +205,4 @@ The combination of institutional support, dual-institution governance, and estab [LICENSE_ISC]: https://opensource.org/license/isc-license-txt [LICENSE_CCBY]: https://creativecommons.org/licenses/by/4.0/ [READTHEDOCS]: https://readthedocs.org/ +[ROCm]: https://rocm.docs.amd.com/en/latest/ \ No newline at end of file diff --git a/pages/research_software_stories/picongpu_research_software_story.md b/pages/research_software_stories/picongpu_research_software_story.md index 8407e438..46e893f6 100644 --- a/pages/research_software_stories/picongpu_research_software_story.md +++ b/pages/research_software_stories/picongpu_research_software_story.md @@ -53,8 +53,8 @@ PIConGPU builds on several key dependencies: - **[alpaka][ALPAKA]**: Core abstraction library enabling portability across different accelerators - **{% tool "cmake" %}:** Build configuration and management -- **MPI:** Parallel execution across multiple nodes -- **Boost:** Essential C++ utilities and data structures +- **[MPI][MPI]:** Parallel execution across multiple nodes +- **[Boost][Boost]:** Essential C++ utilities and data structures - **[OpenPMD-api][OPENPMD]:** HPC IO abstraction library for parallel [ADIOS2][ADIOS2] or [HDF5][HDF5] The focused dependency set reflects a deliberate strategy of relying on well-established, widely-available libraries rather than accumulating numerous smaller dependencies. @@ -186,3 +186,5 @@ The combination of permanent funding, experienced maintainers, and established c [PLASMA_PHYSICS]: https://en.wikipedia.org/wiki/Plasma_(physics) [LASER_PLASMA_ACCEL]: https://en.wikipedia.org/wiki/Laser-plasma_accelerator [HPC_ARCHS]: https://www.top500.org/ +[MPI]: https://www.open-mpi.org/doc/ +[Boost]: https://www.boost.org/libraries/latest/grid/ \ No newline at end of file From 37d8f06fb88da4384cb8c579b46182ade1b5a5cc Mon Sep 17 00:00:00 2001 From: srghosh56 Date: Tue, 10 Feb 2026 14:22:51 +0100 Subject: [PATCH 46/47] Add contributors info and links for online resources --- .../alpaka_research_software_story.md | 10 ++++++---- .../picongpu_research_software_story.md | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/pages/research_software_stories/alpaka_research_software_story.md b/pages/research_software_stories/alpaka_research_software_story.md index e638a8fe..89dd7c50 100644 --- a/pages/research_software_stories/alpaka_research_software_story.md +++ b/pages/research_software_stories/alpaka_research_software_story.md @@ -2,7 +2,7 @@ title: "Research Software Story - alpaka" search_exclude: false description: "alpaka is a header-only C++ template library that enables writing platform and performance portable applications. It can use CPUs with sequential and thread parallel code, GPUs via multiple programming paradigms and also FPGAs." -contributors: ["Guido Juckeland", "Srobona Ghosh"] +contributors: ["Guido Juckeland", "Srobona Ghosh", "René Widera", "Simeon Ehrig"] page_id: alpaka type: research_software_story --- @@ -38,7 +38,7 @@ The development team combines computer scientists and physicists, with work main - CMS experiment and other scientific collaborations requiring performance portability - Users comfortable with parallel programming concepts and template-heavy C++ code -The community maintains connection through [online videos and onboarding documents][ALPAKA_DOCS], a [Mattermost][TOOL_MATTERMOST] team with core users, and personnel exchange visits between institutions. +The community maintains connection through [online videos][1][2] and [onboarding documents][ALPAKA_DOCS], a [Mattermost][TOOL_MATTERMOST] team with core users, and personnel exchange visits between institutions. ## Technical Aspects ### Header-only C++ template library for compile-time code generation @@ -95,7 +95,7 @@ Onboarding new alpaka developers requires attention to the specialized C++ templ The process is highly individualized, tailored to each contributor's background and the specific areas where they'll work. **Resources for developers:** -- Online videos introducing alpaka's architecture and design philosophy +- [Online videos][1][2] introducing alpaka's architecture and design philosophy - [Written documentation][ALPAKA_DOCS] explaining the template machinery - [Mattermost][TOOL_MATTERMOST] team for real-time support from experienced developers - Personnel exchange visits for intensive knowledge transfer through pair programming @@ -205,4 +205,6 @@ The combination of institutional support, dual-institution governance, and estab [LICENSE_ISC]: https://opensource.org/license/isc-license-txt [LICENSE_CCBY]: https://creativecommons.org/licenses/by/4.0/ [READTHEDOCS]: https://readthedocs.org/ -[ROCm]: https://rocm.docs.amd.com/en/latest/ \ No newline at end of file +[ROCm]: https://rocm.docs.amd.com/en/latest/ +[1]: https://m.youtube.com/playlist?list=PLVyQXsMxRYdEoahVQAqf9_rewGj3VkXb4 +[2]: https://m.youtube.com/playlist?list=PLUGnsLpYzQZsEqvH675ghq3ibACjFIKQh \ No newline at end of file diff --git a/pages/research_software_stories/picongpu_research_software_story.md b/pages/research_software_stories/picongpu_research_software_story.md index 46e893f6..2886b294 100644 --- a/pages/research_software_stories/picongpu_research_software_story.md +++ b/pages/research_software_stories/picongpu_research_software_story.md @@ -2,7 +2,7 @@ title: "Research Software Story - PIConGPU" search_exclude: false description: "PIConGPU is used to simulate nonlinear plasma physics, from laser plasma accelerators to astrophysics research." -contributors: ["Guido Juckeland", "Srobona Ghosh"] +contributors: ["Guido Juckeland", "Srobona Ghosh", "René Widera", "Richard Pausch"] page_id: picongpu type: research_software_story --- From fd1ba75a858187b3ee4b69ea1efd510e5a553af4 Mon Sep 17 00:00:00 2001 From: srghosh56 Date: Tue, 10 Feb 2026 15:07:50 +0100 Subject: [PATCH 47/47] Fix links for the online videos for alpaka --- .../alpaka_research_software_story.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/pages/research_software_stories/alpaka_research_software_story.md b/pages/research_software_stories/alpaka_research_software_story.md index 89dd7c50..4138a151 100644 --- a/pages/research_software_stories/alpaka_research_software_story.md +++ b/pages/research_software_stories/alpaka_research_software_story.md @@ -38,7 +38,7 @@ The development team combines computer scientists and physicists, with work main - CMS experiment and other scientific collaborations requiring performance portability - Users comfortable with parallel programming concepts and template-heavy C++ code -The community maintains connection through [online videos][1][2] and [onboarding documents][ALPAKA_DOCS], a [Mattermost][TOOL_MATTERMOST] team with core users, and personnel exchange visits between institutions. +The community maintains connection through [online videos](https://m.youtube.com/playlist?list=PLVyQXsMxRYdEoahVQAqf9_rewGj3VkXb4) ([alternative](https://m.youtube.com/playlist?list=PLUGnsLpYzQZsEqvH675ghq3ibACjFIKQh)) and [onboarding documents][ALPAKA_DOCS], a [Mattermost][TOOL_MATTERMOST] team with core users, and personnel exchange visits between institutions. ## Technical Aspects ### Header-only C++ template library for compile-time code generation @@ -95,7 +95,7 @@ Onboarding new alpaka developers requires attention to the specialized C++ templ The process is highly individualized, tailored to each contributor's background and the specific areas where they'll work. **Resources for developers:** -- [Online videos][1][2] introducing alpaka's architecture and design philosophy +- [Online videos](https://m.youtube.com/playlist?list=PLVyQXsMxRYdEoahVQAqf9_rewGj3VkXb4) ([alternative](https://m.youtube.com/playlist?list=PLUGnsLpYzQZsEqvH675ghq3ibACjFIKQh)) introducing alpaka's architecture and design philosophy - [Written documentation][ALPAKA_DOCS] explaining the template machinery - [Mattermost][TOOL_MATTERMOST] team for real-time support from experienced developers - Personnel exchange visits for intensive knowledge transfer through pair programming @@ -205,6 +205,4 @@ The combination of institutional support, dual-institution governance, and estab [LICENSE_ISC]: https://opensource.org/license/isc-license-txt [LICENSE_CCBY]: https://creativecommons.org/licenses/by/4.0/ [READTHEDOCS]: https://readthedocs.org/ -[ROCm]: https://rocm.docs.amd.com/en/latest/ -[1]: https://m.youtube.com/playlist?list=PLVyQXsMxRYdEoahVQAqf9_rewGj3VkXb4 -[2]: https://m.youtube.com/playlist?list=PLUGnsLpYzQZsEqvH675ghq3ibACjFIKQh \ No newline at end of file +[ROCm]: https://rocm.docs.amd.com/en/latest/ \ No newline at end of file