From af7e28935c128e5d2445c50cdba7dd0a66ef19bb Mon Sep 17 00:00:00 2001 From: Matthew Thomas <25988124+Ma11hewThomas@users.noreply.github.com> Date: Sat, 24 Oct 2026 13:17:32 +0100 Subject: [PATCH 1/2] Clarify captured output lines and empty output --- CHANGELOG.md | 2 ++ schema/ctrf.schema.json | 8 ++++---- spec/ctrf.md | 28 ++++++++++++++++------------ 3 files changed, 22 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c3c3444..ed379ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- Clarified output-line arrays and valid omission or empty arrays when no stdout or stderr was captured, on final results and previous attempts. + - Documented legacy `id` removal in 1.0.0 and version-based migration while retaining current acceptance and optional `testId`. - Clarified durable attachment references, optional producer-local paths and producer-defined digest metadata. diff --git a/schema/ctrf.schema.json b/schema/ctrf.schema.json index ee2a14f..ad0068a 100644 --- a/schema/ctrf.schema.json +++ b/schema/ctrf.schema.json @@ -316,14 +316,14 @@ "type": "string" }, "stdout": { - "description": "Standard output lines from this attempt", + "description": "Standard output from this attempt, one string per output line. May be omitted or empty when no output was captured", "type": "array", "items": { "type": "string" } }, "stderr": { - "description": "Standard error lines from this attempt", + "description": "Standard error from this attempt, one string per output line. May be omitted or empty when no output was captured", "type": "array", "items": { "type": "string" @@ -383,14 +383,14 @@ "type": "boolean" }, "stdout": { - "description": "Standard output lines from test execution", + "description": "Standard output, one string per output line. May be omitted or empty when no output was captured", "type": "array", "items": { "type": "string" } }, "stderr": { - "description": "Standard error lines from test execution", + "description": "Standard error, one string per output line. May be omitted or empty when no output was captured", "type": "array", "items": { "type": "string" diff --git a/spec/ctrf.md b/spec/ctrf.md index c603331..52133f9 100644 --- a/spec/ctrf.md +++ b/spec/ctrf.md @@ -1156,8 +1156,9 @@ If present, it MUST be a boolean. Lines of standard output generated during test execution. **Requirements:** -`stdout` is OPTIONAL. -If present, it MUST be an array of strings. +`stdout` is OPTIONAL. +If present, it MUST be an array of strings, with one entry per output line. +If no output was captured, producers MAY omit `stdout` or emit an empty array. ### 9.24. `stderr` @@ -1165,8 +1166,9 @@ If present, it MUST be an array of strings. Lines of standard error output generated during test execution. **Requirements:** -`stderr` is OPTIONAL. -If present, it MUST be an array of strings. +`stderr` is OPTIONAL. +If present, it MUST be an array of strings, with one entry per output line. +If no output was captured, producers MAY omit `stderr` or emit an empty array. ### 9.25. `threadId` @@ -1542,8 +1544,9 @@ If present, it MUST be a string. A list of standard output lines captured during the attempt. **Requirements:** -`stdout` is OPTIONAL. -If present, it MUST be an array of strings. +`stdout` is OPTIONAL. +If present, it MUST be an array of strings, with one entry per output line. +If no output was captured, producers MAY omit `stdout` or emit an empty array. ### 11.10. `stderr` @@ -1551,8 +1554,9 @@ If present, it MUST be an array of strings. A list of standard error lines captured during the attempt. **Requirements:** -`stderr` is OPTIONAL. -If present, it MUST be an array of strings. +`stderr` is OPTIONAL. +If present, it MUST be an array of strings, with one entry per output line. +If no output was captured, producers MAY omit `stderr` or emit an empty array. ### 11.11. `start` @@ -2434,14 +2438,14 @@ to this specification. "type": "string" }, "stdout": { - "description": "Standard output lines from this attempt", + "description": "Standard output from this attempt, one string per output line. May be omitted or empty when no output was captured", "type": "array", "items": { "type": "string" } }, "stderr": { - "description": "Standard error lines from this attempt", + "description": "Standard error from this attempt, one string per output line. May be omitted or empty when no output was captured", "type": "array", "items": { "type": "string" @@ -2501,14 +2505,14 @@ to this specification. "type": "boolean" }, "stdout": { - "description": "Standard output lines from test execution", + "description": "Standard output, one string per output line. May be omitted or empty when no output was captured", "type": "array", "items": { "type": "string" } }, "stderr": { - "description": "Standard error lines from test execution", + "description": "Standard error, one string per output line. May be omitted or empty when no output was captured", "type": "array", "items": { "type": "string" From 47e93d543846674df1e2561abe96a2de555b458c Mon Sep 17 00:00:00 2001 From: Matthew Thomas <25988124+Ma11hewThomas@users.noreply.github.com> Date: Sun, 25 Oct 2026 17:56:40 +0000 Subject: [PATCH 2/2] Shorten captured output schema descriptions --- schema/ctrf.schema.json | 8 ++++---- spec/ctrf.md | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/schema/ctrf.schema.json b/schema/ctrf.schema.json index 2326773..fc0e392 100644 --- a/schema/ctrf.schema.json +++ b/schema/ctrf.schema.json @@ -316,14 +316,14 @@ "type": "string" }, "stdout": { - "description": "Standard output from this attempt, one string per output line. May be omitted or empty when no output was captured", + "description": "Standard output from this attempt, one string per output line", "type": "array", "items": { "type": "string" } }, "stderr": { - "description": "Standard error from this attempt, one string per output line. May be omitted or empty when no output was captured", + "description": "Standard error from this attempt, one string per output line", "type": "array", "items": { "type": "string" @@ -383,14 +383,14 @@ "type": "boolean" }, "stdout": { - "description": "Standard output, one string per output line. May be omitted or empty when no output was captured", + "description": "Standard output, one string per output line", "type": "array", "items": { "type": "string" } }, "stderr": { - "description": "Standard error, one string per output line. May be omitted or empty when no output was captured", + "description": "Standard error, one string per output line", "type": "array", "items": { "type": "string" diff --git a/spec/ctrf.md b/spec/ctrf.md index d911b06..7ed4c74 100644 --- a/spec/ctrf.md +++ b/spec/ctrf.md @@ -2436,14 +2436,14 @@ to this specification. "type": "string" }, "stdout": { - "description": "Standard output from this attempt, one string per output line. May be omitted or empty when no output was captured", + "description": "Standard output from this attempt, one string per output line", "type": "array", "items": { "type": "string" } }, "stderr": { - "description": "Standard error from this attempt, one string per output line. May be omitted or empty when no output was captured", + "description": "Standard error from this attempt, one string per output line", "type": "array", "items": { "type": "string" @@ -2503,14 +2503,14 @@ to this specification. "type": "boolean" }, "stdout": { - "description": "Standard output, one string per output line. May be omitted or empty when no output was captured", + "description": "Standard output, one string per output line", "type": "array", "items": { "type": "string" } }, "stderr": { - "description": "Standard error, one string per output line. May be omitted or empty when no output was captured", + "description": "Standard error, one string per output line", "type": "array", "items": { "type": "string"