Skip to content

Releases: peripheryapp/periphery

2.5.0

27 May 17:51
Compare
Choose a tag to compare
Breaking
  • None.
Enhancements
  • Add redundant public accessibility analysis.
  • Add arm64 support.
  • Add --retain-assign-only-property-types option to retain assign-only properties based on their type.
  • Declarations in an entry point file (e.g main.swift) are no longer blindly retained, even if unused.
  • Additional arguments passed to xcodebuild can now override the default set of environment based arguments.
Bug Fixes
  • Fix issue where protocol property references could be incorrectly associated with the getter/setter rather than the property itself, leading to erroneous results.
  • Fix unused parameter false positive result for identical function signatures at the same location in different files.

2.4.3

05 Mar 12:39
Compare
Choose a tag to compare
Breaking
  • None.
Enhancements
  • None.
Bug Fixes
  • Retain constructors of generic structs that cannot be identified as used due to Swift bug SR-7093.

2.4.2

11 Feb 12:43
Compare
Choose a tag to compare
Breaking
  • None.
Enhancements
  • None.
Bug Fixes
  • In Swift 5.3 and lower, all optional protocol members are now retained in order to workaround a Swift bug. This bug is resolved in Swift 5.4.
  • Cases of public enums are now also retained when using --retain-public.
  • Open method parameters are now also retained when using --retain-public.
  • Empty public protocols that have an implementation in extensions are no longer identified as redundant.
  • Foreign protocol method parameters are no longer identified as unused.

2.4.1

20 Dec 16:10
Compare
Choose a tag to compare
Breaking
  • None.
Enhancements
  • None.
Bug Fixes
  • Fix ignore comments on protocol declarations.

2.4.0

19 Dec 13:03
Compare
Choose a tag to compare
Breaking
  • The --xcargs option has been removed, and superseded by passing arguments following the -- terminator. E.g periphery scan --xcargs --foo is now periphery scan -- --foo. This feature can also be used to pass arguments to swift build for SwiftPM projects.
Enhancements
  • None.
Bug Fixes
  • None.

2.3.3

17 Dec 17:19
Compare
Choose a tag to compare
Breaking
  • None.
Enhancements
  • None.
Bug Fixes
  • Improve unused parameter location identification.

2.3.2

10 Dec 16:45
Compare
Choose a tag to compare
Breaking
  • None.
Enhancements
  • None.
Bug Fixes
  • Fix indexing failure on unhandled declaration kinds, such as 'commentTag'.
  • --retain-objc-accessible also retains private declarations explicitly attributed with @objc.

2.3.1

06 Dec 11:54
Compare
Choose a tag to compare
Breaking
  • None.
Enhancements
  • None.
Bug Fixes
  • Fix crash during indexing phase.

2.3.0

05 Dec 14:00
Compare
Choose a tag to compare
Breaking
  • JSON and CSV output formats have changed to reflect the fact that declarations can have multiple IDs if they're members of multiple build targets.
  • Declarations accessible by the Objective-C runtime are no longer retained by default. The --no-retain-objc-annotated option has been removed, and --retain-objc-accessible added.
Enhancements
  • Protocols that are never used as an existential type are now explicitly identified as redundant rather than simply unused, which could be confusing.
  • Add --clean-build flag to clean build artifacts before the build step.
  • Add support for files that are members of multiple build targets. Such files no longer produce erroneous results.
Bug Fixes
  • Protocol members whose implementation is provided by an external type, yet aren't referenced via a value type are now identified as unused.
  • @IBInspectable properties are now retained.
  • Declarations ignored with a '// periphery:ignore' comment now also retain their references to other declarations.
  • Fix running Periphery from within Xcode where Xcode's environment variables could cause build failures or incorrect results.
  • Fix an issue where a protocol could incorrectly retain references to methods in an unused conforming declaration.

2.2.2

23 Nov 10:05
Compare
Choose a tag to compare
Breaking
  • None.
Enhancements
  • None.
Bug Fixes
  • Extension classes referenced in Info.plist as NSExtensionPrincipalClass are now retained.