Skip to content

Gate api-simulator dev dependency to Linux only #954

Closed

Description

@Trecek

Problem

The api-simulator dev dependency is declared unconditionally in pyproject.toml, causing macOS CI to fail on stable-targeting PRs (e.g. PR #945). The Rust crate's Python bindings (api-simulator-py) request features = ["full"], which includes process-pty — a feature with an explicit compile_error! on non-Linux platforms.

api-simulator is a development/testing tool only — no stable user would ever need it.

Root Cause

  • pyproject.toml line 52: "api-simulator" in [project.optional-dependencies] dev with no platform marker
  • crates/api-simulator-py/Cargo.toml: api-simulator = { path = "../api-simulator", features = ["full"] }
  • crates/api-simulator/Cargo.toml: full includes process-pty
  • crates/api-simulator/src/process/mod.rs:17: compile_error! on non-Linux

Fix

Add a sys_platform == 'linux' marker to the api-simulator dev dependency in pyproject.toml:

dev = [
    "api-simulator; sys_platform == 'linux'",
    ...
]

Then regenerate the lockfile with uv lock.

Any tests importing api-simulator should already be skipped on non-Linux (imports are lazy and env-var-gated).

Context

  • Investigation report: .autoskillit/temp/investigate/investigation_macos-ci-failure-pr945_2026-04-15_143000.md
  • Blocking PR: test #945 (main → stable promotion)

Activity

  1. added a commit that references this issue on Apr 16, 2026
    3e5a178
  2. added
    stagedImplementation staged and waiting for promotion to main
    and removed
    in-progressIssue is being actively worked on
    on Apr 16, 2026
  3. added a commit that references this issue on May 8, 2026
    7e46b29
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

    recipe:implementationRoute through implementation recipestagedImplementation staged and waiting for promotion to main

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions