Skip to content
This repository was archived by the owner on Feb 26, 2026. It is now read-only.

Commit 527101c

Browse files
ajkoleanfortmarek
andauthored
feat: introduce XcodeProjMapper to map XcodeProj to XcodeGraph (#87)
* [XcodeProjToGraph] add XcodeProjToGraph and tests * lint files * [ProjectDescriptionHelpers] add fixtures to resources * [WorkspaceMapperTests] add unit tests * [Integration Tests] remove * [access modifiers] add missing access modifiers * [swift tools version] 5.9 * Address code review feedback: refine mappers, clean up test data, and improve structure * [XcodeProj] mainPBXProject extension * refactor: add accidental public removal back * feat: Strengthen error handling for unknown objects * feat: Introduce PathDependencyMapper * refactor: Remove ProjectParser & unify usage via XcodeGraphMapper * chore: Bump XcodeProj version 8.26.0 * feat: Add command runner * feat: MetadataProviders module * feat: MetadataProvidersTests * refactor: Test cleanup * lint * [Fixtures] add test fixtures for metadata module * [Error] remove fatal error * [Path] for unwrap proj and workspace path * [Tuist] manifest update * [Tests] fix tests * [Lint] lint files * [MockProvider] remove * [metadata] integrate into mappers * [Phases] fix access modifiers * [Tests] fix flaky tests * [Lint] lint files * [Tuist] fix manifest * [Doc] update readme * [plis] remove dead code * [Version] Update swift version to 5.10 * [Lint] lint errors * Fix build on Linux * Remove Project.swift * Remove cache workflow * Skip testing XcodeMetadataTests * Update FileSystem --------- Co-authored-by: fortmarek <marekfort@me.com>
1 parent eb6a05e commit 527101c

181 files changed

Lines changed: 11145 additions & 226 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
fixtures/* binary

.github/workflows/XcodeGraph.yml

Lines changed: 7 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
- ubuntu-22.04
3131
- macos-15
3232
swift-version:
33-
- "5.9"
33+
- "6.0.3"
3434
runs-on: ${{ matrix.os }}
3535
steps:
3636
- uses: actions/checkout@v4
@@ -48,7 +48,12 @@ jobs:
4848
if: steps.debug_build.outcome == 'failure'
4949
run: |
5050
swift build --configuration debug
51+
- name: Test on Linux
52+
if: matrix.os == 'ubuntu-22.04'
53+
# These momdules rely on some Xcode utilities like xcode-select
54+
run: swift test --skip XcodeProjMapperTests --skip XcodeMetadataTests
5155
- name: Test
56+
if: matrix.os != 'ubuntu-22.04'
5257
run: swift test
5358
spm_build:
5459
name: SPM Build
@@ -58,7 +63,7 @@ jobs:
5863
- ubuntu-22.04
5964
- macos-15
6065
swift-version:
61-
- "5.9"
66+
- "6.0.3"
6267
runs-on: ${{ matrix.os }}
6368
steps:
6469
- uses: actions/checkout@v4
@@ -85,38 +90,6 @@ jobs:
8590
if: steps.release_build.outcome == 'failure'
8691
run: |
8792
swift build --configuration release
88-
tuist_test:
89-
name: Tuist Test
90-
strategy:
91-
matrix:
92-
os:
93-
- macos-15
94-
runs-on: ${{ matrix.os }}
95-
steps:
96-
- uses: actions/checkout@v4
97-
- uses: jdx/mise-action@v2
98-
with:
99-
version: 2024.11.8
100-
- name: Install dependencies
101-
run: tuist install
102-
- name: Test
103-
run: tuist test
104-
tuist_build:
105-
name: Tuist Build
106-
strategy:
107-
matrix:
108-
os:
109-
- macos-15
110-
runs-on: ${{ matrix.os }}
111-
steps:
112-
- uses: actions/checkout@v4
113-
- uses: jdx/mise-action@v2
114-
with:
115-
version: 2024.11.8
116-
- name: Install dependencies
117-
run: tuist install
118-
- name: Build
119-
run: tuist build
12093
lint:
12194
name: Lint
12295
strategy:

.github/workflows/cache.yml

Lines changed: 0 additions & 38 deletions
This file was deleted.

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ Tuist/Dependencies/graph.json
102102

103103
# VSCode Settings
104104
.vscode/launch.json
105+
.vscode
105106

106107
# Release artifacts
107108
.bundle

.swiftformat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
--disable hoistAwait
88
--disable hoistTry
99
--disable redundantReturn
10-
--swiftversion 5.9
10+
--swiftversion 5.10
1111
--minversion 0.53.0
1212

1313
# format options

.swiftlint.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ disabled_rules:
88
- function_parameter_count
99
- opening_brace
1010
- line_length
11+
- large_tuple
1112
identifier_name:
1213
min_length:
1314
error: 1
@@ -21,4 +22,10 @@ inclusive_language:
2122
type_name:
2223
min_length:
2324
error: 1
24-
warning: 1
25+
warning: 1
26+
custom_rules:
27+
error_must_conform_to_localizederror:
28+
name: "Error must conform to LocalizedError"
29+
regex: '(struct|class|enum)\s+\w+Error:\s*Error\s*(?!,\s*LocalizedError)'
30+
message: "Errors must conform to LocalizedError to provide user-friendly descriptions."
31+
severity: error

Package.resolved

Lines changed: 155 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)