Merged
Conversation
Add preferXcodebuild argument to build tools with improved error handling. This commit introduces a `preferXcodebuild` argument to build tools, allowing the agent to force the use of xcodebuild over xcodemake for complex projects. It also adds a hint when incremental builds fail due to non-compiler errors, enabling the agent to automatically switch to xcodebuild for a recovery build attempt, improving reliability.
There was a problem hiding this comment.
Pull Request Overview
This PR merges the experimental incremental build support from the 1.4.0-beta branch into main. Key changes include:
- Adding support for an opt-in incremental build mechanism via a new INCREMENTAL_BUILDS_ENABLED environment variable and a preferXcodebuild flag.
- Refactoring build utilities and updating tool registration to support xcodemake as an alternative build strategy.
- Updating documentation, changelog, and diagnostic tools to reflect the new experimental feature.
Reviewed Changes
Copilot reviewed 18 out of 20 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/utils/xcodemake.ts | Added experimental support for downloading and using xcodemake for incremental builds; introduced an override function for the executable path. |
| src/utils/sentry.ts | Updated to use INCREMENTAL_BUILDS_ENABLED instead of XCODEMAKE_ENABLED. |
| src/utils/command.ts | New module providing generic command execution functionality. |
| src/utils/build-utils.ts | Updated executeXcodeBuild to conditionally use xcodemake or xcodebuild based on new flag parameters. |
| Various tools files | Extended tool registration and parameter schemas to support the new preferXcodebuild option. |
| README.md & CHANGELOG.md | Updated documentation and changelog to reflect the new experimental incremental build support. |
Files not reviewed (2)
- package.json: Language not supported
- release.sh: Language not supported
Comments suppressed due to low confidence (1)
src/utils/xcodemake.ts:78
- Consider renaming the parameter 'path' to 'xcodemakeExecutablePath' or a similar more descriptive name to avoid potential shadowing of the imported 'path' module.
function overrideXcodemakeCommand(path: string): void {
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Merge
1.4.0-betabranch intomain, which includes the experimental support for faster incremental builds. The feature is highly experimental and won't work for all projects.New in this release is the addition of a
preferXcodebuildargument to build tools, allowing the agent to force the use of xcodebuild over xcodemake for complex projects. It also adds a hint when incremental builds fail due to non-compiler errors, enabling the agent to automatically switch to xcodebuild for a recovery build attempt, improving reliability.