Skip to content

S10.20: Flip MISRA + naming gates to error mode and close E10 #437

Description

@DavidCozens

Closes the E10 enforcement-mode flip and tidies the audit-phase artefacts that
were always slated for removal at the close-out. With S10.12–S10.19 done and
the latest main carrying 0 cppcheck-misra findings and 0 clang-tidy naming
warnings, the gates can flip without code work.

Bundle

  1. cppcheck-misra → gating.
    .github/workflows/ci.yml analyze-cppcheck job — flip
    --error-exitcode=01 on both the "Run cppcheck-misra" step and the
    "Generate cppcheck-misra XML report" step.

  2. Add Platform/MbedTls/Source/ to cppcheck-misra invocation.
    Append -IPlatform/MbedTls/Interface and Platform/MbedTls/Source/ to
    both cppcheck-misra invocations. Verification step only — the adapter was
    developed against the local warning-mode check (S08.07).

  3. Widen the non-MISRA cppcheck XML pass.
    The diagnostic XML pass at line 511–522 is scoped to Core/Source/ only;
    widen to Core/Source/ + Platform/*/Source/ to match the cppcheck-misra
    scope. (Build-time cppcheck already gates Platform/ via CMAKE_C_CPPCHECK
    with --error-exitcode=1, but the artefact upload should report the wider
    surface.)

  4. clang-tidy naming → gating.
    Root .clang-tidy — change WarningsAsErrors: '*,-readability-identifier-naming'
    to WarningsAsErrors: '*' and remove the soft-freeze comment block (lines
    34–37 reference the wrong story — S10.18 vs. S10.20 — so the easiest fix
    is to delete the now-stale paragraph entirely).

  5. Delete docs/misra-conformance.md.
    Audit working doc, frozen since S10.12. Live truth lives in
    docs/misra-deviations.md + misra_suppressions.txt. No remaining
    cross-references in code or CI — only DEVLOG history references it.

  6. Widen analyze-format to Platform/.
    Currently find Core/Interface Core/Source Tests Bdd/Targets …. Add
    Platform. (The epic lists this as "optional" — including it because
    E10's close-out is the natural moment, and format drift on Platform/
    has nothing to push it back.)

  7. Mop-up nit from S10.22 PR refactor: S10.22 enum naming convention restoration (SCREAMING_SNAKE) #391.
    Tests/DatagramFake.h:18-19 comment says "calls beyond the configured
    slots return SOLIDSYSLOG_DATAGRAM_SEND_RESULT_SENT" — wording is
    ambiguous and reads wrong against the _FAILED fallback at
    DatagramFake.c:126. Re-word for clarity. (The other deferred nit was
    in misra-conformance.md, which gets deleted in item 5 — no fix needed.)

Acceptance

  • All status checks green on the PR (cppcheck-misra and naming gates now
    exercised in error mode against a clean tree).
  • git grep misra-conformance.md returns no matches outside DEVLOG.md.
  • analyze-format step exercises a Platform/ file.

Re-proving the gates actually fail on a deliberate violation was considered
and skipped — the gates fired dozens of times during S10.07–S10.19, so
re-proving in this PR adds churn without information.

Out of scope

  • No production code changes. No new deviations or suppression edits.
  • The build-time cppcheck pass (CMAKE_C_CPPCHECK, --error-exitcode=1
    since the cppcheck preset landed) is unchanged.

Parent epic: #12

Metadata

Metadata

Assignees

No one assigned

    Labels

    storyStory issue

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions