From 91614c1ebbbe6df71c78bfc9a2458c1bcf8946d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Fo=C5=99t?= Date: Wed, 21 Feb 2024 09:23:57 +0100 Subject: [PATCH 1/2] Remove PackageSettings platforms property (#5953) * Remove platforms from PackageSettings * Fix PackageInfoMapperTests * Fix interescting platforms for SPM --- Package.swift | 3 +- .../ProjectDescription/PackageSettings.swift | 8 +- .../Models/Dependencies/PackageSettings.swift | 7 +- .../Models/PackageSettings+TestData.swift | 6 +- .../SwiftPackageManagerGraphLoader.swift | 19 -- .../PackageSettings+ManifestMapper.swift | 4 +- .../PackageInfoMapper.swift | 18 +- .../DumpServiceIntegrationTests.swift | 2 +- .../Loaders/ManifestLoaderTests.swift | 10 +- .../Loaders/PackageSettingsLoaderTests.swift | 9 +- .../PackageInfoMapperTests.swift | 178 ++++++++---------- .../Add External Dependencies/Package.swift | 3 +- fixtures/app_with_plugins/Package.swift | 5 +- .../Tuist/Package.swift | 3 +- .../multiplatform_app_with_sdk/Package.swift | 8 - 15 files changed, 107 insertions(+), 176 deletions(-) diff --git a/Package.swift b/Package.swift index 4e2dec629b1..fe99dab075d 100644 --- a/Package.swift +++ b/Package.swift @@ -321,8 +321,7 @@ var targets: [Target] = [ // To revert once we release Tuist 4 targetSettings: [ "MockableTest": ["ENABLE_TESTING_SEARCH_PATHS": "YES"], - ], - platforms: [.macOS] + ] ) #endif diff --git a/Sources/ProjectDescription/PackageSettings.swift b/Sources/ProjectDescription/PackageSettings.swift index 3715f22509d..c344e76b390 100644 --- a/Sources/ProjectDescription/PackageSettings.swift +++ b/Sources/ProjectDescription/PackageSettings.swift @@ -39,27 +39,21 @@ public struct PackageSettings: Codable, Equatable { /// Custom project configurations to be used for projects generated from SwiftPackageManager. public var projectOptions: [String: Project.Options] - /// The custom set of `platforms` that are used by your project - public let platforms: Set - /// Creates `PackageSettings` instance for custom Swift Package Manager configuration. /// - Parameter productTypes: The custom `Product` types to be used for SPM targets. /// - Parameter baseSettings: Additional settings to be added to targets generated from SwiftPackageManager. /// - Parameter targetSettings: Additional settings to be added to targets generated from SwiftPackageManager. /// - Parameter projectOptions: Custom project configurations to be used for projects generated from SwiftPackageManager. - /// - Parameter platforms: The custom set of `platforms` that are used by your project public init( productTypes: [String: Product] = [:], baseSettings: Settings = .settings(), targetSettings: [String: SettingsDictionary] = [:], - projectOptions: [String: Project.Options] = [:], - platforms: Set = Set(PackagePlatform.allCases) + projectOptions: [String: Project.Options] = [:] ) { self.productTypes = productTypes self.baseSettings = baseSettings self.targetSettings = targetSettings self.projectOptions = projectOptions - self.platforms = platforms dumpIfNeeded(self) } } diff --git a/Sources/TuistGraph/Models/Dependencies/PackageSettings.swift b/Sources/TuistGraph/Models/Dependencies/PackageSettings.swift index bf72e4fa6b9..7bb709d5ea8 100644 --- a/Sources/TuistGraph/Models/Dependencies/PackageSettings.swift +++ b/Sources/TuistGraph/Models/Dependencies/PackageSettings.swift @@ -18,9 +18,6 @@ public struct PackageSettings: Equatable { /// Swift tools version of the parsed `Package.swift` public let swiftToolsVersion: Version - /// The custom set of `platforms` that are used by your project - public let platforms: Set - /// Initializes a new `PackageSettings` instance. /// - Parameters: /// - productTypes: The custom `Product` types to be used for SPM targets. @@ -32,14 +29,12 @@ public struct PackageSettings: Equatable { baseSettings: Settings, targetSettings: [String: SettingsDictionary], projectOptions: [String: TuistGraph.Project.Options] = [:], - swiftToolsVersion: Version, - platforms: Set + swiftToolsVersion: Version ) { self.productTypes = productTypes self.baseSettings = baseSettings self.targetSettings = targetSettings self.projectOptions = projectOptions self.swiftToolsVersion = swiftToolsVersion - self.platforms = platforms } } diff --git a/Sources/TuistGraphTesting/Models/PackageSettings+TestData.swift b/Sources/TuistGraphTesting/Models/PackageSettings+TestData.swift index e7c5571ae52..55830e1fca6 100644 --- a/Sources/TuistGraphTesting/Models/PackageSettings+TestData.swift +++ b/Sources/TuistGraphTesting/Models/PackageSettings+TestData.swift @@ -9,16 +9,14 @@ extension PackageSettings { baseSettings: Settings = .test(), targetSettings: [String: SettingsDictionary] = [:], projectOptions: [String: TuistGraph.Project.Options] = [:], - swiftToolsVersion: Version = Version("5.4.9"), - platforms: Set = [.iOS] + swiftToolsVersion: Version = Version("5.4.9") ) -> PackageSettings { PackageSettings( productTypes: productTypes, baseSettings: baseSettings, targetSettings: targetSettings, projectOptions: projectOptions, - swiftToolsVersion: swiftToolsVersion, - platforms: platforms + swiftToolsVersion: swiftToolsVersion ) } } diff --git a/Sources/TuistLoader/Loaders/SwiftPackageManagerGraphLoader.swift b/Sources/TuistLoader/Loaders/SwiftPackageManagerGraphLoader.swift index fc621683659..0a7b146f3c9 100644 --- a/Sources/TuistLoader/Loaders/SwiftPackageManagerGraphLoader.swift +++ b/Sources/TuistLoader/Loaders/SwiftPackageManagerGraphLoader.swift @@ -163,24 +163,6 @@ public final class SwiftPackageManagerGraphLoader: SwiftPackageManagerGraphLoadi packageToTargetsToArtifactPaths: packageToTargetsToArtifactPaths ) - let destinations: ProjectDescription - .Destinations = Set(packageSettings.platforms.flatMap { platform -> ProjectDescription.Destinations in - switch platform { - case .iOS: - [.iPhone, .iPad, .appleVisionWithiPadDesign, .macWithiPadDesign] - case .macCatalyst: - [.macCatalyst] - case .macOS: - [.mac] - case .tvOS: - [.appleTv] - case .watchOS: - [.appleWatch] - case .visionOS: - [.appleVision] - } - }) - let externalProjects: [Path: ProjectDescription.Project] = try packageInfos.reduce(into: [:]) { result, packageInfo in let manifest = try packageInfoMapper.map( packageInfo: packageInfo.info, @@ -192,7 +174,6 @@ public final class SwiftPackageManagerGraphLoader: SwiftPackageManagerGraphLoadi targetSettings: packageSettings.targetSettings, projectOptions: packageSettings.projectOptions[packageInfo.name], minDeploymentTargets: preprocessInfo.platformToMinDeploymentTarget, - destinations: destinations, targetToProducts: preprocessInfo.targetToProducts, targetToResolvedDependencies: preprocessInfo.targetToResolvedDependencies, macroDependencies: preprocessInfo.macroDependencies, diff --git a/Sources/TuistLoader/Models+ManifestMappers/PackageSettings+ManifestMapper.swift b/Sources/TuistLoader/Models+ManifestMappers/PackageSettings+ManifestMapper.swift index af0f201606d..9dfc42b905c 100644 --- a/Sources/TuistLoader/Models+ManifestMappers/PackageSettings+ManifestMapper.swift +++ b/Sources/TuistLoader/Models+ManifestMappers/PackageSettings+ManifestMapper.swift @@ -20,15 +20,13 @@ extension TuistGraph.PackageSettings { let projectOptions: [String: TuistGraph.Project.Options] = manifest .projectOptions .mapValues { .from(manifest: $0) } - let platforms = try Set(manifest.platforms.map { try TuistGraph.PackagePlatform.from(manifest: $0) }) return .init( productTypes: productTypes, baseSettings: baseSettings, targetSettings: targetSettings, projectOptions: projectOptions, - swiftToolsVersion: swiftToolsVersion, - platforms: platforms + swiftToolsVersion: swiftToolsVersion ) } } diff --git a/Sources/TuistLoader/SwiftPackageManager/PackageInfoMapper.swift b/Sources/TuistLoader/SwiftPackageManager/PackageInfoMapper.swift index 93b9d4356eb..9613b5f9234 100644 --- a/Sources/TuistLoader/SwiftPackageManager/PackageInfoMapper.swift +++ b/Sources/TuistLoader/SwiftPackageManager/PackageInfoMapper.swift @@ -135,7 +135,6 @@ public protocol PackageInfoMapping { targetSettings: [String: TuistGraph.SettingsDictionary], projectOptions: TuistGraph.Project.Options?, minDeploymentTargets: ProjectDescription.DeploymentTargets, - destinations: ProjectDescription.Destinations, targetToProducts: [String: Set], targetToResolvedDependencies: [String: [PackageInfoMapper.ResolvedDependency]], macroDependencies: Set, @@ -398,7 +397,6 @@ public final class PackageInfoMapper: PackageInfoMapping { targetSettings: [String: TuistGraph.SettingsDictionary], projectOptions: TuistGraph.Project.Options?, minDeploymentTargets: ProjectDescription.DeploymentTargets, - destinations: ProjectDescription.Destinations, targetToProducts: [String: Set], targetToResolvedDependencies: [String: [PackageInfoMapper.ResolvedDependency]], macroDependencies: Set, @@ -459,7 +457,6 @@ public final class PackageInfoMapper: PackageInfoMapping { productTypes: productTypes, baseSettings: baseSettings, targetSettings: targetSettings, - packageDestinations: destinations, minDeploymentTargets: minDeploymentTargets, targetToResolvedDependencies: targetToResolvedDependencies, targetToModuleMap: targetToModuleMap, @@ -511,7 +508,6 @@ extension ProjectDescription.Target { productTypes: [String: TuistGraph.Product], baseSettings: TuistGraph.Settings, targetSettings: [String: TuistGraph.SettingsDictionary], - packageDestinations: ProjectDescription.Destinations, minDeploymentTargets: ProjectDescription.DeploymentTargets, targetToResolvedDependencies: [String: [PackageInfoMapper.ResolvedDependency]], targetToModuleMap: [String: ModuleMap], @@ -542,7 +538,17 @@ extension ProjectDescription.Target { destinations = Set([.mac]) } else { // All packages implicitly support all platforms, we constrain this with the platforms defined in `Package.swift` - destinations = packageDestinations.intersection(Set(Destination.allCases)) + let packageDestinations: ProjectDescription.Destinations = Set( + try packageInfo.platforms.flatMap { platform -> ProjectDescription.Destinations in + return try platform.destinations() + } + ) + + if packageDestinations.isEmpty { + destinations = Set(Destination.allCases) + } else { + destinations = Set(Destination.allCases).intersection(packageDestinations) + } } if macroDependencies.contains(where: { dependency in @@ -1075,7 +1081,7 @@ extension ProjectDescription.Settings { } extension ProjectDescription.PackagePlatform { - fileprivate func destinations() throws -> ProjectDescription.Destinations { + fileprivate func destinations() -> ProjectDescription.Destinations { switch self { case .iOS: return [.iPhone, .iPad, .macWithiPadDesign, .appleVisionWithiPadDesign] diff --git a/Tests/TuistKitIntegrationTests/Commands/DumpServiceIntegrationTests.swift b/Tests/TuistKitIntegrationTests/Commands/DumpServiceIntegrationTests.swift index e3b1983b8bf..2ffb2ae2aa5 100644 --- a/Tests/TuistKitIntegrationTests/Commands/DumpServiceIntegrationTests.swift +++ b/Tests/TuistKitIntegrationTests/Commands/DumpServiceIntegrationTests.swift @@ -256,7 +256,7 @@ final class DumpServiceTests: TuistTestCase { import ProjectDescription let packageSettings = PackageSettings( - platforms: [.iOS, .watchOS] + targetSettings: ["TargetA": ["OTHER_LDFLAGS": "-ObjC"]] ) #endif diff --git a/Tests/TuistLoaderIntegrationTests/Loaders/ManifestLoaderTests.swift b/Tests/TuistLoaderIntegrationTests/Loaders/ManifestLoaderTests.swift index e79da78dd14..9296c975741 100644 --- a/Tests/TuistLoaderIntegrationTests/Loaders/ManifestLoaderTests.swift +++ b/Tests/TuistLoaderIntegrationTests/Loaders/ManifestLoaderTests.swift @@ -158,7 +158,7 @@ final class ManifestLoaderTests: TuistTestCase { import ProjectDescription let packageSettings = PackageSettings( - platforms: [.iOS, .watchOS] + targetSettings: ["TargetA": ["OTHER_LDFLAGS": "-ObjC"]] ) #endif @@ -188,7 +188,13 @@ final class ManifestLoaderTests: TuistTestCase { // Then XCTAssertEqual( got, - .init(platforms: [.iOS, .watchOS]) + .init( + targetSettings: [ + "TargetA": [ + "OTHER_LDFLAGS": "-ObjC", + ], + ] + ) ) } diff --git a/Tests/TuistLoaderTests/Loaders/PackageSettingsLoaderTests.swift b/Tests/TuistLoaderTests/Loaders/PackageSettingsLoaderTests.swift index fd9095f7937..632e457de8b 100644 --- a/Tests/TuistLoaderTests/Loaders/PackageSettingsLoaderTests.swift +++ b/Tests/TuistLoaderTests/Loaders/PackageSettingsLoaderTests.swift @@ -50,12 +50,6 @@ final class PackageSettingsLoaderTests: TuistUnitTestCase { TSCUtility.Version("5.4.9") } - manifestLoader.loadPackageSettingsStub = { _ in - PackageSettings( - platforms: [.iOS, .macOS] - ) - } - // When let got = try subject.loadPackageSettings(at: temporaryPath, with: plugins) @@ -72,8 +66,7 @@ final class PackageSettingsLoaderTests: TuistUnitTestCase { defaultSettings: .recommended ), targetSettings: [:], - swiftToolsVersion: TSCUtility.Version("5.4.9"), - platforms: [.iOS, .macOS] + swiftToolsVersion: TSCUtility.Version("5.4.9") ) XCTAssertEqual(manifestLoader.registerPluginsCount, 1) XCTAssertEqual(got, expected) diff --git a/Tests/TuistLoaderTests/SwiftPackageManager/PackageInfoMapperTests.swift b/Tests/TuistLoaderTests/SwiftPackageManager/PackageInfoMapperTests.swift index e2964fbec0f..246de8ee913 100644 --- a/Tests/TuistLoaderTests/SwiftPackageManager/PackageInfoMapperTests.swift +++ b/Tests/TuistLoaderTests/SwiftPackageManager/PackageInfoMapperTests.swift @@ -40,7 +40,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { .test(name: "Target_1", type: .binary, url: "https://binary.target.com"), .test(name: "Target_2"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -103,7 +103,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ] ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -115,7 +115,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { targets: [ .test(name: "Target_2"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -162,7 +162,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ] ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -174,7 +174,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { targets: [ .test(name: "com.example.dep-1"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -221,7 +221,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { .test(name: "Dependency_1"), .test(name: "Dependency_2"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -277,7 +277,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ] ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -291,7 +291,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { .test(name: "Target_2"), .test(name: "Target_3"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -334,7 +334,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { targets: [ .test(name: "Target1"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -371,7 +371,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { targets: [ .test(name: "Target1"), ], - platforms: [], + platforms: [PackageInfo.Platform(platformName: "iOS", version: "9.0", options: [])], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -415,8 +415,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { cxxLanguageStandard: nil, swiftLanguageVersions: nil ), - ], - platforms: [.macCatalyst] + ] ) XCTAssertEqual( @@ -452,7 +451,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { targets: [ .test(name: "Target1"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -495,7 +494,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { targets: [ .test(name: "Target_1", type: .binary, url: "https://binary.target.com"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -522,7 +521,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { targets: [ .test(name: "Target_1"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -569,7 +568,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ] ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -616,7 +615,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { targets: [ .test(name: "com.example.target-1"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -663,7 +662,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { .test(name: "Target1"), .test(name: "Target2"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -703,7 +702,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { .test(name: "Target2", type: .test), .test(name: "Target3", type: .binary), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -742,7 +741,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { .test(name: "Target2"), .test(name: "Target3"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -776,7 +775,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { targets: [ .test(name: "Target1", sources: ["Subfolder", "Another/Subfolder/file.swift"]), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -848,7 +847,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ] ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -951,7 +950,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { targets: [ .test(name: "Target1"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -1003,7 +1002,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { name: "Target1" ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -1051,13 +1050,12 @@ final class PackageInfoMapperTests: TuistUnitTestCase { type: .system ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil ), - ], - platforms: [.iOS] + ] ) XCTAssertBetterEqual( @@ -1106,7 +1104,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { type: .system ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -1137,7 +1135,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { name: "Target1" ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -1198,7 +1196,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ), .test(name: "Dependency2"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -1283,7 +1281,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { dependencies: [.product(name: "Dependency1", package: "Package2", moduleAliases: nil, condition: nil)] ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -1298,7 +1296,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { dependencies: [.product(name: "Dependency2", package: "Package3", moduleAliases: nil, condition: nil)] ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -1312,7 +1310,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { name: "Dependency2" ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -1376,7 +1374,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { publicHeadersPath: "Headers" ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -1438,7 +1436,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ), .test(name: "Dependency1"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -1496,13 +1494,12 @@ final class PackageInfoMapperTests: TuistUnitTestCase { targets: [ .test(name: "Target1"), ], - platforms: [], + platforms: [.ios, .tvos], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil ), - ], - platforms: [.iOS, .tvOS] + ] ) // Then @@ -1548,13 +1545,12 @@ final class PackageInfoMapperTests: TuistUnitTestCase { targets: [ .test(name: "Target1"), ], - platforms: [], + platforms: [.tvos], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil ), - ], - platforms: [.tvOS] + ] ) XCTAssertEqual( project, @@ -1593,8 +1589,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { cxxLanguageStandard: nil, swiftLanguageVersions: nil ), - ], - platforms: [.iOS] + ] ) let other = ProjectDescription.Project.testWithDefaultConfigs( @@ -1635,7 +1630,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { settings: [.init(tool: .c, name: .headerSearchPath, condition: nil, value: ["value"])] ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -1675,7 +1670,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { settings: [.init(tool: .cxx, name: .headerSearchPath, condition: nil, value: ["value"])] ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -1719,7 +1714,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ] ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -1762,7 +1757,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ] ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -1804,7 +1799,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ] ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -1843,7 +1838,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ] ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -1882,7 +1877,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ] ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -1921,7 +1916,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ] ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -1959,7 +1954,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ] ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -1997,7 +1992,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ] ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -2041,7 +2036,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ] ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -2081,7 +2076,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ] ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -2158,7 +2153,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ] ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -2216,7 +2211,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ] ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -2259,7 +2254,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ] ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -2302,7 +2297,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ] ), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -2346,7 +2341,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ), .test(name: "Dependency1"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -2387,7 +2382,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ), .test(name: "Dependency1", type: .binary), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -2436,7 +2431,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ), .test(name: "Dependency1"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -2477,7 +2472,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ), .test(name: "Dependency1", type: .binary, url: "someURL"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -2526,7 +2521,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ), .test(name: "Dependency1", type: .binary, path: "Dependency1/Dependency1.xcframework"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -2570,7 +2565,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ), .test(name: "Dependency1"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -2585,7 +2580,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { .test(name: "Target3"), .test(name: "Target4"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -2638,7 +2633,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ), .test(name: "Dependency1"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -2653,7 +2648,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { .test(name: "Target3"), .test(name: "Target4"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -2703,7 +2698,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { targets: [ .test(name: "Target1"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: "c99", cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -2738,7 +2733,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { targets: [ .test(name: "Target1"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: "gnu++14", swiftLanguageVersions: nil @@ -2773,7 +2768,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { targets: [ .test(name: "Target1"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: ["4.0.0"] @@ -2808,7 +2803,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { targets: [ .test(name: "Target1"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: ["4.0.0", "5.0.0", "4.2.0"] @@ -2843,7 +2838,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { targets: [ .test(name: "Target1"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: ["4.0.0", "5.0.0", "4.2.0"] @@ -2879,7 +2874,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { targets: [ .test(name: "Target1"), ], - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -2922,7 +2917,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { .init(name: "Product1", type: .library(.automatic), targets: allTargets), ], targets: allTargets.map { .test(name: $0) }, - platforms: [], + platforms: [.ios], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -2992,13 +2987,12 @@ final class PackageInfoMapperTests: TuistUnitTestCase { .test(name: "Dependency1"), .test(name: "Dependency2"), ], - platforms: [], + platforms: [.ios, .tvos], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil ), - ], - platforms: [.iOS, .tvOS] + ] ) let expected: ProjectDescription.Project = .testWithDefaultConfigs( @@ -3074,7 +3068,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { ] ), ], - platforms: [], + platforms: [.ios, .tvos], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -3087,7 +3081,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { .test(name: "Target2"), .test(name: "Target3"), ], - platforms: [], + platforms: [.ios, .tvos], cLanguageStandard: nil, cxxLanguageStandard: nil, swiftLanguageVersions: nil @@ -3095,8 +3089,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { let project = try subject.map( package: "Package", basePath: basePath, - packageInfos: ["Package": package1, "Package2": package2], - platforms: [.iOS, .tvOS] + packageInfos: ["Package": package1, "Package2": package2] ) let expected: ProjectDescription.Project = .testWithDefaultConfigs( @@ -3133,7 +3126,7 @@ final class PackageInfoMapperTests: TuistUnitTestCase { let projectTargets = project!.targets.sorted(by: \.name) let expectedTargets = expected.targets.sorted(by: \.name) - XCTAssertEqual( + XCTAssertBetterEqual( projectTargets, expectedTargets ) @@ -3162,7 +3155,6 @@ extension PackageInfoMapping { package: String, basePath: AbsolutePath = "/", packageInfos: [String: PackageInfo] = [:], - platforms: Set = [.iOS], baseSettings: TuistGraph.Settings = .default, targetSettings: [String: TuistGraph.SettingsDictionary] = [:], swiftToolsVersion: TSCUtility.Version? = nil, @@ -3192,23 +3184,6 @@ extension PackageInfoMapping { packageToTargetsToArtifactPaths: packageToTargetsToArtifactPaths ) - let destinations: ProjectDescription.Destinations = Set(platforms.flatMap { platform -> ProjectDescription.Destinations in - switch platform { - case .iOS: - [.iPhone, .iPad, .appleVisionWithiPadDesign, .macWithiPadDesign] - case .macCatalyst: - [.macCatalyst] - case .macOS: - [.mac] - case .tvOS: - [.appleTv] - case .watchOS: - [.appleWatch] - case .visionOS: - [.appleVision] - } - }) - return try map( packageInfo: packageInfos[package]!, packageInfos: packageInfos, @@ -3219,7 +3194,6 @@ extension PackageInfoMapping { targetSettings: targetSettings, projectOptions: projectOptions, minDeploymentTargets: preprocessInfo.platformToMinDeploymentTarget, - destinations: destinations, targetToProducts: preprocessInfo.targetToProducts, targetToResolvedDependencies: preprocessInfo.targetToResolvedDependencies, macroDependencies: preprocessInfo.macroDependencies, diff --git a/docs/Sources/tuist/tuist.docc/Articles/Tuist/Users/Tutorials/Tuist Tutorial/Getting-Started/Add External Dependencies/Package.swift b/docs/Sources/tuist/tuist.docc/Articles/Tuist/Users/Tutorials/Tuist Tutorial/Getting-Started/Add External Dependencies/Package.swift index 50334783781..b706ba0d8b9 100644 --- a/docs/Sources/tuist/tuist.docc/Articles/Tuist/Users/Tutorials/Tuist Tutorial/Getting-Started/Add External Dependencies/Package.swift +++ b/docs/Sources/tuist/tuist.docc/Articles/Tuist/Users/Tutorials/Tuist Tutorial/Getting-Started/Add External Dependencies/Package.swift @@ -8,8 +8,7 @@ import PackageDescription let packageSettings = PackageSettings( productTypes: [ "Alamofire": .framework, // default is .staticFramework - ], - platforms: [.iOS] + ] ) #endif diff --git a/fixtures/app_with_plugins/Package.swift b/fixtures/app_with_plugins/Package.swift index a93a11c95d2..60be1a37250 100644 --- a/fixtures/app_with_plugins/Package.swift +++ b/fixtures/app_with_plugins/Package.swift @@ -10,10 +10,7 @@ import PackageDescription let localPlugin = LocalHelper(name: "local") let remotePlugin = RemoteHelper(name: "remote") - let packageSettings = PackageSettings( - platforms: [.iOS, .macOS] - ) - + let packageSettings = PackageSettings() #endif let package = Package( diff --git a/fixtures/app_with_spm_dependencies/Tuist/Package.swift b/fixtures/app_with_spm_dependencies/Tuist/Package.swift index 895c9e7582b..a3f9280a8a1 100644 --- a/fixtures/app_with_spm_dependencies/Tuist/Package.swift +++ b/fixtures/app_with_spm_dependencies/Tuist/Package.swift @@ -9,8 +9,7 @@ import PackageDescription baseSettings: .targetSettings, projectOptions: [ "LocalSwiftPackage": .options(disableSynthesizedResourceAccessors: false), - ], - platforms: [.iOS, .watchOS] + ] ) #endif diff --git a/fixtures/multiplatform_app_with_sdk/Package.swift b/fixtures/multiplatform_app_with_sdk/Package.swift index 36f84b74369..49994d9822a 100644 --- a/fixtures/multiplatform_app_with_sdk/Package.swift +++ b/fixtures/multiplatform_app_with_sdk/Package.swift @@ -1,14 +1,6 @@ // swift-tools-version: 5.9 import PackageDescription -#if TUIST - import ProjectDescription - - let packageSettings = PackageSettings( - platforms: [.macOS, .iOS] - ) -#endif - let package = Package( name: "PackageName", dependencies: [ From c481dc48b587ec40f7dac65a2c0b24372c484d43 Mon Sep 17 00:00:00 2001 From: pepicrft Date: Wed, 21 Feb 2024 10:14:01 +0000 Subject: [PATCH 2/2] [Release] Tuist 4.3.2 --- .mise.toml | 2 +- CHANGELOG.md | 14 ++++++++++++++ Sources/TuistSupport/Constants.swift | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/.mise.toml b/.mise.toml index 1e40d9a6b88..49d66693867 100644 --- a/.mise.toml +++ b/.mise.toml @@ -1,5 +1,5 @@ [tools] -tuist = "4.3.1" +tuist = "4.3.2" swiftlint = "0.54.0" swiftformat = "0.53.0" diff --git a/CHANGELOG.md b/CHANGELOG.md index 97dacf2a103..1954a04dc36 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +## 4.3.2 - 2024-02-21 + +### Tuist + +#### Changed + +- Remove PackageSettings platforms property [#5953](https://github.com/tuist/tuist/pull/5953) by [@fortmarek](https://github.com/fortmarek) + +### Tuist Cloud + +#### Fixed + +- Improve retrying logic when interacting with the remote cache by [@pepicrft](https://github.com/pepicrft) + ## 4.3.1 - 2024-02-20 ### Tuist diff --git a/Sources/TuistSupport/Constants.swift b/Sources/TuistSupport/Constants.swift index 9ca5d5144ad..115aec18122 100644 --- a/Sources/TuistSupport/Constants.swift +++ b/Sources/TuistSupport/Constants.swift @@ -8,7 +8,7 @@ public enum Constants { public static let githubAPIURL = "https://api.github.com" public static let githubSlug = "tuist/tuist" public static let communityURL = "https://github.com/tuist/tuist/discussions/categories/general" - public static let version = "4.3.1" + public static let version = "4.3.2" public static let bundleName: String = "tuist.zip" public static let trueValues: [String] = ["1", "true", "TRUE", "yes", "YES"] public static let tuistDirectoryName: String = "Tuist"