Skip to content

CI: run the Python test suite on Windows and macOS #675

Open

Description

@yadavchiragg

Problem: the Python test job in .github/workflows/ci.yml runs only on ubuntu-latest (it varies the Python version, not the OS). Windows and macOS only run the Julia and C++ jobs. The CLI and the mkconcore.py script generation, including the Windows .bat scripts and the macOS/posix paths, are never tested on those systems in CI. Windows-specific bugs such as the quoting problems in run.bat/debug.bat are only found after merge, by users. Contributors on macOS also see failures (for example in the shared-memory tests) that CI never shows.

Proposal: add a separate test-os job that runs the existing pytest suite on windows-latest and macos-latest (Python 3.11, fail-fast: false). The existing Ubuntu test job stays unchanged. I would:

  1. run it once non-blocking to get the real list of failures on each OS,
  2. fix the ones that are real bugs, in small PRs,
  3. skip the ones that cannot work on that OS, each with a reason in the test,
  4. only then ask for the new job to be treated as required.

I'm happy to do all of this. Is this a direction you'd accept, and are there tests that you already know are Linux-only?

Activity

  1. github-actions commented on Nov 13, 2026

    @github-actions

    👋 Welcome to the CONTROL-CORE Project, @yadavchiragg! Thank you for opening your first issue in concore.
    We appreciate your contribution to the organization and will review it as soon as possible.

    Before we get started, please check out these resources:

  2. yadavchiragg commented on Nov 13, 2026

    @yadavchiragg
    Author

    Update: I ran the proposed job on my fork as a dry run. Results:

    • windows-latest: the full Python suite passes, so adding it needs no fixes.
    • macos-latest: 232 passed, 6 failed. All 6 are the shared-memory C++ tests (test_shm_abort x4, test_shm_lifecycle x2); the C++ helper dies with an uncaught exception from shmget/shared-memory setup on macOS. I propose skipping those on macOS with a clear reason (and opening a separate issue for them) unless you'd prefer a fix.
    • Separately, the existing Ubuntu test job with Python 3.9 fails on the new ubuntu-latest (26.04) because that image has no Python 3.9.
      I'll wait for your go-ahead before opening a PR for the workflow change.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions