Skip to content

deps: align NuGet package versions (supersedes #533, #536, #539)#551

Merged
tylerkron merged 2 commits into
mainfrom
deps/nuget-version-alignment
Jun 2, 2026
Merged

deps: align NuGet package versions (supersedes #533, #536, #539)#551
tylerkron merged 2 commits into
mainfrom
deps/nuget-version-alignment

Conversation

@tylerkron
Copy link
Copy Markdown
Contributor

Summary

Consolidates the three open Dependabot dependency PRs — #533, #536, and #539 — which were all failing build-and-test with the same root cause. This single PR carries the still-relevant bumps, correctly aligned so the build passes.

Root cause

All three failed dotnet restore with NU1605 package-downgrade errors (an error by default, independent of TreatWarningsAsErrors). Dependabot bumped Daqifi.Core in the DataModel and IO library projects but left the direct reference at 0.21.0 in Daqifi.Desktop (the main project) and, transitively, Daqifi.Desktop.UITest. NuGet treats a transitively-resolved version that exceeds a direct reference as a downgrade:

error NU1605: Detected package downgrade: Daqifi.Core from 0.22.0 to 0.21.0.
  DAQiFi -> Daqifi.Desktop.DataModel -> Daqifi.Core (>= 0.22.0)
  DAQiFi -> Daqifi.Core (>= 0.21.0)

#536 hit an additional Google.Protobuf downgrade in the Test project; #533's failure was the stale Google.Protobuf variant.

Changes

Package Change Projects
Daqifi.Core 0.21.0 → 0.22.0 DataModel, IO, Daqifi.Desktop (main)
Microsoft.NET.Test.Sdk 18.5.1 → 18.6.0 all 5 test projects (incl. UITest)
Sentry 6.5.0 → 6.6.0 Common

Daqifi.Core 0.22.0 is a non-breaking minor release relative to 0.21.0 (the last breaking change was 0.20.0 dropping .NET 8).

Why some bumps were dropped

This leaves #539's intent as the only still-relevant content, completed here with the missing Daqifi.Core references (main + UITest) that caused its failure.

Verification

dotnet restore on the full solution now exits 0 with no NU1605 errors — restore is exactly where all three PRs failed. (Compile/test for the net10.0-windows WPF projects runs on the Windows CI runner.)

Supersedes

Closes #533, #536, #539.

🤖 Generated with Claude Code

Consolidates the still-relevant version bumps from Dependabot PRs #533,
#536, and #539, which were all failing build-and-test with NU1605
package-downgrade errors.

Root cause: Dependabot bumped Daqifi.Core in the DataModel and IO library
projects but left the direct reference in Daqifi.Desktop (and, transitively,
Daqifi.Desktop.UITest) at 0.21.0. NuGet treats a transitive version that is
higher than a direct reference as a downgrade, which is an error by default.
Aligning all three direct Daqifi.Core references clears it.

Changes:
- Daqifi.Core 0.21.0 -> 0.22.0 (DataModel, IO, Daqifi.Desktop) [non-breaking]
- Microsoft.NET.Test.Sdk 18.5.1 -> 18.6.0 (all 5 test projects)
- Sentry 6.5.0 -> 6.6.0 (Common)

The Google.Protobuf 3.34.1 -> 3.35.0 bumps from #533/#536 are dropped: #537
removed all direct Google.Protobuf references (it now resolves transitively
via Daqifi.Core). The coverlet.collector and System.Management bumps already
landed in #538.

Verified locally: dotnet restore on the full solution now exits 0 with no
NU1605 errors (restore is where all three PRs failed).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@tylerkron tylerkron requested a review from a team as a code owner June 2, 2026 14:50
@qodo-code-review
Copy link
Copy Markdown
Contributor

Review Summary by Qodo

Align NuGet package versions to resolve dependency conflicts

✨ Enhancement

Grey Divider

Walkthroughs

Description
• Align Daqifi.Core version 0.21.0 → 0.22.0 across all projects
• Update Microsoft.NET.Test.Sdk 18.5.1 → 18.6.0 in all test projects
• Bump Sentry 6.5.0 → 6.6.0 in Common project
• Resolve NU1605 package-downgrade errors from failed Dependabot PRs
Diagram
flowchart LR
  A["Dependabot PRs<br/>#533, #536, #539"] -->|"NU1605 errors"| B["Version misalignment<br/>across projects"]
  B -->|"Daqifi.Core 0.21.0→0.22.0"| C["DataModel, IO,<br/>Daqifi.Desktop"]
  B -->|"Microsoft.NET.Test.Sdk<br/>18.5.1→18.6.0"| D["All 5 test projects"]
  B -->|"Sentry 6.5.0→6.6.0"| E["Common project"]
  C -->|"Resolved"| F["Clean dotnet restore<br/>no NU1605 errors"]
  D --> F
  E --> F

Loading

Grey Divider

File Changes

1. Daqifi.Desktop.Common.Test/Daqifi.Desktop.Common.Test.csproj Dependencies +1/-1

Update Microsoft.NET.Test.Sdk to 18.6.0

Daqifi.Desktop.Common.Test/Daqifi.Desktop.Common.Test.csproj


2. Daqifi.Desktop.Common/Daqifi.Desktop.Common.csproj Dependencies +1/-1

Bump Sentry package to 6.6.0

Daqifi.Desktop.Common/Daqifi.Desktop.Common.csproj


3. Daqifi.Desktop.DataModel.Test/Daqifi.Desktop.DataModel.Test.csproj Dependencies +1/-1

Update Microsoft.NET.Test.Sdk to 18.6.0

Daqifi.Desktop.DataModel.Test/Daqifi.Desktop.DataModel.Test.csproj


View more (6)
4. Daqifi.Desktop.DataModel/Daqifi.Desktop.DataModel.csproj Dependencies +1/-1

Upgrade Daqifi.Core to 0.22.0

Daqifi.Desktop.DataModel/Daqifi.Desktop.DataModel.csproj


5. Daqifi.Desktop.IO.Test/Daqifi.Desktop.IO.Test.csproj Dependencies +1/-1

Update Microsoft.NET.Test.Sdk to 18.6.0

Daqifi.Desktop.IO.Test/Daqifi.Desktop.IO.Test.csproj


6. Daqifi.Desktop.IO/Daqifi.Desktop.IO.csproj Dependencies +1/-1

Upgrade Daqifi.Core to 0.22.0

Daqifi.Desktop.IO/Daqifi.Desktop.IO.csproj


7. Daqifi.Desktop.Test/Daqifi.Desktop.Test.csproj Dependencies +1/-1

Update Microsoft.NET.Test.Sdk to 18.6.0

Daqifi.Desktop.Test/Daqifi.Desktop.Test.csproj


8. Daqifi.Desktop.UITest/Daqifi.Desktop.UITest.csproj Dependencies +1/-1

Update Microsoft.NET.Test.Sdk to 18.6.0

Daqifi.Desktop.UITest/Daqifi.Desktop.UITest.csproj


9. Daqifi.Desktop/Daqifi.Desktop.csproj Dependencies +1/-1

Upgrade Daqifi.Core to 0.22.0

Daqifi.Desktop/Daqifi.Desktop.csproj


Grey Divider

Qodo Logo

@qodo-code-review
Copy link
Copy Markdown
Contributor

qodo-code-review Bot commented Jun 2, 2026

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (1)

Context used
✅ Compliance rules (platform): 47 rules

Grey Divider


Action required

1. Tab-indented Desktop Daqifi.Core 📘 Rule violation ✧ Quality
Description
Several updated PackageReference lines (for Daqifi.Core and Sentry) are indented with a tab
character, violating the 4-spaces/no-tabs indentation requirement. This can lead to inconsistent
formatting across tooling/editors and create noisy diffs or merge conflicts.
Code

Daqifi.Desktop/Daqifi.Desktop.csproj[57]

Evidence
PR Compliance ID 244818 requires spaces-only indentation (no tabs). The cited modified
PackageReference entries in the project files—Daqifi.Desktop.csproj for Daqifi.Core,
Daqifi.Desktop.Common.csproj for Sentry, and Daqifi.Desktop.DataModel.csproj /
Daqifi.Desktop.IO.csproj for Daqifi.Core—each contain a leading tab on the updated line(s),
directly demonstrating the rule violation.

Rule 244818: Use 4 spaces for indentation (no tabs)
Daqifi.Desktop/Daqifi.Desktop.csproj[57-57]
Daqifi.Desktop.Common/Daqifi.Desktop.Common.csproj[15-15]
Daqifi.Desktop.DataModel/Daqifi.Desktop.DataModel.csproj[11-11]
Daqifi.Desktop.IO/Daqifi.Desktop.IO.csproj[10-10]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
One or more modified `PackageReference` lines are indented with a tab character, but the coding standard (PR Compliance ID 244818) requires 4-space indentation and forbids tabs.

## Issue Context
This PR updates `Daqifi.Core` to `0.22.0` across multiple projects (Desktop, DataModel, IO) and also modifies the `Sentry` `PackageReference` in the Common project. Replace the leading tab indentation on the affected `PackageReference` line(s) with spaces-only indentation to comply with the standard and avoid inconsistent formatting/diffs.

## Fix Focus Areas
- Daqifi.Desktop/Daqifi.Desktop.csproj[57-57]
- Daqifi.Desktop.Common/Daqifi.Desktop.Common.csproj[15-15]
- Daqifi.Desktop.DataModel/Daqifi.Desktop.DataModel.csproj[11-11]
- Daqifi.Desktop.IO/Daqifi.Desktop.IO.csproj[10-10]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Qodo Logo

<ItemGroup>
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.4.2" />
<PackageReference Include="Daqifi.Core" Version="0.21.0" />
<PackageReference Include="Daqifi.Core" Version="0.22.0" />
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

1. Tab-indented desktop daqifi.core 📘 Rule violation ✧ Quality

Several updated PackageReference lines (for Daqifi.Core and Sentry) are indented with a tab
character, violating the 4-spaces/no-tabs indentation requirement. This can lead to inconsistent
formatting across tooling/editors and create noisy diffs or merge conflicts.
Agent Prompt
## Issue description
One or more modified `PackageReference` lines are indented with a tab character, but the coding standard (PR Compliance ID 244818) requires 4-space indentation and forbids tabs.

## Issue Context
This PR updates `Daqifi.Core` to `0.22.0` across multiple projects (Desktop, DataModel, IO) and also modifies the `Sentry` `PackageReference` in the Common project. Replace the leading tab indentation on the affected `PackageReference` line(s) with spaces-only indentation to comply with the standard and avoid inconsistent formatting/diffs.

## Fix Focus Areas
- Daqifi.Desktop/Daqifi.Desktop.csproj[57-57]
- Daqifi.Desktop.Common/Daqifi.Desktop.Common.csproj[15-15]
- Daqifi.Desktop.DataModel/Daqifi.Desktop.DataModel.csproj[11-11]
- Daqifi.Desktop.IO/Daqifi.Desktop.IO.csproj[10-10]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Daqifi.Core 0.22.0 added a fifth optional `bool skipVersionCheck` parameter
to IFirmwareUpdateService.UpdateWifiModuleAsync (part of the "WiFi planning
split from execution" work). Production calls the method with the default, so
it compiles unchanged, but Moq validates a .Callback delegate against the
method's full parameter list at setup time, so the four-parameter callback
threw at runtime:

  System.ArgumentException: Invalid callback. Setup on method with parameters
  (IStreamingDevice, string, IProgress<FirmwareUpdateProgress>,
  CancellationToken, bool) cannot invoke callback with parameters
  (IStreamingDevice, string, IProgress<FirmwareUpdateProgress>,
  CancellationToken).

Update the Setup, Callback, and Verify for UpdateWifiModuleAsync to the
five-parameter signature (It.IsAny<bool>() for the new arg). UpdateFirmwareAsync
is unchanged in 0.22.0, so its mocks are left as-is.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 2, 2026

📊 Code Coverage Report

Summary

Summary
Generated on: 6/2/2026 - 3:03:27 PM
Coverage date: 6/2/2026 - 3:02:50 PM - 6/2/2026 - 3:03:22 PM
Parser: MultiReport (5x Cobertura)
Assemblies: 3
Classes: 121
Files: 150
Line coverage: 19.3% (1665 of 8585)
Covered lines: 1665
Uncovered lines: 6920
Coverable lines: 8585
Total lines: 26661
Branch coverage: 19.6% (559 of 2852)
Covered branches: 559
Total branches: 2852
Method coverage: Feature is only available for sponsors

Coverage

DAQiFi - 19.1%
Name Line Branch
DAQiFi 19.1% 19.6%
Daqifi.Desktop.App 3.9% 0%
Daqifi.Desktop.Channel.AbstractChannel 40.9% 22.2%
Daqifi.Desktop.Channel.AnalogChannel 58.7% 12.5%
Daqifi.Desktop.Channel.Channel 11.5% 0%
Daqifi.Desktop.Channel.ChannelColorManager 100% 100%
Daqifi.Desktop.Channel.DataSample 91.6%
Daqifi.Desktop.Channel.DigitalChannel 65.2% 12.5%
Daqifi.Desktop.Commands.CompositeCommand 0% 0%
Daqifi.Desktop.Commands.HostCommands 0%
Daqifi.Desktop.Commands.WeakEventHandlerManager 0% 0%
Daqifi.Desktop.Configuration.FirewallConfiguration 90.6% 66.6%
Daqifi.Desktop.Configuration.WindowsFirewallWrapper 64% 68.4%
Daqifi.Desktop.ConnectionManager 42.4% 39.2%
Daqifi.Desktop.Converters.BoolToActiveStatusConverter 0% 0%
Daqifi.Desktop.Converters.BoolToConnectionStatusConverter 0% 0%
Daqifi.Desktop.Converters.BoolToStatusColorConverter 0% 0%
Daqifi.Desktop.Converters.BrushColorMatchConverter 0% 0%
Daqifi.Desktop.Converters.ConnectionTypeToColorConverter 0% 0%
Daqifi.Desktop.Converters.ConnectionTypeToUsbConverter 0% 0%
Daqifi.Desktop.Converters.InvertedBoolToVisibilityConverter 0% 0%
Daqifi.Desktop.Converters.ListToStringConverter 0% 0%
Daqifi.Desktop.Converters.NotNullToVisibilityConverter 0% 0%
Daqifi.Desktop.Converters.OxyColorToBrushConverter 0% 0%
Daqifi.Desktop.Device.AbstractStreamingDevice 42.8% 33.3%
Daqifi.Desktop.Device.DeviceMessage 0%
Daqifi.Desktop.Device.Firmware.BootloaderSessionStreamingDeviceAdapter 0% 0%
Daqifi.Desktop.Device.Firmware.WifiPromptDelayProcessRunner 0% 0%
Daqifi.Desktop.Device.NativeMethods 100%
Daqifi.Desktop.Device.SerialDevice.SerialStreamingDevice 27.6% 29.4%
Daqifi.Desktop.Device.WiFiDevice.DaqifiStreamingDevice 40.9% 39.4%
Daqifi.Desktop.DialogService.DialogService 0% 0%
Daqifi.Desktop.DialogService.ServiceLocator 0% 0%
Daqifi.Desktop.DiskSpace.DiskSpaceCheckResult 100%
Daqifi.Desktop.DiskSpace.DiskSpaceEventArgs 100%
Daqifi.Desktop.DiskSpace.DiskSpaceMonitor 88.2% 86.6%
Daqifi.Desktop.DuplicateDeviceCheckResult 100%
Daqifi.Desktop.Exporter.OptimizedLoggingSessionExporter 66.5% 60.9%
Daqifi.Desktop.Exporter.SampleData 100%
Daqifi.Desktop.Helpers.BooleanConverter`1 0% 0%
Daqifi.Desktop.Helpers.BooleanToInverseBoolConverter 0% 0%
Daqifi.Desktop.Helpers.BooleanToVisibilityConverter 0%
Daqifi.Desktop.Helpers.EnumDescriptionConverter 100% 100%
Daqifi.Desktop.Helpers.IntToVisibilityConverter 0% 0%
Daqifi.Desktop.Helpers.MinMaxDownsampler 98.6% 93.7%
Daqifi.Desktop.Helpers.MyMultiValueConverter 0%
Daqifi.Desktop.Helpers.NaturalSortHelper 100% 100%
Daqifi.Desktop.Helpers.OxyPlotDarkTheme 0%
Daqifi.Desktop.Helpers.VersionHelper 98.2% 66.2%
Daqifi.Desktop.Logger.DatabaseLogger 0% 0%
Daqifi.Desktop.Logger.DatabaseMigrator 0% 0%
Daqifi.Desktop.Logger.DeviceLegendGroup 100% 100%
Daqifi.Desktop.Logger.LoggedSeriesLegendItem 0% 0%
Daqifi.Desktop.Logger.LoggingContext 100%
Daqifi.Desktop.Logger.LoggingContextDesignTimeFactory 0%
Daqifi.Desktop.Logger.LoggingManager 0% 0%
Daqifi.Desktop.Logger.LoggingSession 16% 5%
Daqifi.Desktop.Logger.PlotLogger 0% 0%
Daqifi.Desktop.Logger.SessionDeviceMetadata 80%
Daqifi.Desktop.Logger.SummaryLogger 0% 0%
Daqifi.Desktop.Logger.TimestampGapDetector 95% 83.3%
Daqifi.Desktop.Loggers.ImportOptions 0%
Daqifi.Desktop.Loggers.ImportProgress 0% 0%
Daqifi.Desktop.Loggers.SdCardSessionImporter 0% 0%
Daqifi.Desktop.MainWindow 0% 0%
Daqifi.Desktop.Migrations.AddSamplesSessionTimeIndex 0%
Daqifi.Desktop.Migrations.AddSessionDeviceMetadata 0%
Daqifi.Desktop.Migrations.AddSessionSampleCount 0%
Daqifi.Desktop.Migrations.InitialSQLiteMigration 0%
Daqifi.Desktop.Migrations.LoggingContextModelSnapshot 0%
Daqifi.Desktop.Models.AddProfileModel 0%
Daqifi.Desktop.Models.DaqifiSettings 80.5% 83.3%
Daqifi.Desktop.Models.DebugDataCollection 6.6% 0%
Daqifi.Desktop.Models.DebugDataModel 0% 0%
Daqifi.Desktop.Models.Notifications 0%
Daqifi.Desktop.Models.SdCardFile 16.6% 0%
Daqifi.Desktop.Services.NoOpMessageBoxService 0%
Daqifi.Desktop.Services.WindowsPrincipalAdminChecker 0%
Daqifi.Desktop.Services.WpfMessageBoxService 0%
Daqifi.Desktop.UpdateVersion.VersionNotification 85.7% 54.1%
Daqifi.Desktop.View.ConnectionDialog 0% 0%
Daqifi.Desktop.View.DebugWindow 0% 0%
Daqifi.Desktop.View.DeviceLogsView 0% 0%
Daqifi.Desktop.View.DuplicateDeviceDialog 0% 0%
Daqifi.Desktop.View.ErrorDialog 0% 0%
Daqifi.Desktop.View.ExportDialog 0% 0%
Daqifi.Desktop.View.FirmwareDialog 0% 0%
Daqifi.Desktop.View.Flyouts.FirmwareFlyout 0% 0%
Daqifi.Desktop.View.Flyouts.LiveGraphFlyout 0% 0%
Daqifi.Desktop.View.Flyouts.NotificationsFlyout 0% 0%
Daqifi.Desktop.View.Flyouts.SummaryFlyout 0% 0%
Daqifi.Desktop.View.MigrationStatusWindow 0% 0%
Daqifi.Desktop.View.MinimapInteractionController 0% 0%
Daqifi.Desktop.View.ProfilesPane 0% 0%
Daqifi.Desktop.View.Prototype.ChannelsPanePrototype 0% 0%
Daqifi.Desktop.View.Prototype.DevicesPanePrototype 0% 0%
Daqifi.Desktop.View.Prototype.LiveGraphPane 0% 0%
Daqifi.Desktop.View.Prototype.LoggedDataPanePrototype 0% 0%
Daqifi.Desktop.View.SuccessDialog 0% 0%
Daqifi.Desktop.ViewModels.ChannelsPaneViewModel 0% 0%
Daqifi.Desktop.ViewModels.ChannelTileViewModel 0% 0%
Daqifi.Desktop.ViewModels.ConnectionDialogViewModel 37.3% 36.1%
Daqifi.Desktop.ViewModels.DaqifiViewModel 17.3% 10.5%
Daqifi.Desktop.ViewModels.DeviceLogsViewModel 52.5% 46%
Daqifi.Desktop.ViewModels.DevicesPaneViewModel 0% 0%
Daqifi.Desktop.ViewModels.DeviceTileViewModel 0% 0%
Daqifi.Desktop.ViewModels.DuplicateDeviceDialogViewModel 0%
Daqifi.Desktop.ViewModels.ErrorDialogViewModel 0%
Daqifi.Desktop.ViewModels.ExportDialogViewModel 0% 0%
Daqifi.Desktop.ViewModels.FirmwareDialogViewModel 0% 0%
Daqifi.Desktop.ViewModels.NewProfileChannelItem 0%
Daqifi.Desktop.ViewModels.NewProfileDeviceItem 0% 0%
Daqifi.Desktop.ViewModels.ProfilesPaneViewModel 0% 0%
Daqifi.Desktop.ViewModels.SettingsViewModel 0% 0%
Daqifi.Desktop.ViewModels.SuccessDialogViewModel 85.7%
Daqifi.Desktop.WindowViewModelMapping.IWindowViewModelMappingsContract 0%
Daqifi.Desktop.WindowViewModelMapping.WindowViewModelMappings 0%
Sentry.Generated.BuildPropertyInitializer 100%
Daqifi.Desktop.Common - 38.1%
Name Line Branch
Daqifi.Desktop.Common 38.1% 18.4%
Daqifi.Desktop.Common.AppDataPaths 81.2% 50%
Daqifi.Desktop.Common.Loggers.AppLogger 33.7% 16.6%
Daqifi.Desktop.Common.Loggers.NoOpLogger 0%
Daqifi.Desktop.IO - 100%
Name Line Branch
Daqifi.Desktop.IO 100% ****
Daqifi.Desktop.IO.Messages.MessageEventArgs`1 100%

Coverage report generated by ReportGeneratorView full report in build artifacts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant