Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .github/ISSUE_TEMPLATE/submit_tool.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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",
Expand Down Expand Up @@ -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"
Expand Down Expand Up @@ -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.",
Expand All @@ -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.",
Expand All @@ -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",
Expand All @@ -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",
Expand Down
50 changes: 29 additions & 21 deletions arewesafetycriticalyet.org/src/components/ToolsList/toolsList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -50,28 +50,33 @@ type ToolsList = {
tools: ToolEntry[];
};

const TOOL_TYPE_LABEL: Record<ToolType, string> = {
"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<ToolType, ToolCategory> = {
"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[] = [
"package-manager",
"compiler",
"static-analysis",
"formal-verification",
"test-runner",
"testing",
"code-coverage",
"debugger",
"profiler",
"debugging",
"profiling",
"requirements-traceability",
"other",
];
Expand Down Expand Up @@ -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 (
<li><a href={anchor} >{TOOL_TYPE_LABEL[type]}</a></li>
<li><a href={anchor} >{TOOL_TYPE_LABEL[type].title}</a></li>
)
})}
</ul>
Expand Down Expand Up @@ -212,8 +217,11 @@ export default function ToolsList(): React.ReactElement {
const toolsOfType = grouped_tools.get(type) ?? [];

return (
<section id={TOOL_TYPE_LABEL[type]} key={type}>
<h2 className={styles.typeHeading}>{TOOL_TYPE_LABEL[type]}</h2>
<section id={TOOL_TYPE_LABEL[type].title} key={type}>
<h2 className={styles.typeHeading}>{TOOL_TYPE_LABEL[type].title}</h2>

<p>{TOOL_TYPE_LABEL[type].description}</p>

<div className={styles.gridContainer}>
<div className={styles.gridHeaderRow}>
<div className={styles.gridHeader}>Tool</div>
Expand Down
Loading