Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rework app cast handling; add JSON compatibility; add AppCastItem.Channel; built-in channel-based app cast filter implementation #605

Merged
merged 68 commits into from
Aug 9, 2024

Conversation

Deadpikle
Copy link
Collaborator

@Deadpikle Deadpikle commented Jul 28, 2024

Reworks app cast handling by separating out some logic of things, adjust return parameters, and more. Also adds JSON app cast handling and ChannelAppCastFilter class.

  • Consider further changes to DownloadAndParse (split into separate download and parse functions?), GetAvailableUpdates (consider rename or different FilteredAppCastItems property or similar for greater clarity on what is happening)
  • Consider removing AppCastHandler entirely and breaking out its functionality to different objects that are more specific (filtering to a filter object, etc.)
  • Decide whether AppCastHandler should hold an actual AppCast object and, if not, who should. (What state is held where, in other words?)
    • Probably will make main SparkleUpdater keep a most recent parsed cached version for safe keeping but otherwise not hang onto it
  • Use async methods from app cast generators, IAppCastDataDownloader.DownloadAndGetAppCastDataAsync
  • Add JSON app cast handling (implements IAppCastGenerator)
  • Add unit tests for JSON app cast handling to core lib
  • Add unit tests for async app cast generator methods
  • Add tests that items are sorted after Generator parses them out
  • Add unit tests for JSON app cast handling to app cast generator
  • Add unit tests for changing signature enclosure title in XML output to app cast maker, etc.
  • Add tests for ChannelAppCastFilter
  • Update output JSON names for AppCastItem, AppCast, etc.
  • Update UI projects, samples as needed
  • Finish adjustments to XML serialization/parsing to match normal Sparkle output (Enhance NetSparkleUpdater app cast compatibility with Sparkle app casts #275), including applicable changes to app cast generator (this should be fairly easy to do now with another option or two on both the SparkleUpdater end and the app cast generator end -- basically, let the user determine what the title for signature is in xml app casts)
  • Support <sparkle:channel> for channels outside of Version property (incl. tests, app cast gen, usage in ChannelAppCastFilter)
  • Consider making a bunch of things async for easier use for potentially long operations
  • Consider fixing UI-created issue where download window and update available window show wrong data (don't want to break anyone building from source, I guess...although it does bleed into the UI refactor a bit...)
  • Fix any remaining warnings, documentation issues
  • Warn users somewhere about this change in .NET 8 (adds git commit to assembly version) which affects this and is confusing for end users: https://learn.microsoft.com/en-us/dotnet/core/compatibility/sdk/8.0/source-link

Closes #275
Closes #598
Closes #599

Makes future app cast handling easier and cleans up logic a little bit. Separates out some data models from actual parsing/using/manipulation of data. Still needs more work.

Closes #598
Closes #599
@Deadpikle Deadpikle changed the title WIP: Rework app cast handling WIP: Rework app cast handling; add JSON compatibility Jul 30, 2024
@Deadpikle Deadpikle changed the title WIP: Rework app cast handling; add JSON compatibility; built-in channel-based app cast filter implementation WIP: Rework app cast handling; add JSON compatibility; add AppCastItem.Channel; built-in channel-based app cast filter implementation Aug 6, 2024
@Deadpikle Deadpikle changed the title WIP: Rework app cast handling; add JSON compatibility; add AppCastItem.Channel; built-in channel-based app cast filter implementation Rework app cast handling; add JSON compatibility; add AppCastItem.Channel; built-in channel-based app cast filter implementation Aug 9, 2024
@Deadpikle Deadpikle merged commit 9992efb into develop Aug 9, 2024
5 checks passed
@Deadpikle Deadpikle deleted the feature/app-cast-rework branch August 9, 2024 08:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
1 participant