You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor!: strongly typed values in BuildSettings and BuildFileSettings (#903)
* Introduce `BuildSetting` enum to enable strongly typed setting serialization
* Migrate `BuildSettings` to use `BuildSetting` enum.
* Remove unused method that was the result of another PR’s rebase.
* Fix equality on `XCBuildConfiguration`
* Update `PlistValue` to write `BuildSetting` correctly
* Fix Tests
* Fix tests
This was fun. `NSDictionary(buildSettings)` is not able to be compared because we wrap swift values so we must use `==` on the swift types since they are not concrete and equatable.
* Fix tests
* Linting
* Allow string literal interpolation
* Convert `PBXBuildFile` settings to strong types.
The settings here are constrained to two cases, one as a string and one as a string array as defined here: https://buck.build/javadoc/com/facebook/buck/apple/xcode/xcodeproj/PBXBuildFile.html
Given the narrow use case we should constraint the available types here to fit the need.
* Add tests
* Linting
* Fix pbxbuildfile equality
* Add easy access to build setting values
* Strongly typed classes tho these appear to always be empty
* Strongly typed attributes
XcodeGen introduced the ability to include whole `PBXObject` values within these dictionaries which end up being written to the project as their reference string value. In order to simplify the attributes interface, i’m removing that capability and consumers will need to do their own unwrapping.
* linting
* Convenience accessors for BuildFileSetting
* Remove deprecated `parallelizable`
* Silence sendability warnings
* Conform `BuildSetting` to `CustomStringConvertible`
* Extract `BuildFileSettings` to own file and convert tests to SwiftTesting
* Extract ProjecteAttributes to own file
* Delete commented code
* Linting
* Add bool bridging to `BuildSetting`
* Update to Swift 6
* Update from `#file` to `#filePath` for swift 6
* Try to get the right swift version on linux
* Maybe 6.0.3 fixes the issue
* Migrate to `XCTUnwrap` to avoid `!` which will crash the test suite and not give an accurate failure count
* Revert to 6.0.2
6.0.3 is not supported and also doesnt have a fix we need.
* Fix tests
* Exclude tests that need `plist` serialization from linux
This need a fix that is in swift 6.1 to pass on linux:
swiftlang/swift-foundation#1002
* Lint fixes
* moar linting
* Add specific `targetReference` to `ProjectAttribute`
Also removed `Encodable` conformance as we have a custom `plist` method that is used for writing.
* Linting
* Add Hashable and literal expressibility for Tuist Tests
* Linting
0 commit comments