Skip to content

refactor: prints outputs path to stderr instead of stdout#732

Open
claymcleod wants to merge 6 commits intomainfrom
fix/outputs-path-to-stderr
Open

refactor: prints outputs path to stderr instead of stdout#732
claymcleod wants to merge 6 commits intomainfrom
fix/outputs-path-to-stderr

Conversation

@claymcleod
Copy link
Member

@claymcleod claymcleod commented Mar 16, 2026

PR #701 added a println! that prints the outputs file path after printing the JSON outputs. This breaks any tool that captures stdout as machine-readable JSON—spectool with --redirect-stdout being the immediate case, where every passing test started failing with "trailing characters" parse errors in the openwdl/wdl CI.

The fix is straightforward: change println! to eprintln! so the informational message goes to stderr while stdout stays clean JSON. This also reverts the stdout timestamp normalization workaround added in #725, which was papering over the same issue from the test harness side.

Additionally, this adds a spec compliance CI workflow that runs spectool against the WDL 1.3 spec using the current branch's build of Sprocket, so we can catch issues like this on our side going forward.

Before submitting this PR, please make sure:

For all contributors:

  • You have added tests (when appropriate).
  • You have added an entry in the CHANGELOG (when appropriate).
  • You have updated the README or other documentation to account for these changes (when appropriate).
  • You have made a PR to the next branch in the sprocket.bio repository (when appropriate).

@claymcleod claymcleod changed the title fix: prints outputs path to stderr instead of stdout refactor: prints outputs path to stderr instead of stdout Mar 16, 2026
@claymcleod claymcleod force-pushed the fix/outputs-path-to-stderr branch from 58c158e to 9ed5d7e Compare March 16, 2026 16:12
PR #701 added a `println!` that prints the outputs file path after
printing the JSON outputs. This breaks any tool that captures stdout as
machine-readable JSON (e.g., spectool with --redirect-stdout).

This moves the message to `eprintln!` so stdout stays clean JSON,
reverts the stdout timestamp normalization workaround from #725, and
adds a WDL 1.3 spec compliance CI workflow so we can catch issues like
this on our side going forward.
@claymcleod claymcleod force-pushed the fix/outputs-path-to-stderr branch from 9ed5d7e to d7aadf1 Compare March 16, 2026 16:15
Uses Sprocket's `--index-on` flag with spectool's new `--output-file`
flag instead of `--redirect-stdout`, which is fragile when non-JSON
content appears on stdout.
@github-actions github-actions bot added the S-awaiting-pass-CI PR is awaiting CI to pass. label Mar 16, 2026
@github-actions github-actions bot removed the S-awaiting-pass-CI PR is awaiting CI to pass. label Mar 17, 2026
@claymcleod claymcleod marked this pull request as ready for review March 17, 2026 16:04
@claymcleod claymcleod requested a review from a team as a code owner March 17, 2026 16:04
@claymcleod claymcleod requested a review from adthrasher March 17, 2026 16:04
@claymcleod claymcleod requested review from peterhuene and removed request for adthrasher March 17, 2026 16:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants