Skip to content

chore: bump version to 3.2.0 and refresh .NET 10 docs#503

Merged
tylerkron merged 2 commits intomainfrom
chore/v3.2.0-release-prep
Apr 26, 2026
Merged

chore: bump version to 3.2.0 and refresh .NET 10 docs#503
tylerkron merged 2 commits intomainfrom
chore/v3.2.0-release-prep

Conversation

@tylerkron
Copy link
Copy Markdown
Contributor

Summary

  • Bump desktop app and WiX installer from 3.1.0 → 3.2.0 ahead of the v3.2.0 release.
  • Refresh README.md and CLAUDE.md to reflect the .NET 9 → .NET 10 upgrade from deps: upgrade from .NET 9 to .NET 10 #499; project files have targeted net10.0-windows since that PR but the docs hadn't caught up.
  • Submodule assemblies (Common, DataModel, IO) remain at 3.0.0.0 — they were not bumped on prior releases either, so leaving as-is for this release.

Test plan

  • CI build & tests pass on the PR
  • Verify the produced binary reports FileVersion 3.2.0.0 (right-click → Properties → Details on the built DAQiFi.exe)
  • Verify the MSI installer's product version reads 3.2.0.0 and that an upgrade from a 3.1.x install replaces it cleanly
  • Spot-check README.md and CLAUDE.md render correctly

🤖 Generated with Claude Code

Bumps the desktop app and WiX installer from 3.1.0 to 3.2.0 ahead of the
v3.2.0 release. Also updates README.md and CLAUDE.md to reflect the
.NET 9 → .NET 10 upgrade that landed in #499; the project files have
targeted net10.0-windows since that PR.

Submodule assemblies (Common, DataModel, IO) remain at 3.0.0.0; they
have not been bumped on prior releases either.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@tylerkron tylerkron requested a review from a team as a code owner April 26, 2026 03:00
@qodo-code-review
Copy link
Copy Markdown
Contributor

Review Summary by Qodo

Bump version to 3.2.0 and update .NET 10 documentation

✨ Enhancement

Grey Divider

Walkthroughs

Description
• Bump desktop app version from 3.1.0 to 3.2.0
• Update WiX installer version to 3.2.0.0
• Refresh documentation to reflect .NET 10 upgrade
• Update assembly and file versions in project file
Diagram
flowchart LR
  A["Version 3.1.0"] -->|"Bump to 3.2.0"| B["Desktop App"]
  A -->|"Bump to 3.2.0.0"| C["WiX Installer"]
  D[".NET 9.0 References"] -->|"Update to .NET 10.0"| E["Documentation"]
  B --> F["AssemblyVersion & FileVersion Updated"]
Loading

Grey Divider

File Changes

1. Daqifi.Desktop/Daqifi.Desktop.csproj ⚙️ Configuration changes +3/-3

Update project version to 3.2.0

• Bumped Version property from 3.1.0 to 3.2.0
• Updated AssemblyVersion from 3.1.0.0 to 3.2.0.0
• Updated FileVersion from 3.1.0.0 to 3.2.0.0

Daqifi.Desktop/Daqifi.Desktop.csproj


2. Daqifi.Desktop.Setup/DAQifiDesktopSetup/Product.wxs ⚙️ Configuration changes +1/-1

Bump WiX installer version to 3.2.0.0

• Updated WiX Package Version attribute from 3.1.0.0 to 3.2.0.0
• Ensures MSI installer reflects the new release version

Daqifi.Desktop.Setup/DAQifiDesktopSetup/Product.wxs


3. README.md 📝 Documentation +2/-2

Update .NET version references in README

• Updated tech stack reference from .NET 9.0 to .NET 10.0
• Updated CI/CD workflow documentation to reflect .NET 10.0

README.md


View more (1)
4. CLAUDE.md 📝 Documentation +1/-1

Update .NET version in technology stack

• Updated technology stack from .NET 9.0 to .NET 10.0

CLAUDE.md


Grey Divider

Qodo Logo

@qodo-code-review
Copy link
Copy Markdown
Contributor

qodo-code-review Bot commented Apr 26, 2026

Code Review by Qodo

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

Grey Divider


Action required

1. Tabs in version metadata 📘 Rule violation ✧ Quality
Description
The modified .csproj lines use leading tab characters for indentation instead of 4 spaces. This
violates the repo rule requiring 4-space indentation with no tabs on changed lines.
Code

Daqifi.Desktop/Daqifi.Desktop.csproj[R23-24]

+		<AssemblyVersion>3.2.0.0</AssemblyVersion>
+		<FileVersion>3.2.0.0</FileVersion>
Evidence
PR Compliance ID 244818 disallows tabs for indentation on changed lines. The changed
<AssemblyVersion> and <FileVersion> lines contain leading tab characters before the XML tags.

