Skip to content

Remove all support for decoding PIF objects in SwiftBuildSupport? #8552

Open
@pmattos

Description

@pmattos

Is it reproducible with SwiftPM command-line tools: swift build, swift test, swift package etc?

  • Confirmed reproduction steps with SwiftPM CLI. The description text must include reproduction steps with either of command-line SwiftPM commands, swift build, swift test, swift package etc.

Description

I don’t think we need decoding support any longer for PIF objects. In other words, conform only to Encodable and remove any Decodable code left. The affected type wourd be (all in SwiftBuildSupport/PIF.swift):

struct PIF.TopLevelObject { ... }
class Workspace: HighLevelObject { ... }
class Project: HighLevelObject { ... }
...

I only found this old test using the decoding capability (in IntegrationTests/XCBuildSupportTests):

class PIFTests {
    func testRoundTrip() {  }
}

...so won't affect the newer SwiftBuildSupport target.

But, having said that, this SwiftBuildSupport API is currently public:

public PIFBuilder {
    public func construct() throws -> PIF.TopLevelObject {  }
}

…so not clear if there might be older XCBuildSupport clients out in the wild that might expect this same capability in the newer SwiftBuildSupport too.

Originally tracked by: rdar://149003797

Expected behavior

N/A

Actual behavior

N/A

Steps to reproduce

N/A

Swift Package Manager version/commit hash

393a8f3

Swift & OS version (output of swift --version ; uname -a)

swift-driver version: 1.125.2 Apple Swift version 6.2 (swiftlang-6.2.0.5.56 clang-1700.3.5.51)
Target: arm64-apple-macosx15.0

Darwin Paulos-MacBook-Pro.local 24.5.0 Darwin Kernel Version 24.5.0: Sat Mar 29 11:59:10 PDT 2025; root:xnu_development-11417.120.87.0.3~5/DEVELOPMENT_ARM64_T6020 arm64

Metadata

Metadata

Assignees

No one assigned

    Labels

    build systemChanges to interactions with build systemsenhancementswift buildChanges impacting `swift build`

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions