Skip to content

parallel-make-check: warn when a job runtime drifts >50% from "minutes"#10684

Merged
dgarske merged 3 commits into
wolfSSL:masterfrom
julek-wolfssl:parallel-make-check-warn-stale-minutes
Jun 15, 2026
Merged

parallel-make-check: warn when a job runtime drifts >50% from "minutes"#10684
dgarske merged 3 commits into
wolfSSL:masterfrom
julek-wolfssl:parallel-make-check-warn-stale-minutes

Conversation

@julek-wolfssl

Copy link
Copy Markdown
Member

The minutes field in parallel-make-check's config JSON is only a
scheduling estimate: configs run longest-first and --shard balances shards
by it. When a value goes stale it just packs the schedule a little worse, and
until now there was no signal that it needed updating.

This adds a non-fatal warning when a config that explicitly sets minutes
finishes more than ±50% away from it:

  • a GitHub ::warning:: annotation in CI (a plain WARNING: line locally),
    printed next to the per-config pass line, and
  • a :warning: note in the step-summary table row, carrying the measured
    value to copy over.

Configs that omit minutes keep riding the 1.0 default placeholder and are
left alone. The warning never touches the exit status, so it cannot fail the
job — it's just an easy-to-spot nudge to refresh a drifted estimate.

Touches only .github/scripts/parallel-make-check.py (CI tooling).

The "minutes" field is only a scheduling estimate; when it goes stale it
just packs the schedule a little worse, and there was no signal that a
value needed updating. Emit a non-fatal warning when a config that
explicitly sets "minutes" finishes more than 50% above or below it (a
GitHub ::warning:: annotation in CI, a plain line locally) and flag the
row in the step-summary table with the value to copy over.

Configs that omit "minutes" keep riding the 1.0 default and are left
alone. The warning never touches the exit status, so it cannot fail the
job.
Copilot AI review requested due to automatic review settings June 15, 2026 11:05
@julek-wolfssl julek-wolfssl self-assigned this Jun 15, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a non-fatal signal to CI/local runs when a config’s explicitly provided minutes estimate has drifted significantly from the measured runtime, making stale scheduling weights easier to spot and update.

Changes:

  • Track whether minutes was explicitly provided in the JSON config (vs default placeholder).
  • Emit a per-config warning when runtime is >±50% away from the estimate (GitHub Actions annotation in CI; plain warning locally).
  • Add a :warning: note in the step-summary table row when drift is detected.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/scripts/parallel-make-check.py Outdated
A config name comes from JSON and is only checked for emptiness and a
'/', so it can carry %, CR or LF. Passed straight into the ::warning::
workflow command those would truncate the annotation or be parsed as a
second command, so escape them in the GitHub branch of warn() per
GitHub's documented command-data encoding (% first). Local output is
unchanged.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 2 comments.

Comment thread .github/scripts/parallel-make-check.py Outdated
Comment thread .github/scripts/parallel-make-check.py Outdated
…w command

Addresses review feedback:
- The "minutes" header comment described the check backwards (the
  estimate drifting from the measured time). Reword it to match the
  code, which warns when the measured time lands more than +/-50% away
  from the estimate.
- Centralize the GitHub workflow-command escaping in gh_escape() and
  apply it to the ::group:: title in dump() and the ::error:: summary in
  main(), not just warn(), so a config name or step carrying %, CR or LF
  cannot corrupt those commands either.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

@julek-wolfssl julek-wolfssl marked this pull request as ready for review June 15, 2026 11:43
@github-actions

Copy link
Copy Markdown

retest this please

@dgarske dgarske merged commit cc6887f into wolfSSL:master Jun 15, 2026
408 checks passed
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.

4 participants