Rule 244818: Use 4 spaces for indentation (no tabs)
Daqifi.Desktop/Daqifi.Desktop.csproj[23-24]

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

## Issue description
The modified `.csproj` lines use tab indentation, but the project requires 4 spaces and no tabs.

## Issue Context
The changed `<AssemblyVersion>` and `<FileVersion>` lines include leading tab characters.

## Fix Focus Areas
- Daqifi.Desktop/Daqifi.Desktop.csproj[23-24]

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


2. Manifest version mismatch🐞 Bug ≡ Correctness
Description
The app’s embedded manifest still declares assemblyIdentity version 3.1.0.0 even though the PR bumps
the app’s AssemblyVersion/FileVersion to 3.2.0.0, producing inconsistent shipped identity/metadata.
This mismatch is introduced by the version bump without updating the referenced ApplicationManifest
file.
Code

Daqifi.Desktop/Daqifi.Desktop.csproj[R23-24]

+		<AssemblyVersion>3.2.0.0</AssemblyVersion>
+		<FileVersion>3.2.0.0</FileVersion>
Evidence
The desktop project embeds app.manifest and bumps AssemblyVersion/FileVersion to 3.2.0.0, but
app.manifest’s assemblyIdentity version remains 3.1.0.0, so the built EXE will carry conflicting
version information between assembly metadata and embedded manifest identity.

Daqifi.Desktop/Daqifi.Desktop.csproj[17-25]
Daqifi.Desktop/app.manifest[1-4]

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

### Issue description
The app embeds `Daqifi.Desktop/app.manifest`, but its `<assemblyIdentity version>` is still `3.1.0.0` while the project now produces `3.2.0.0` assembly/file versions.

### Issue Context
This PR updates the app/installer versions to 3.2.0.0; the embedded Windows manifest should be kept in sync to avoid conflicting identity/version metadata.

### Fix Focus Areas
- Daqifi.Desktop/app.manifest[1-5]
- Daqifi.Desktop/Daqifi.Desktop.csproj[17-25]

### Proposed fix
Update `app.manifest`:
- Change `<assemblyIdentity version="3.1.0.0" .../>` to `<assemblyIdentity version="3.2.0.0" .../>`.

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



Remediation recommended

3. CI SDK not pinned🐞 Bug ☼ Reliability
Description
README states all workflows run on .NET 10.0, but the Build workflow does not install/pin a .NET SDK
(no setup-dotnet step) and therefore depends on whatever SDK happens to be on the runner. This makes
the README claim non-deterministic and the Build workflow less reproducible than Release (which pins
10.0.x).
Code

README.md[29]

+All workflows run on .NET 10.0 with Windows runners for WPF compatibility.
Evidence
README makes an absolute statement about workflow runtime (.NET 10.0), but the Build workflow lacks
a .NET setup step, while the Release workflow explicitly installs .NET 10.0.x; this inconsistency
means Build’s actual SDK version is not explicitly controlled in workflow code.

README.md[18-30]
.github/workflows/build.yaml[10-32]
.github/workflows/release.yaml[12-18]

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

### Issue description
`README.md` claims all workflows run on .NET 10.0, but `.github/workflows/build.yaml` does not explicitly install/pin the .NET SDK.

### Issue Context
The Release workflow already pins .NET via `actions/setup-dotnet` (`dotnet-version: 10.0.x`). Aligning Build with that makes CI deterministic and keeps the README statement true by construction.

### Fix Focus Areas
- .github/workflows/build.yaml[10-35]
- README.md[18-30]

### Proposed fix
Add a step near the top of `build.yaml`:
```yaml
- name: Setup .NET
 uses: actions/setup-dotnet@v5
 with:
   dotnet-version: 10.0.x
```
Alternatively, if you intentionally rely on runner preinstalls/global.json, soften the README sentence to avoid the absolute claim.

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


Grey Divider

Qodo Logo

Comment on lines +23 to +24
<AssemblyVersion>3.2.0.0</AssemblyVersion>
<FileVersion>3.2.0.0</FileVersion>
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. Tabs in version metadata 📘 Rule violation ✧ Quality

The modified .csproj lines use leading tab characters for indentation instead of 4 spaces. This
violates the repo rule requiring 4-space indentation with no tabs on changed lines.
Agent Prompt
## Issue description
The modified `.csproj` lines use tab indentation, but the project requires 4 spaces and no tabs.

## Issue Context
The changed `<AssemblyVersion>` and `<FileVersion>` lines include leading tab characters.

## Fix Focus Areas
- Daqifi.Desktop/Daqifi.Desktop.csproj[23-24]

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

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Disagreed — leaving as-is.

This .csproj uses tab indentation throughout (lines 3–32), and the version-bump diff preserved the surrounding convention. Converting only the two changed lines to 4 spaces would produce mixed indentation in a single <PropertyGroup> block, which is worse than the current consistent style.

