Skip to content

Conformance report

The release workflow runs your plugin on a disposable stub host with the conformance suite and uploads the report with the build. The Creator Portal shows it under every build in Builds, and to the moderator reviewing the version.

  • A failed required check stops the release before anything is uploaded. Fix it and publish the release again.
  • Everything else is advisory: a warning never blocks an upload, a release or a review. The moderator sees the same warnings you do.
  • Each check in the report links to its entry in the conformance reference, which says what it asserts and how to fix it.
Status Meaning
Conformant The report is readable and raised no warning.
Conformant, with warnings No required check failed, but something below deserves a look.
Not conformant A required check failed.
Not run on a stub host No report came with the build.
Report unreadable A report came with the build, but the portal could not read it.
Warning Cause Fix
No conformance report The workflow did not run the plugin on a stub host: run-stub-host is false, the manifest declares no platform a GitHub runner provides (linux-x64, win-x64, osx-arm64, linux-arm64, win-arm64, osx-x64), or the build predates conformance reports. Remove run-stub-host: false from your release workflow, and declare at least one of those runtime identifiers in manifest.json. Publish the release again.
Report unreadable The uploaded conformance.json is not the suite’s JSON report: invalid JSON, over 1 MiB, or a check without a valid id, outcome or requirement. The reason is shown with the warning. Use the official publish-plugin.yml at its current tag, and do not change conformance.json in your own steps. Run macrodeck-plugin test --artifact <package> --report json locally to see what the suite writes.
No session with the stub host MDC0201, the session handshake, did not pass. Without a session most checks cannot exercise the plugin. Run macrodeck-plugin run --artifact <package> --stub-host and look for Session established. If it never appears, the plugin crashes on start, listens on the wrong address, or does not answer session.hello; see MDC0201, MDC0704 and Troubleshooting.
No check passed Every check was skipped or failed, so the run most likely never reached the plugin. As for no session: run the package on a stub host locally and fix what stops it from starting.
Required check failed At least one required check failed. The workflow stops before the upload when this happens, so a build showing it was changed after the suite ran. Open the failed check’s link and apply its fix. Run macrodeck-plugin test --artifact <package> until it exits with 0.
Recommended check failed A recommended check failed. It never makes the plugin non-conformant, but it points at behaviour users notice, such as a late reply or lost log output. Open the failed check’s link and apply its fix.
Check inconclusive The stub host could not reach a verdict for reasons outside your plugin, such as a slow runner. Usually nothing. Publish the release again; if the same check stays inconclusive, run it locally with macrodeck-plugin test --artifact <package> --check <id>.
Report for another plugin The report names another plugin id than the build. Keep one id: the id in manifest.json must be the id the plugin reports at runtime (MDC0105).
Report for another version The report names another version than the build. Do not override the version at runtime. The workflow writes the release version into manifest.json and the assembly version (MDC0106).
Verdict contradicts its checks The report’s own conformant does not match its checks. Use the official workflow and do not edit conformance.json.
Terminal window
macrodeck-plugin build --source src/HelloDeck --output ./artifacts
macrodeck-plugin test --artifact ./artifacts/*.macroDeckPlugin

This runs the same suite as the release workflow. See macrodeck-plugin test for filters and report formats.