Releases: peripheryapp/periphery
Releases Β· peripheryapp/periphery
2.18.0
Breaking
- The command-line parsing strategy for options that were delimited by a pipe or comma has changed. These options are now parsed as a space delimited list, e.g 
--option "arg1" "arg2". - The option 
--external-encodable-protocolsis deprecated, use--external-codable-protocolsinstead. 
Enhancements
- Add experimental unused import analysis option 
--enable-unused-import-analysis. - Add experimental automatic code removal option 
--auto-remove. - Assign-only properties on structs with synthesized initializers are now detected.
 - Added the 
--retain-codable-propertiesoption to retain all properties on Codable types. - Results for redundant protocol conformances will now list the inherited protocols that should replace the redundant conformance, if any.
 - Added the 
--retain-filesoption to retain all declarations within the given files. 
Bug Fixes
- Subscript functions required by 
@dynamicMemberLookupare now retained. - A newline is no longer printed before non-Xcode formatted results.
 --external-codable-protocolsnow retains enums that conform toCodingKey.- Fix public accessibility false-positive for actors.
 - Fix public accessibility false-positive for property wrappers.
 - Fix public accessibility false-positive for declarations referenced from a public 
@inlinablefunction. - Fix public accessibility false-positive for function parameter default values.
 - Fix public accessibility false-positive for inherited and default associated types.
 - Fix public accessibility false-positive for generic types used in the generic argument clause of a return type.
 - Fix public accessibility false-positive for retained/ignored declarations.
 - Fix public accessibility false-positive for enum case parameter types.
 - Fix public accessibility false-positive for properties initialized with generic specialized types.
 - Types associated with assign-only properties are no longer identified as unused until the property is removed.
 - Classes referenced in Info.plist as 
NSPrincipalClassandWKExtensionDelegateClassNameare now retained. 
2.17.1
2.17.0
2.17.0
Breaking
- None.
 
Enhancements
- Added the 
--relative-resultsoption to output result paths relative to the current directory. --quietnow silences warnings too.
Bug Fixes
- Fix redundant public accessibility analysis for protocol members declared in extensions that are referenced cross-module where the protocol itself is not.
 - Remove checks causing errors when scanning multi-platform projects.
 - Additional arguments passed through to xcodebuild/swift are now quoted automatically as needed.
 
2.16.0
2.15.1
2.15.0
2.15.0
Breaking
- Swift 5.7 and macOS 12 are no longer supported.
 
Enhancements
- Reduced indexing and analysis runtime by ~60%.
 
Bug Fixes
- Fix indexing multi-platform projects such as those containing watchOS extensions.
 - Subclasses of CLKComplicationPrincipalClass referenced from an Info.plist are now retained.
 
2.14.1
2.14.0
2.13.0
Breaking
- None.
 
Enhancements
- Improve indexing performance when multiple index stores are provided.
 - Added 
--external-test-case-classesoption to allow external types to be treated as XCTestCase subclasses. - Comment commands now support trailing comments, e.g 
// periphery:ignore - explanation of why this is necessary 
Bug Fixes
- Fix handling of relative paths in 
--file-targets-path. - Fix redundant public accessibility false positives when 
--retain-objc-accessibleis enabled.