The CLAUDE.md "4 spaces" rule lives under the Code Style section alongside C#-specific guidance (Allman braces, regions, etc.) and applies to source code; project XML files in this repo follow their own tab convention. Reformatting the whole file to spaces is out of scope for a release-prep PR. Happy to do a separate chore: normalize project-file indentation PR if the team wants that across all .csproj files.

Comment on lines +23 to +24
<AssemblyVersion>3.2.0.0</AssemblyVersion>
<FileVersion>3.2.0.0</FileVersion>
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

2. Manifest version mismatch 🐞 Bug ≡ Correctness

The app’s embedded manifest still declares assemblyIdentity version 3.1.0.0 even though the PR bumps
the app’s AssemblyVersion/FileVersion to 3.2.0.0, producing inconsistent shipped identity/metadata.
This mismatch is introduced by the version bump without updating the referenced ApplicationManifest
file.
Agent Prompt
### Issue description
The app embeds `Daqifi.Desktop/app.manifest`, but its `<assemblyIdentity version>` is still `3.1.0.0` while the project now produces `3.2.0.0` assembly/file versions.

### Issue Context
This PR updates the app/installer versions to 3.2.0.0; the embedded Windows manifest should be kept in sync to avoid conflicting identity/version metadata.

### Fix Focus Areas
- Daqifi.Desktop/app.manifest[1-5]
- Daqifi.Desktop/Daqifi.Desktop.csproj[17-25]

### Proposed fix
Update `app.manifest`:
- Change `<assemblyIdentity version="3.1.0.0" .../>` to `<assemblyIdentity version="3.2.0.0" .../>`.

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

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixed in 5e395df. Bumped assemblyIdentity version in Daqifi.Desktop/app.manifest from 3.1.0.0 to 3.2.0.0 so the embedded manifest matches AssemblyVersion/FileVersion.

Bumps the embedded Windows manifest's assemblyIdentity version to
3.2.0.0 so the shipped EXE's manifest no longer disagrees with its
AssemblyVersion/FileVersion.

Adds an explicit `actions/setup-dotnet@v5` step to build.yaml pinning
.NET 10.0.x, matching what release.yaml already does. This makes the
README's "all workflows run on .NET 10.0" claim true by construction
rather than relying on whatever SDK happens to be on the runner.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@tylerkron
Copy link
Copy Markdown
Contributor Author

Qodo review responses

Going through the 3 items in the review summary:

  1. Tabs in version metadata (Rule violation) — Disagreed. Inline reply. The .csproj uses tabs throughout; converting only the two changed lines would create mixed indentation in a single <PropertyGroup>. The CLAUDE.md "4 spaces" rule applies to source code, not project XML. Out of scope for a release-prep PR.

  2. Manifest version mismatch (Bug) — Fixed in 5e395df. Bumped Daqifi.Desktop/app.manifest assemblyIdentity version 3.1.0.0 → 3.2.0.0 to match AssemblyVersion/FileVersion.

  3. CI SDK not pinned (Bug) — Fixed in 5e395df. Added actions/setup-dotnet@v5 with dotnet-version: 10.0.x to .github/workflows/build.yaml, matching what release.yaml already does. Now the README's "all workflows run on .NET 10.0" claim is true by construction.

@github-actions
Copy link
Copy Markdown

📊 Code Coverage Report

Summary

Summary
Generated on: 4/26/2026 - 3:08:10 AM
Coverage date: 4/26/2026 - 3:07:37 AM - 4/26/2026 - 3:08:06 AM
Parser: MultiReport (4x Cobertura)
Assemblies: 3
Classes: 119
Files: 148
Line coverage: 17.8% (1512 of 8494)
Covered lines: 1512
Uncovered lines: 6982
Coverable lines: 8494
Total lines: 26201
Branch coverage: 18.8% (521 of 2770)
Covered branches: 521
Total branches: 2770
Method coverage: Feature is only available for sponsors

Coverage

DAQiFi - 17.6%
Name Line Branch
DAQiFi 17.6% 18.8%
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.9% 38.6%
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 0% 0%
Daqifi.Desktop.Services.WindowsPrincipalAdminChecker 0%
Daqifi.Desktop.Services.WpfMessageBoxService 0%
Daqifi.Desktop.UpdateVersion.VersionNotification 0% 0%
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.1%
Daqifi.Desktop.ViewModels.DaqifiViewModel 17.5% 10.9%
Daqifi.Desktop.ViewModels.DeviceLogsViewModel 0% 0%
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 c74b405 into main Apr 26, 2026
6 checks passed
@tylerkron tylerkron deleted the chore/v3.2.0-release-prep branch April 26, 2026 03:11
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