Skip to content

CheckCompatBounds: extract compat-bounds check into its own workflow#69

Merged
mtfishman merged 1 commit intomainfrom
mf/extract-compat-check
Apr 22, 2026
Merged

CheckCompatBounds: extract compat-bounds check into its own workflow#69
mtfishman merged 1 commit intomainfrom
mf/extract-compat-check

Conversation

@mtfishman
Copy link
Copy Markdown
Member

@mtfishman mtfishman commented Apr 22, 2026

Summary

Follow-up to #67 (which put the check as a sibling job inside Tests.yml). Because Tests.yml is typically invoked via a caller-side matrix, any job inside it is multiplied by the matrix — producing either gray skipped checks (job-level gate) or misleading green checks (step-level gate). There is no way within a reusable workflow to know it's one of N matrix invocations, so the fix is to lift the check out of Tests.yml entirely.

This PR:

  • Adds a new reusable workflow CheckCompatBounds.yml that runs the compat-bounds check once per invocation on ubuntu-latest.
  • Removes the check-compat-bounds job and its two inputs (check-compat-bounds, check-compat-bounds-mode) from Tests.yml.
  • Reworks the README accordingly.

The input removal is safe: a code search across the ITensor org turned up zero callers that set either input; the only hits are inside Tests.yml itself.

Caller-side rollout (separate)

Each caller needs a new one-line workflow that invokes CheckCompatBounds.yml@main. I'll do that via ITensorOrgPatches / MassApplyPatch in a follow-up, plus a matching template in ITensorPkgSkeleton.jl for new packages. Until that lands, no caller runs the check — same effective state as the previous job-level gate on non-matching matrix cells.

Minimal caller workflow:

name: \"Check Compat Bounds\"

on:
  pull_request:

jobs:
  check-compat-bounds:
    name: \"Check Compat Bounds\"
    uses: \"ITensor/ITensorActions/.github/workflows/CheckCompatBounds.yml@main\"
    with:
      localregistry: https://github.com/ITensor/ITensorRegistry.git

Move the compat-bounds check out of Tests.yml into a new reusable
workflow CheckCompatBounds.yml. The check no longer runs once per
Tests-matrix cell; instead callers invoke CheckCompatBounds.yml as a
separate, unmatrixed workflow and get a single clean status per PR.

- Add .github/workflows/CheckCompatBounds.yml (reusable workflow).
- Remove the `check-compat-bounds` job and its two inputs
  (`check-compat-bounds`, `check-compat-bounds-mode`) from Tests.yml.
  A search across ITensor-org callers found no workflows that set
  either input, so this is a safe removal.
- Rework the README: drop the "Compat upper-bound check" subsection
  under Tests, and add a new top-level "Check Compat Bounds" section
  documenting the new workflow and its inputs.

Rolling out to callers (new per-repo workflow + ITensorPkgSkeleton
template) will follow via ITensorOrgPatches.
@mtfishman mtfishman merged commit 4ff3cf6 into main Apr 22, 2026
1 check passed
@mtfishman mtfishman deleted the mf/extract-compat-check branch April 22, 2026 16:58
mtfishman added a commit that referenced this pull request Apr 22, 2026
Tiny follow-up to #69. The reusable workflow's job `name:` was lowercase
`"Check compat bounds"`; title-case it to produce a clean `"Check Compat
Bounds / Check Compat Bounds"` status-check context for branch
protection.
mtfishman added a commit to ITensor/ITensorPkgSkeleton.jl that referenced this pull request Apr 22, 2026
## Summary

Follow-up to
[ITensorActions#69](ITensor/ITensorActions#69),
which introduced the `CheckCompatBounds.yml` reusable workflow. This PR
adds the caller workflow to ITensorPkgSkeleton.jl so:

- New packages generated from the skeleton get the check out of the box.
- `ITensorOrgPatches` / `MassApplyPatch` can pick the file up via
`add_template_file!(\".github/workflows/CheckCompatBounds.yml\")` and
roll it out across existing ecosystem packages.

Added in both locations (per the skeleton's convention):
- `.github/workflows/CheckCompatBounds.yml` — the skeleton's own CI.
- `template/.github/workflows/CheckCompatBounds.yml.template` — the
template.

Patch version bumped to 0.3.50 since this is a substantive template
change.
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.

1 participant