From dea844e1d374011e8050587f4250e06d133e325f Mon Sep 17 00:00:00 2001 From: Christophe Bedard Date: Sun, 25 Oct 2020 16:23:53 -0400 Subject: [PATCH] Update tracetools' quality level to 1 Backport of e2664fcae9977af37fcb6da79f29699f44fb6a3d from !213 Signed-off-by: Christophe Bedard --- README.md | 2 +- tracetools/QUALITY_DECLARATION.md | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 4f53cf9..7e813b7 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,7 @@ Package containing a `ros2cli` extension to enable tracing. Library to support instrumenting ROS packages, including core packages. -This package claims to be in the **Quality Level 2** category, see the [Quality Declaration](./tracetools/QUALITY_DECLARATION.md) for more details. +This package claims to be in the **Quality Level 1** category, see the [Quality Declaration](./tracetools/QUALITY_DECLARATION.md) for more details. See the [API documentation](https://ros-tracing.gitlab.io/ros2_tracing-api/). diff --git a/tracetools/QUALITY_DECLARATION.md b/tracetools/QUALITY_DECLARATION.md index 8854a69..dd6c7af 100644 --- a/tracetools/QUALITY_DECLARATION.md +++ b/tracetools/QUALITY_DECLARATION.md @@ -2,7 +2,7 @@ This document is a declaration of software quality for the `tracetools` package, # `tracetools` Quality Declaration -The package `tracetools` claims to be in the **Quality Level 2** category. +The `tracetools` package claims to be in the **Quality Level 1** category. Below are the rationales, notes, and caveats for this claim, organized by each requirement listed in the [Package Requirements for Quality Level 1 in REP-2004](https://www.ros.org/reps/rep-2004.html). @@ -106,15 +106,19 @@ The tests aim to cover both typical usage and corner cases, but are quantified b This includes: - tracking and reporting line coverage statistics +- achieving and maintaining a good branch line coverage (95%) - no lines are manually skipped in coverage calculations Changes are required to make a best effort to keep or increase coverage before being accepted, but decreases are allowed if properly justified and accepted by reviewers. Current coverage statistics can be viewed [on codecov.io](https://codecov.io/gl/ros-tracing/ros2_tracing) or in the [results of the latest `coverage` CI job](https://gitlab.com/ros-tracing/ros2_tracing/pipelines/latest). +`tracetools` might not reach the 95% goal because it uses `#ifdef` in case LTTng is not installed, but, when using and enabling LTTng, the line coverage is above 95%. + ### Performance [4.iv] `tracetools` does not currently have any performance tests. +However, since it is simply an interface and does not contain much logic (or actual code), it does not arguably require performance tests. ### Linters and Static Analysis [4.v] @@ -188,9 +192,9 @@ The table below compares the requirements in REP-2004 with the current state of |4.i| Feature items tests | ✓ | |4.ii| Public API tests | ✓ | |4.iii.a| Using coverage | ✓ | -|4.iii.b| Coverage policy | | -|4.iv.a| Performance tests | | -|4.iv.b| Performance tests policy | | +|4.iii.b| Coverage policy | ✓ | +|4.iv.a| Performance tests | x | +|4.iv.b| Performance tests policy | ✓ | |4.v.a| Code style enforcement (linters) | ✓ | |4.v.b| Use of static analysis tools | ✓ | |5| **Dependencies** || @@ -204,4 +208,4 @@ The table below compares the requirements in REP-2004 with the current state of \* : going forward -Comparing this table to the [Quality Level Comparison Chart of REP-2004](https://www.ros.org/reps/rep-2004.html#quality-level-comparison-chart) led us to conclude that this package qualifies for Quality Level 2. +Comparing this table to the [Quality Level Comparison Chart of REP-2004](https://www.ros.org/reps/rep-2004.html#quality-level-comparison-chart) led us to conclude that this package qualifies for Quality Level 1.