Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support passing xcodebuild arguments to build and test #6292

Closed
pepicrft opened this issue May 16, 2024 · 0 comments · Fixed by #6300
Closed

Support passing xcodebuild arguments to build and test #6292

pepicrft opened this issue May 16, 2024 · 0 comments · Fixed by #6300
Labels
good first issue Good for newcomers type:enhancement New feature or request

Comments

@pepicrft
Copy link
Contributor

pepicrft commented May 16, 2024

Context

When we implemented the commands tuist test and tuist test, we thought it'd be a good idea to completely abstract away the invocation of xcodebuild, which we use internally for building and running the tests. The role of tuist test and tuist build would be:

  1. Providing developers an easy way to prettify the raw xcodebuild logs
  2. Collecting and pushing metrics from test runs and builds to build analytics upon
  3. Enhancing the interface of the xcodebuild CLI aligning it with industry conventions, improving the descriptions, and enhancing the help menus and the visual hierarchy that's presented in them.

While 1. and 2. were good ideas, 3. turned out to be bad because it requires adding support for every xcodebuild argument that developers want to use.

What

I suggest that we take steps backs to:

  1. Remove from tuist build and tuist test arguments and flags that are already accepted by xcodebuild
  2. Support forwarding arguments and flags directly to the internal xcodebuild process.

For each command, tuist build, and tuist test, we'd need to:

  1. Mark all the flags and arguments that are already accepted by xcodebuild as deprecated (e.g. --os, --rosetta and --device in favor of xcodebuild's -destination flag)
  2. Capture non-Tuist arguments in an array of strings that we'd then forward to the xcodebuild process.

[!IMPORTANT] Deprecations
Note that we can't remove existing flags because that'd be a breaking change for projects whose automation might already be using those flags and arguments. I'd extend the description of those to mention that they are deprecated, and also show a warning using WarningController if we detect that developers are using them.

@pepicrft pepicrft added type:bug Something isn't working type:enhancement New feature or request good first issue Good for newcomers and removed type:bug Something isn't working labels May 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers type:enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant