Skip to content

Conversation

@waltflanagan
Copy link
Contributor

@waltflanagan waltflanagan commented Mar 3, 2025

Migration to what will be come the 9.0 release of XcodeProj which introduces a strongly typed API around components of a pbxproj that used to be represented by Any

A side effect of this changes removes some inference of Target properties from build settings. These properties manage Tuist specific behaviors and would never occur in an Xcode created project in normal circumstances.

DO NOT MERGE without updating the package.swift reference once xcodeproj is updated to 9.0,

@waltflanagan waltflanagan force-pushed the waltflaagan/StronglyTypedBuildSettings branch from 7feb8e4 to 3b37cf5 Compare March 8, 2025 16:06
@waltflanagan waltflanagan changed the title [WIP] Migration to XcodeProj 9 refactor: Migration to XcodeProj 9 Mar 9, 2025
@waltflanagan waltflanagan force-pushed the waltflaagan/StronglyTypedBuildSettings branch from 36fbb3c to bb80553 Compare March 16, 2025 15:04
mergedBinaryType: mergedBinaryType,
mergeable: mergeable,
onDemandResourcesTags: onDemandResourcesTags,
metadata: metadata,
Copy link
Contributor Author

Choose a reason for hiding this comment

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

The items removed here do not map directly to properties in an XcodeProj file. Most of these parameters control Tuist specific behaviors like scheme generation or adding build settings. Since this mapper is reading already generated .pbxproj files the values there should be the source of truth and we should not reconstruct Tuist specific information from build settings.

@waltflanagan waltflanagan changed the title refactor: Migration to XcodeProj 9 refactor: migration to xcodeproj 9 Mar 16, 2025
@waltflanagan waltflanagan marked this pull request as ready for review March 16, 2025 15:21
@dosubot dosubot bot added the size:L This PR changes 100-499 lines, ignoring generated files. label Mar 16, 2025
Copy link
Member

@fortmarek fortmarek left a comment

Choose a reason for hiding this comment

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

Seeing how much the code has simplified with the new XcodeProj changes definitely suggests that the refactoring was worth it. Thanks a ton @waltflanagan. This is good to merge once the Package.swift is updated to use the 9.0.0 XcodeProj without using a fork.

@dosubot dosubot bot added the lgtm This PR has been approved by a maintainer label Mar 17, 2025
@waltflanagan waltflanagan changed the title refactor: migration to xcodeproj 9 refactor: migrate to xcodeproj 9 Mar 19, 2025
@waltflanagan waltflanagan merged commit 7e542a9 into main Mar 19, 2025
8 checks passed
@waltflanagan waltflanagan deleted the waltflaagan/StronglyTypedBuildSettings branch March 19, 2025 12:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lgtm This PR has been approved by a maintainer size:L This PR changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants