Skip to content

Releases: peripheryapp/periphery

2.21.0

15 Jun 14:23
3f76904
Compare
Choose a tag to compare
Breaking
  • Removed support for Swift 5.8/Xcode 14.3.
Enhancements
  • Added baseline support. Write a baseline with --write-baseline <file> and use it with --baseline <file>.
Bug Fixes
  • Fix local Swift package support.

2.20.0

29 May 21:54
9e31943
Compare
Choose a tag to compare
Breaking
  • None.
Enhancements
  • Added GitHub Actions output formatter.
Bug Fixes
  • Disable unused import analysis for files retained with --retain-files.
  • Fix handling of Xcode project paths containing spaces.
  • Fix bug causing non-deterministic results for structs with implicit initializers.

2.19.0

20 May 18:32
66019b4
Compare
Choose a tag to compare
Breaking
  • None.
Enhancements
  • Unused import detection is now enabled by default.
  • Added the --retain-encodable-properties option to retain all properties on Encodable types only.
  • Added the --xcode-list-arguments option to pass additional arguments to xcodebuild -list.
  • Added the --skip-schemes-validation option to skip validation of Xcode schemes.
Bug Fixes
  • @State and @Binding properties are now excluded from assign-only property analysis.
  • Unused imports are now detected in files containing no references.

2.18.0

21 Jan 18:49
d5e45e9
Compare
Choose a tag to compare
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-protocols is deprecated, use --external-codable-protocols instead.
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-properties option 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-files option to retain all declarations within the given files.
Bug Fixes
  • Subscript functions required by @dynamicMemberLookup are now retained.
  • A newline is no longer printed before non-Xcode formatted results.
  • --external-codable-protocols now retains enums that conform to CodingKey.
  • 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 @inlinable function.
  • 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 NSPrincipalClass and WKExtensionDelegateClassName are now retained.

2.17.1

04 Dec 09:12
1a06cd8
Compare
Choose a tag to compare

2.17.1

Breaking
  • None.
Enhancements
  • Add support for indexing plist files via the generic --file-targets-path option.
Bug Fixes
  • None.

2.17.0

23 Nov 09:25
8509117
Compare
Choose a tag to compare

2.17.0

Breaking
  • None.
Enhancements
  • Added the --relative-results option to output result paths relative to the current directory.
  • --quiet now 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

27 Sep 14:33
f78ce90
Compare
Choose a tag to compare

2.16.0

Breaking
  • None.
Enhancements
  • SwiftUI previews (PreviewProvider) are no longer retained by default. Retain them with --retain-swift-ui-previews.
Bug Fixes
  • Fix retaining members of public generic protocol extensions with --retain-public.

2.15.1

17 Sep 14:32
ae01b91
Compare
Choose a tag to compare

2.15.1

Breaking
  • None.
Enhancements
  • Swift 5.9 support.
Bug Fixes
  • Path forward slashes in JSON output formats are no longer escaped.
  • INDEX_ENABLE_DATA_STORE is now forcefully enabled as it's required for indexing in some cases.

2.15.0

03 Jul 23:07
5182b80
Compare
Choose a tag to compare

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

25 Jun 11:15
8647b02
Compare
Choose a tag to compare

2.14.1

Breaking
  • None.
Enhancements
  • None.
Bug Fixes
  • Revert SwiftPM binary command plugin. Sorry folks, but SwiftPM doesn't provide the appropriate permissions for Periphery to build projects in the sandbox.