Releases: peripheryapp/periphery
Releases · peripheryapp/periphery
2.5.0
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
2.4.2
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
2.4.0
Breaking
- The
--xcargs
option has been removed, and superseded by passing arguments following the--
terminator. E.gperiphery scan --xcargs --foo
is nowperiphery scan -- --foo
. This feature can also be used to pass arguments toswift build
for SwiftPM projects.
Enhancements
- None.
Bug Fixes
- None.
2.3.3
2.3.2
2.3.1
2.3.0
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.