Skip to content

Merge incremental builds#40

Merged
cameroncooke merged 17 commits intomainfrom
merge-incremental-builds
May 11, 2025
Merged

Merge incremental builds#40
cameroncooke merged 17 commits intomainfrom
merge-incremental-builds

Conversation

@cameroncooke
Copy link
Collaborator

Merge 1.4.0-beta branch into main, 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 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.

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.
@cameroncooke cameroncooke requested a review from Copilot May 11, 2025 19:32
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 {

@cameroncooke cameroncooke merged commit c4cc94d into main May 11, 2025
1 check passed
@cameroncooke cameroncooke deleted the merge-incremental-builds branch May 11, 2025 19:57
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