Repository navigation
Restore NukeExtensions as its own module - #1038
Merged
Merged
Conversation
Reverts the fold of NukeExtensions into NukeUI (#947), keeping its separate AVKit import fix. NukeExtensions keeps the image view extensions, ImageLoadingOptions, and the ImageDisplaying protocol. It depends on NukeUI so that loading into an AnimatedImageView plays the animation. NukeUI no longer depends on ImageDisplaying: LazyImageView calls AnimatedImageView directly, and a package-level displayContainer(_:) is the one seam NukeExtensions uses. Beyond the mechanical revert, everything written against the folded layout after #947 moves back: the docs and the migration guide, the article and snippet samples, the Demo app, and the tests and helpers.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Reverts #947.
NukeExtensionsis its own module again, with the image view extensions,ImageLoadingOptions, andImageDisplaying. The plan is a more modern set of these APIs inNukeUIthat replaces them, withNukeExtensionsdeprecated later; for now it's only soft-deprecated, so no@availableattributes.Not a mechanical revert
git revert -m 1conflicts in seven files and doesn't compile, because #958 and the work after it were written against the folded layout:AVKitimport fromNuke. It is separable and reverting it would put AV frameworks back in every app's link line, so it stays, with its CHANGELOG line.NukeExtensionsdepends onNukeUI(so that loading into anAnimatedImageViewplays the animation), as the shim already did.NukeUIno longer depends onImageDisplaying:LazyImageViewcallsAnimatedImageView.display(_:)directly, and apackagedisplayContainer(_:)is the one seamNukeExtensionsuses. That needsSWIFT_PACKAGE_NAME = Nukeon theNukeExtensionstarget, whichNukeandNukeUIalready have.uikit.mdandobjective-c.mdsayNukeExtensionsagain; the "Folded into NukeUI" migration guide section, README row, and CHANGELOG entry are gone.ImageViewExtensionsReuseTestsand the three "load into anAnimatedImageView" tests move toNukeExtensionsTests. The re-export-of-NukeUItest is removed.request(id:)andrunWhileMainThreadIsBlockedare not specific to the extensions and move toTests/Helpers.NukeExtensions.docc, the Demo (links and importsNukeExtensions), the snippets package, andNuke.xcodeproj.maindeleted after Fold NukeExtensions into NukeUI #947 stay deleted, and README saysLazyImageViewwhere it saidImageView.To test
make ci-ios-ui ci-tvos ci-macos:NukeExtensionsTests70/71/59 andNukeUITests512/512/505 pass (the suites hold 591@Tests, one fewer thanmain: the removed re-export test).make ci-platforms: all three modules on watchOS and visionOS, the Demo, the SPM build, and the snippets package.NukePerformanceTestsbuilds for testing. DocC builds forNukeExtensions.Note for
proto/image-loading-target: it removesImageDisplayingfromNukeUI'sImageViewExtensions.swift, so it needs a rebase onto this.