Skip to content

Commit 72b2f9f

Browse files
authored
Adapt tool categories (Safety-Critical-Rust-Consortium#632)
* Adapt tool categories Makes the categories more open and clear for new tools * Remove category comment
1 parent c8f03a7 commit 72b2f9f

3 files changed

Lines changed: 41 additions & 33 deletions

File tree

.github/ISSUE_TEMPLATE/submit_tool.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,17 +72,17 @@ body:
7272
id: tool_type
7373
attributes:
7474
label: Tool category
75-
description: Specific use and type of this tool
75+
description: Specific use and type of this tool. For more details about the categories, please visit the https://arewesafetycriticalyet.org/tooling/tools-list website.
7676
options:
7777
- "code-coverage"
7878
- "requirements-traceability"
7979
- "compiler"
80-
- "test-runner"
80+
- "testing"
8181
- "formal-verification"
8282
- "static-analysis"
83-
- "tests-generation"
8483
- "package-manager"
85-
- "profiler"
86-
- "debugger"
84+
- "profiling"
85+
- "debugging"
86+
- "other"
8787
validations:
8888
required: false

arewesafetycriticalyet.org/src/components/ToolsList/available-tools.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@
7070
},
7171
{
7272
"name": "cargo-nextest",
73-
"type": "test-runner",
73+
"type": "testing",
7474
"url": "https://nexte.st",
7575
"description": "Next-generation test runner for Rust",
7676
"license": "Apache 2.0 & MIT"
@@ -98,7 +98,7 @@
9898
},
9999
{
100100
"name": "defmt-test",
101-
"type": "test-runner",
101+
"type": "testing",
102102
"url": "https://github.com/knurling-rs/defmt",
103103
"vendor": "Ferrous Systems GmbH",
104104
"description": "Embedded testing framework",
@@ -132,7 +132,7 @@
132132
},
133133
{
134134
"name": "flamegraph",
135-
"type": "profiler",
135+
"type": "profiling",
136136
"url": "https://github.com/flamegraph-rs/flamegraph",
137137
"description": "Flame graph profiler for Rust",
138138
"license": "Apache 2.0 & MIT"
@@ -170,7 +170,7 @@
170170
},
171171
{
172172
"name": "Lauterbach Trace32 Debugger",
173-
"type": "debugger",
173+
"type": "debugging",
174174
"url": "https://www.lauterbach.com/",
175175
"vendor": "Lauterbach",
176176
"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 @@
193193
},
194194
{
195195
"name": "PLS UDE",
196-
"type": "debugger",
196+
"type": "debugging",
197197
"url": "https://www.pls-mc.com/products/universal-debug-engine/",
198198
"vendor": "PLS Programmierbare Logik & Systeme GmbH",
199199
"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 @@
218218
},
219219
{
220220
"name": "TESSY",
221-
"type": "test-runner",
221+
"type": "testing",
222222
"url": "https://www.razorcat.com/en/product-tessy.html",
223223
"vendor": "Razorcat",
224224
"description": "Qualified unit testing tool",
@@ -236,7 +236,7 @@
236236
},
237237
{
238238
"name": "VectorCast",
239-
"type": "test-runner",
239+
"type": "testing",
240240
"url": "https://www.vector.com/us/en/products/products-a-z/software/vectorcast/",
241241
"vendor": "Vector Software",
242242
"description": "Qualified test runner and generator for safety-critical applications",

arewesafetycriticalyet.org/src/components/ToolsList/toolsList.tsx

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ import raw_tools_list from "./available-tools.json";
88
type ToolType =
99
| "package-manager"
1010
| "compiler"
11-
| "test-runner"
11+
| "testing"
1212
| "formal-verification"
13-
| "profiler"
14-
| "debugger"
13+
| "profiling"
14+
| "debugging"
1515
| "requirements-traceability"
1616
| "static-analysis"
1717
| "code-coverage"
@@ -50,28 +50,33 @@ type ToolsList = {
5050
tools: ToolEntry[];
5151
};
5252

53-
const TOOL_TYPE_LABEL: Record<ToolType, string> = {
54-
"package-manager": "Package Managers",
55-
compiler: "Compilers",
56-
"test-runner": "Test Runners",
57-
"formal-verification": "Formal Verification",
58-
profiler: "Profilers",
59-
debugger: "Debuggers",
60-
"requirements-traceability": "Requirements Traceability",
61-
"static-analysis": "Static Analysis",
62-
"code-coverage": "Code Coverage",
63-
other: "Other",
53+
type ToolCategory = {
54+
title: string,
55+
description: string,
56+
}
57+
58+
const TOOL_TYPE_LABEL: Record<ToolType, ToolCategory> = {
59+
"package-manager": { title: "Package Managers", description: "Tools for automating the management of a project's dependencies, its compilation and linking." },
60+
compiler: { title: "Compilers", description: "Tools for transforming source code into either executable binaries or dynamic libraries." },
61+
testing: { title: "Testing", description: "Tools for evaluating the correctness of a program under a finite set of scenarios through its execution." },
62+
"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." },
63+
profiling: { title: "Profiling", description: "Tools for measurement of program performance along different types of resources." },
64+
debugging: { title: "Debugging", description: "Tools for interactively inspecting the dynamic behavior of a program." },
65+
"requirements-traceability": { title: "Requirements Traceability", description: "Tools to manage traces between requirements and related source and/or object code." },
66+
"static-analysis": { title: "Static Analysis", description: "Tools for analyzing source code without executing it." },
67+
"code-coverage": { title: "Code Coverage", description: "Tools for calculating the quality of a test suite, under the metric of code coverage." },
68+
other: { title: "Other", description: "Tools that fall under none of the other categories." },
6469
};
6570

6671
const TOOL_TYPE_ORDER: ToolType[] = [
6772
"package-manager",
6873
"compiler",
6974
"static-analysis",
7075
"formal-verification",
71-
"test-runner",
76+
"testing",
7277
"code-coverage",
73-
"debugger",
74-
"profiler",
78+
"debugging",
79+
"profiling",
7580
"requirements-traceability",
7681
"other",
7782
];
@@ -172,9 +177,9 @@ export default function ToolsList(): React.ReactElement {
172177
{TOOL_TYPE_ORDER.filter(
173178
(type) => (grouped_tools.get(type) ?? []).length > 0,
174179
).map((type) => {
175-
const anchor = "#" + TOOL_TYPE_LABEL[type]
180+
const anchor = "#" + TOOL_TYPE_LABEL[type].title
176181
return (
177-
<li><a href={anchor} >{TOOL_TYPE_LABEL[type]}</a></li>
182+
<li><a href={anchor} >{TOOL_TYPE_LABEL[type].title}</a></li>
178183
)
179184
})}
180185
</ul>
@@ -212,8 +217,11 @@ export default function ToolsList(): React.ReactElement {
212217
const toolsOfType = grouped_tools.get(type) ?? [];
213218

214219
return (
215-
<section id={TOOL_TYPE_LABEL[type]} key={type}>
216-
<h2 className={styles.typeHeading}>{TOOL_TYPE_LABEL[type]}</h2>
220+
<section id={TOOL_TYPE_LABEL[type].title} key={type}>
221+
<h2 className={styles.typeHeading}>{TOOL_TYPE_LABEL[type].title}</h2>
222+
223+
<p>{TOOL_TYPE_LABEL[type].description}</p>
224+
217225
<div className={styles.gridContainer}>
218226
<div className={styles.gridHeaderRow}>
219227
<div className={styles.gridHeader}>Tool</div>

0 commit comments

Comments
 (0)