Skip to content

Develop#4

Merged
TheMysteriousStranger90 merged 3 commits into
masterfrom
develop
Nov 3, 2025
Merged

Develop#4
TheMysteriousStranger90 merged 3 commits into
masterfrom
develop

Conversation

@TheMysteriousStranger90

Copy link
Copy Markdown
Owner

New workflow...

Copilot AI review requested due to automatic review settings November 3, 2025 07:14
@TheMysteriousStranger90 TheMysteriousStranger90 added the enhancement New feature or request label Nov 3, 2025
@TheMysteriousStranger90 TheMysteriousStranger90 merged commit 5521123 into master Nov 3, 2025
11 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull Request Overview

This PR modernizes the project's build and CI/CD infrastructure by upgrading to .NET 9.0, implementing a comprehensive GitHub Actions workflow, and enhancing the project configuration for production deployment.

  • Upgrades project to .NET 9.0 with enhanced publishing configuration using a hybrid approach (ReadyToRun without trimming)
  • Replaces basic CI workflow with a comprehensive multi-job pipeline including code quality checks, testing, publishing, security scanning, and automated releases
  • Adds metadata and optimization settings to the project file for improved package publishing and performance

Reviewed Changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 7 comments.

File Description
LogAnalyzerForWindows/LogAnalyzerForWindows.csproj Enhanced with publishing settings, performance optimizations, package metadata, and configuration-specific build settings
.github/workflows/dotnet-desktop.yml Completely rewritten with multi-job workflow including code quality, build/test, publish, release, and security scanning capabilities

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

<PublishSingleFile>true</PublishSingleFile>
<PublishTrimmed>false</PublishTrimmed>
<SelfContained>true</SelfContained>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>

Copilot AI Nov 3, 2025

Copy link

Choose a reason for hiding this comment

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

Setting RuntimeIdentifier in the project file forces all builds to be platform-specific, which can cause issues in multi-platform development environments and increases build times. This property should be removed from the project file and only specified during publish operations via the command line (as done in the workflow at line 144 of the workflow file).

Suggested change
<RuntimeIdentifier>win-x64</RuntimeIdentifier>

Copilot uses AI. Check for mistakes.
Comment on lines +61 to +62
<DebugType>embedded</DebugType>
<DebugSymbols>true</DebugSymbols>

Copilot AI Nov 3, 2025

Copy link

Choose a reason for hiding this comment

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

Debug symbols are enabled globally but then overridden in Release configuration (lines 74-75). It's better to set DebugType to embedded and DebugSymbols to true only for Debug configuration, and let the Release configuration handle its own settings. This avoids confusion about which settings apply to which configuration.

Copilot uses AI. Check for mistakes.
<!-- Publishing Settings - Hybrid Approach -->
<PublishSingleFile>true</PublishSingleFile>
<PublishTrimmed>false</PublishTrimmed>
<SelfContained>true</SelfContained>

Copilot AI Nov 3, 2025

Copy link

Choose a reason for hiding this comment

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

Setting SelfContained=true in the project file combined with RuntimeIdentifier forces all builds (including Debug and development builds) to be self-contained, significantly increasing build time and output size. This should be removed and only specified during publish operations.

Copilot uses AI. Check for mistakes.
echo "version=$version" >> $env:GITHUB_OUTPUT

- name: Create Release Notes
if: steps.changelog.outputs.found != 'true'

Copilot AI Nov 3, 2025

Copy link

Choose a reason for hiding this comment

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

This condition references steps.changelog.outputs.found but there is no step with id 'changelog' defined in this job. This will cause the condition to always evaluate to true since the output doesn't exist. Either add the missing changelog step or remove this condition.

Suggested change
if: steps.changelog.outputs.found != 'true'

Copilot uses AI. Check for mistakes.
Comment on lines +155 to +156
/p:DebugType=embedded `
/p:DebugSymbols=true `

Copilot AI Nov 3, 2025

Copy link

Choose a reason for hiding this comment

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

Including debug symbols in Release builds increases the executable size unnecessarily. For production releases, these parameters should be removed or set to DebugType=none and DebugSymbols=false to match the Release configuration in the project file (lines 74-75).

Suggested change
/p:DebugType=embedded `
/p:DebugSymbols=true `

Copilot uses AI. Check for mistakes.
- Self-contained build (no .NET Runtime required)
- Single executable file with ReadyToRun compilation
- Optimized for fast startup without trimming issues
- Size: ~85-95 MB (compressed ZIP)

Copilot AI Nov 3, 2025

Copy link

Choose a reason for hiding this comment

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

The size estimate should be verified against actual build outputs and updated if necessary. Hardcoded size estimates in release notes can become inaccurate over time as dependencies change. Consider using the actual calculated size from steps.hash.outputs.zip_size_mb instead.

Copilot uses AI. Check for mistakes.
if ("${{ github.ref }}" -match "refs/tags/v(.*)") {
$version = $matches[1]
} else {
$version = "2.0.0-dev.${{ github.run_number }}"

Copilot AI Nov 3, 2025

Copy link

Choose a reason for hiding this comment

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

The default version is set to '2.0.0-dev' but the project file specifies version '1.3.0.0'. This version mismatch could cause confusion. The default version should align with the project file version (e.g., '1.3.0-dev') or be derived from it.

Suggested change
$version = "2.0.0-dev.${{ github.run_number }}"
$version = "1.3.0-dev.${{ github.run_number }}"

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants