diff --git a/.github/ISSUE_TEMPLATE/submit_tool.yml b/.github/ISSUE_TEMPLATE/submit_tool.yml index 8a578777..ceeabbef 100644 --- a/.github/ISSUE_TEMPLATE/submit_tool.yml +++ b/.github/ISSUE_TEMPLATE/submit_tool.yml @@ -72,17 +72,17 @@ body: id: tool_type attributes: label: Tool category - description: Specific use and type of this tool + description: Specific use and type of this tool. For more details about the categories, please visit the https://arewesafetycriticalyet.org/tooling/tools-list website. options: - "code-coverage" - "requirements-traceability" - "compiler" - - "test-runner" + - "testing" - "formal-verification" - "static-analysis" - - "tests-generation" - "package-manager" - - "profiler" - - "debugger" + - "profiling" + - "debugging" + - "other" validations: required: false diff --git a/arewesafetycriticalyet.org/src/components/ToolsList/available-tools.json b/arewesafetycriticalyet.org/src/components/ToolsList/available-tools.json index e8571606..40cb03ff 100644 --- a/arewesafetycriticalyet.org/src/components/ToolsList/available-tools.json +++ b/arewesafetycriticalyet.org/src/components/ToolsList/available-tools.json @@ -70,7 +70,7 @@ }, { "name": "cargo-nextest", - "type": "test-runner", + "type": "testing", "url": "https://nexte.st", "description": "Next-generation test runner for Rust", "license": "Apache 2.0 & MIT" @@ -98,7 +98,7 @@ }, { "name": "defmt-test", - "type": "test-runner", + "type": "testing", "url": "https://github.com/knurling-rs/defmt", "vendor": "Ferrous Systems GmbH", "description": "Embedded testing framework", @@ -132,7 +132,7 @@ }, { "name": "flamegraph", - "type": "profiler", + "type": "profiling", "url": "https://github.com/flamegraph-rs/flamegraph", "description": "Flame graph profiler for Rust", "license": "Apache 2.0 & MIT" @@ -170,7 +170,7 @@ }, { "name": "Lauterbach Trace32 Debugger", - "type": "debugger", + "type": "debugging", "url": "https://www.lauterbach.com/", "vendor": "Lauterbach", "description": "Lauterbach‘s TRACE32® tools are a suite of leading-edge hardware and software components that enables you to analyze, optimize and certify all kinds of embedded systems.", @@ -193,7 +193,7 @@ }, { "name": "PLS UDE", - "type": "debugger", + "type": "debugging", "url": "https://www.pls-mc.com/products/universal-debug-engine/", "vendor": "PLS Programmierbare Logik & Systeme GmbH", "description": "UDE® Universal Debug Engine is the powerful development tool for debugging, tracing, and testing embedded software for a wide range of multicore SoCs and microcontrollers.", @@ -218,7 +218,7 @@ }, { "name": "TESSY", - "type": "test-runner", + "type": "testing", "url": "https://www.razorcat.com/en/product-tessy.html", "vendor": "Razorcat", "description": "Qualified unit testing tool", @@ -236,7 +236,7 @@ }, { "name": "VectorCast", - "type": "test-runner", + "type": "testing", "url": "https://www.vector.com/us/en/products/products-a-z/software/vectorcast/", "vendor": "Vector Software", "description": "Qualified test runner and generator for safety-critical applications", diff --git a/arewesafetycriticalyet.org/src/components/ToolsList/toolsList.tsx b/arewesafetycriticalyet.org/src/components/ToolsList/toolsList.tsx index 503407c9..8f70f09d 100644 --- a/arewesafetycriticalyet.org/src/components/ToolsList/toolsList.tsx +++ b/arewesafetycriticalyet.org/src/components/ToolsList/toolsList.tsx @@ -8,10 +8,10 @@ import raw_tools_list from "./available-tools.json"; type ToolType = | "package-manager" | "compiler" - | "test-runner" + | "testing" | "formal-verification" - | "profiler" - | "debugger" + | "profiling" + | "debugging" | "requirements-traceability" | "static-analysis" | "code-coverage" @@ -50,17 +50,22 @@ type ToolsList = { tools: ToolEntry[]; }; -const TOOL_TYPE_LABEL: Record = { - "package-manager": "Package Managers", - compiler: "Compilers", - "test-runner": "Test Runners", - "formal-verification": "Formal Verification", - profiler: "Profilers", - debugger: "Debuggers", - "requirements-traceability": "Requirements Traceability", - "static-analysis": "Static Analysis", - "code-coverage": "Code Coverage", - other: "Other", +type ToolCategory = { + title: string, + description: string, +} + +const TOOL_TYPE_LABEL: Record = { + "package-manager": { title: "Package Managers", description: "Tools for automating the management of a project's dependencies, its compilation and linking." }, + compiler: { title: "Compilers", description: "Tools for transforming source code into either executable binaries or dynamic libraries." }, + testing: { title: "Testing", description: "Tools for evaluating the correctness of a program under a finite set of scenarios through its execution." }, + "formal-verification": { title: "Formal Verification", description: "Tools for obtaining mathematical assurance of the behavior of the program. Such as, for example, its required level of functional safety." }, + profiling: { title: "Profiling", description: "Tools for measurement of program performance along different types of resources." }, + debugging: { title: "Debugging", description: "Tools for interactively inspecting the dynamic behavior of a program." }, + "requirements-traceability": { title: "Requirements Traceability", description: "Tools to manage traces between requirements and related source and/or object code." }, + "static-analysis": { title: "Static Analysis", description: "Tools for analyzing source code without executing it." }, + "code-coverage": { title: "Code Coverage", description: "Tools for calculating the quality of a test suite, under the metric of code coverage." }, + other: { title: "Other", description: "Tools that fall under none of the other categories." }, }; const TOOL_TYPE_ORDER: ToolType[] = [ @@ -68,10 +73,10 @@ const TOOL_TYPE_ORDER: ToolType[] = [ "compiler", "static-analysis", "formal-verification", - "test-runner", + "testing", "code-coverage", - "debugger", - "profiler", + "debugging", + "profiling", "requirements-traceability", "other", ]; @@ -172,9 +177,9 @@ export default function ToolsList(): React.ReactElement { {TOOL_TYPE_ORDER.filter( (type) => (grouped_tools.get(type) ?? []).length > 0, ).map((type) => { - const anchor = "#" + TOOL_TYPE_LABEL[type] + const anchor = "#" + TOOL_TYPE_LABEL[type].title return ( -
  • {TOOL_TYPE_LABEL[type]}
  • +
  • {TOOL_TYPE_LABEL[type].title}
  • ) })} @@ -212,8 +217,11 @@ export default function ToolsList(): React.ReactElement { const toolsOfType = grouped_tools.get(type) ?? []; return ( -
    -

    {TOOL_TYPE_LABEL[type]}

    +
    +

    {TOOL_TYPE_LABEL[type].title}

    + +

    {TOOL_TYPE_LABEL[type].description}

    +
    Tool