Skip to content

feat!: remove iOS from the core; the ios target belongs to labelle-ios (cli#471 I5) - #515

Merged
apotema merged 1 commit into
mainfrom
feat/remove-ios-from-core
Sep 29, 2026
Merged

apotema merged 1 commit into
mainfrom
feat/remove-ios-from-core

Conversation

@apotema

@apotema apotema commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

Part of #471, item I5. Breaking: meant for CLI 4.0 (D1). Do not merge into a 3.x release.

The ios target is owned by labelle-toolkit/labelle-ios v0.1.0, which is in the provider registry: an app hook after build, a launch run replacement for the simulator, and a bundle replacement. The core keeps nothing iOS-specific.

Removed

  • src/cli/ios.zig (~900 lines), the labelle ios command, its parsing and help, and Command.ios_cmd.
  • The legacy own-build branch in pipeline.zig, and the forced sokol backend in args_resolve.zig (no silent substitution, D5).
  • The ios Bypass arms. legacyRunBranch goes too, since it had no other users, and so does the owner_default parameter of providerBypass.
  • The simulator launch branch in run.zig, and ios as a reserved provider namespace.
  • IosConfig/Orientation. project.labelle is read with ignore_unknown_fields, so an old .ios block still parses and is ignored. A test covers it.

Behaviour

  • labelle ios … gives the unknown-command diagnostic, with nothing generated.
  • labelle run --platform=ios without an owning provider gives the no-provider diagnostic, or NoRunReplacement when the provider has no replace run.
  • ios targets generate into <project backend>_ios, because the backend is no longer forced.

The agnostic guard drops five entries, 17 → 12. Docs point at labelle-ios, and rfc-ios-platform.md is kept with a "superseded" note.

Tests

  • zig build test passes 13/13 steps (1152 tests).
  • test/provider_targets_e2e.py (52 invocations) and test/provider_hooks_e2e.py (83) are rewritten to the new diagnostics and pass locally.

docs/migrating-to-4.0.md comes with the 4.0 release, per the RFC.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

…s (cli#471 I5)

The ios target is owned by labelle-toolkit/labelle-ios (v0.1.0, in the
provider registry): app bundling after build, simulator launch as the run
replacement, and the bundle replacement. The core keeps nothing
iOS-specific:

- src/cli/ios.zig is deleted, along with the `labelle ios` command, its
  parsing and help, and Command.ios_cmd.
- Deleted: the legacy own-build branch, the forced sokol backend (no
  silent substitution, D5), the ios Bypass arms, legacyRunBranch, and the
  simulator launch branch.
- `ios` is no longer a reserved provider namespace.
- IosConfig/Orientation are gone. project.labelle is read with
  ignore_unknown_fields, so an old `.ios` block still parses and is ignored.

`labelle ios ...` now gives the unknown-command diagnostic with nothing
generated. `run --platform=ios` without an owning provider gives the
no-provider diagnostic, or NoRunReplacement when the provider has no
`replace run`. The e2e scripts and docs are updated. The agnostic guard
drops five entries.

BREAKING CHANGE: `labelle ios` is removed; use labelle-ios with
`labelle build|run|bundle --platform=ios`. Targets for ios generate
into <project backend>_ios, since the backend is no longer forced.
@coderabbitai

coderabbitai Bot commented Sep 29, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 44 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available. Your 105 included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: 2d84bf00-b0f2-4bad-8383-f3ca9b60cf94

📥 Commits

Reviewing files that changed from the base of the PR and between 8c6c321 and 68d766a.

📒 Files selected for processing (20)
  • docs/provider-contract-v1.md
  • docs/provider-hooks.md
  • docs/provider-local-dispatch.md
  • docs/provider-targets.md
  • docs/rfc-ios-platform.md
  • src/agnostic_guard_test.zig
  • src/cli.zig
  • src/cli/args.zig
  • src/cli/config.zig
  • src/cli/ios.zig
  • src/cli/pipeline.zig
  • src/cli/pipeline/args_resolve.zig
  • src/cli/pipeline/generate.zig
  • src/cli/pipeline/install.zig
  • src/cli/pipeline/run.zig
  • src/cli/project_config.zig
  • src/cli/provider_dispatch.zig
  • src/cli/provider_hooks.zig
  • test/provider_hooks_e2e.py
  • test/provider_targets_e2e.py

Comment @coderabbitai help to get the list of available commands.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 29, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-29T12:51:34.101042Z 68d766a PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@opencode-agent

Copy link
Copy Markdown

User coderabbitai[bot] does not have write permissions

github run

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.

2 participants