Skip to content

Gate api-simulator dev dependency to Linux only #954

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    recipe:implementationRoute: proceed directly to implementationstagedImplementation 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