Skip to content

chore: remove redundant Google.Protobuf package references#537

Merged
tylerkron merged 1 commit into
mainfrom
chore/remove-redundant-protobuf-refs
Jun 1, 2026
Merged

chore: remove redundant Google.Protobuf package references#537
tylerkron merged 1 commit into
mainfrom
chore/remove-redundant-protobuf-refs

Conversation

@tylerkron
Copy link
Copy Markdown
Contributor

What

Removes the direct Google.Protobuf PackageReference from three projects that do not use it directly:

  • Daqifi.Desktop.DataModel
  • Daqifi.Desktop.IO
  • Daqifi.Desktop.Test

Why

Protobuf handling lives in the external Daqifi.Core package, which declares Google.Protobuf as a public dependency — so it already flows transitively to every project that references Core. These three direct references were leftover cruft from when this repo had its own .proto codegen, which is now fully removed (no .proto files, no Grpc.Tools, no <Protobuf> MSBuild items remain).

  • DataModel and IO contain no code that touches Google.Protobuf types.
  • Test consumes the protobuf-generated DaqifiOutMessage (and its RepeatedField / ByteString members) transitively from Core — exactly like the main Daqifi.Desktop app and Daqifi.Desktop.IO.Test, neither of which carries a direct reference.

Fixes the failure in #533

These stale pins are the root cause of the NU1605 package-downgrade error in #533. The grouped Dependabot bump moved Protobuf 3.34.1 -> 3.35.0 in DataModel and IO but left Daqifi.Desktop.Test at 3.34.1. Because a direct reference always overrides a transitive one, NuGet treated the Test pin as a downgrade of the version Core requires and failed dotnet restore.

With the direct references gone, Google.Protobuf simply tracks whatever version Daqifi.Core ships, and this class of Dependabot desync cannot recur. After this merges, #533 should rebase down to just the coverlet.collector and System.Management bumps and go green.

🤖 Generated with Claude Code

DataModel, IO, and Test each pinned a direct Google.Protobuf 3.34.1
reference, but none need it directly: DataModel and IO use no protobuf
types, and Test (like the main app and IO.Test, which carry no direct
reference) gets DaqifiOutMessage transitively from Daqifi.Core, which
declares Google.Protobuf as a public dependency.

These stale pins caused the NU1605 package-downgrade failure in #533,
where a grouped Dependabot bump moved Protobuf to 3.35.0 in DataModel
and IO but left Test at 3.34.1. Removing them lets Google.Protobuf
track Daqifi.Core's version and prevents this class of Dependabot desync.

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

Review Summary by Qodo

Remove redundant Google.Protobuf package references

🐞 Bug fix ✨ Enhancement

Grey Divider

Walkthroughs

Description
• Remove redundant Google.Protobuf direct references from three projects
• Protobuf dependency flows transitively from Daqifi.Core as public dependency
• Fixes NU1605 package-downgrade error caused by Dependabot version desync
• Prevents future Dependabot conflicts by letting Protobuf track Core's version
Diagram
flowchart LR
  A["Daqifi.Core<br/>Google.Protobuf 3.35.0<br/>public dependency"] -->|"transitive"| B["DataModel"]
  A -->|"transitive"| C["IO"]
  A -->|"transitive"| D["Test"]
  E["Before: Direct refs<br/>3.34.1 in each"] -.->|"removed"| B
  E -.->|"removed"| C
  E -.->|"removed"| D

Loading

Grey Divider

File Changes

1. Daqifi.Desktop.DataModel/Daqifi.Desktop.DataModel.csproj Dependencies +0/-1

Remove redundant Protobuf reference

• Removed direct Google.Protobuf version 3.34.1 PackageReference
• Project receives Protobuf transitively from Daqifi.Core dependency
• No protobuf types used directly in DataModel codebase

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


2. Daqifi.Desktop.IO/Daqifi.Desktop.IO.csproj Dependencies +0/-1

Remove redundant Protobuf reference

• Removed direct Google.Protobuf version 3.34.1 PackageReference
• Project receives Protobuf transitively from Daqifi.Core dependency
• No protobuf types used directly in IO codebase

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


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

Remove redundant Protobuf reference

• Removed direct Google.Protobuf version 3.34.1 PackageReference
• Test consumes DaqifiOutMessage transitively from Daqifi.Core
• Aligns with main app and IO.Test which have no direct Protobuf reference

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


Grey Divider

Qodo Logo

@qodo-code-review
Copy link
Copy Markdown
Contributor

qodo-code-review Bot commented May 31, 2026

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

Qodo Logo

@github-actions
Copy link
Copy Markdown

📊 Code Coverage Report

Summary

Summary
Generated on: 5/31/2026 - 7:03:44 PM
Coverage date: 5/31/2026 - 7:03:08 PM - 5/31/2026 - 7:03:40 PM
Parser: MultiReport (4x Cobertura)
Assemblies: 3
Classes: 119
Files: 148
Line coverage: 19.3% (1655 of 8566)
Covered lines: 1655
Uncovered lines: 6911
Coverable lines: 8566
Total lines: 26498
Branch coverage: 20.5% (584 of 2844)
Covered branches: 584
Total branches: 2844
Method coverage: Feature is only available for sponsors

Coverage

DAQiFi - 19.1%
Name Line Branch
DAQiFi 19.1% 20.5%
Daqifi.Desktop.App 5.4% 0%
Daqifi.Desktop.Channel.AbstractChannel 40.9% 27.7%
Daqifi.Desktop.Channel.AnalogChannel 58.7% 25%
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% 25%
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% 38.2%
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% 30.8%
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% 62.7%
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% 97.9%
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.WindowsPrincipalAdminChecker 0%
Daqifi.Desktop.Services.WpfMessageBoxService 0%
Daqifi.Desktop.UpdateVersion.VersionNotification 85.7% 58.3%
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% 39.3%
Daqifi.Desktop.ViewModels.DaqifiViewModel 17.5% 10.9%
Daqifi.Desktop.ViewModels.DeviceLogsViewModel 52.5% 48%
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 - 30.8%
Name Line Branch
Daqifi.Desktop.Common 30.8% 16.6%
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

@tylerkron tylerkron merged commit a0a5028 into main Jun 1, 2026
2 checks passed
@tylerkron tylerkron deleted the chore/remove-redundant-protobuf-refs branch June 1, 2026 02:34
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