Skip to content

Releases: peripheryapp/periphery

3.7.4

26 Apr 08:19
9cb8fb5

Choose a tag to compare

Breaking
  • None.
Enhancements
  • None.
Bug Fixes
  • Fix Homebrew releases.

3.7.3

25 Apr 18:31
fde1592

Choose a tag to compare

Breaking
  • None.
Enhancements
  • None.
Bug Fixes
  • Fix mixed Swift/Objective-C indexing failures caused by non-Swift symbols being processed from the index store, which could trigger unknown extension reference errors and duplicate declaration conflicts.

3.7.2

31 Mar 13:39
dcd5646

Choose a tag to compare

Breaking
  • None.
Enhancements
  • None.
Bug Fixes
  • Fix Homebrew Linux builds failing to link libIndexStore when Swift is resolved through shimmed toolchain paths.

3.7.1

31 Mar 10:20
262c509

Choose a tag to compare

Breaking
  • None.
Enhancements
  • None.
Bug Fixes
  • Fix runtime crash due to absolute libIndexStore.dylib path in pre-built binary.
  • Fix building on Linux with SwiftPM and non-standard Swift install location for Homebrew release.

3.7.0

30 Mar 15:43
1caaa92

Choose a tag to compare

Breaking
  • None.
Enhancements
  • Added support for Bazel 9.x.
Bug Fixes
  • Fix false positive redundant public accessibility for types used in typed throws clauses, e.g. throws(MyError).
  • Fix false positive superfluous ignore comment results for assign-only properties.
  • Fix incorrect generic protocol extension handling in Swift 6.2.4.

3.6.0

18 Feb 14:00
dbabc95

Choose a tag to compare

Breaking
  • The minimum supported Swift version is now 6.1.2.
Enhancements
  • Added the --bazel-check-visibility to disable passing --check_visibility=false to bazel run.
Bug Fixes
  • Fix some causes of potentially non-deterministic results.
  • Fix incorrect superfluous ignore comment results for protocol members.

3.5.1

14 Feb 23:24
fb0130e

Choose a tag to compare

Breaking
  • None.
Enhancements
  • None.
Bug Fixes
  • Fix false positive redundant public accessibility for types used in same-type generic requirements on extensions, e.g. extension SomeProtocol where Self == MyType.
  • Exclude declarations ignored by a file-level // periphery:ignore:all comment from superfluous ignore comment detection.
  • Superfluous ignore comment results are now included in baselines.

3.5.0

11 Feb 09:35
31ca4d6

Choose a tag to compare

Breaking
  • The --no-color option has been replaced with --color=never.
Enhancements
  • The --color option now accepts one of auto, always and never. In auto mode, color is disabled for dumb terminals and non-TTYs.
  • Added detection of superfluous // periphery:ignore comments. A result is now reported when an ignore comment is unnecessary because the declaration is actually used. Can be disabled with --no-superfluous-ignore-comments.
  • More unused code is now reported in a single scan, rather than requiring repeated remove-and-rescan cycles.
Bug Fixes
  • Fix IBAction methods with named parameters or no parameters incorrectly marked as unused.
  • Fix --retain-swift-ui-previews for the #Preview macro.

3.4.0

06 Jan 14:25
e62b470

Choose a tag to compare

Breaking
  • None.
Enhancements
  • Added the --no-color/--color option to disable/enable colored output.
  • Added the --no-retain-spi option to not retain the given SPI (System Programming Interface) attributed members when using --retain-public.
  • Exclude wrapped properties from assign-only analysis, as Periphery cannot observe the behavior of the property wrapper.
  • Improved the readability of result messages.
  • Improved Interface Builder file parsing to detect unused @IBOutlet, @IBAction, @IBInspectable, and @IBSegueAction members. Previously, all @IB* members were blindly retained if their containing class was referenced in a XIB or storyboard.
Bug Fixes
  • Fix redundant public accessibility false positive for types referenced via static members in property initializers.
  • Fix inline ignore comment not working on properties.
  • Fix false positive when a constrained protocol extension provides a default implementation that satisfies a requirement of the constraining protocol.
  • Fix indexing of xib/storyboard files in SPM projects.
  • Fix types conforming to App Intents protocols being reported as unused.
  • Fix superclass initializer reported as unused when called on subclass.
  • Fix unused parameter false-positive for parameters used in closure capture lists.
  • Fix sorting of results with a location override.

3.3.0

13 Dec 19:16
414ebf5

Choose a tag to compare

Breaking
  • None.
Enhancements
  • Added the --retain-unused-imported-modules option.
  • Added the --format gitlab-codemagic formatting option for GitLabs Code Quality artifact reports
  • Added the --bazel-index-store option to specify the path of a global index store.
Bug Fixes
  • Fix concurrent mutation crash.
  • Fix unused import false-positive for when a declaration's associated types are declared in different module than module that declares the declaration.
  • Fix unused import false-positive for modules that export unindexed modules.
  • Exclude conditionally imported modules from unused import detection, as they may provide symbols for code that was not compiled.
  • Fix --retain-assign-only-property-types for properties with trailing comments.
  • Fix unused parameter analysis for parameters with name enclosed by backticks.
  • Fix indexing of Xcode resources (storyboards, etc.) in projects using file system folders.
  • Fix infinite loop loading Xcode projects with circular references.