Improve module build versioning and owner summaries#216
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
PR Review: Improve module build versioning and owner summariesOverall this is a well-structured refactor. The changes are cohesive and the intent is clear. A few observations below. Build-Module.ps1 — Load order fix ✅Moving Potential issues1. // ModuleBuilder.cs
private static string BuildBinaryConflictScopeText(BinaryConflictAdvisorySummary advisory)
=> BuildDeclaredDependencyModulesText(advisory);This wrapper adds indirection without adding value. Either inline the call at the single call site or remove it. 2. private static string BuildBinaryConflictModuleOwnerDetail(BinaryConflictModuleSummary module, bool includeModuleLabel)This method is defined but not called anywhere in the diff. If it's dead code it should be removed to keep the class lean. 3. // ModulePipelineRunner.Run.Helpers.cs
private static string SummarizeItems(IEnumerable<string>? items, int maxItems)Same situation — defined but never called. Remove it or wire it up. 4.
5. Exception return in catch (Exception ex)
{
_logger.Warn($"Mixed line-ending normalization in staging failed: {ex.Message}");
return (0, 1); // ← hard-coded to "1 error"
}If the outer Minor observations
In
The private Test coverage
Manifest sync timing change
Summary
|
PR Review: Improve module build versioning and owner summariesOverall this is a solid, well-structured PR. The three core fixes (binary import path, manifest sync on normal builds, configured-version precedence) are clearly motivated and the new owner-notes system is a nice UX improvement. A few things worth looking at before merging: Bugs / Correctness1. WriteBinaryConflictReport - direct result.Issues.Length access (ModuleBuilder.cs) The report header uses 2. SyncPublishedManifestToProjectRoot appears to be dead code (ModulePipelineRunner.RefreshOnlySync.cs) Both Performance3. EnsureResolvedVersionIsAvailable - worst-case 8 minutes of blocking I/O (ModuleVersionStepper.cs)
Code quality4. Redundant null-check in ResolveConfiguredVersion (ModuleBuildPreparationService.cs)
5. Unused fields in MergeExecutionResult (ModulePipelineRunner.MissingAnalysis.cs)
6. TopModules is redundant in BinaryConflictAdvisorySummary (ModuleBuilder.cs)
7. Unused using directives in test file (ModuleBuildPreparationServiceTests.cs)
8. Build notes silently discarded in ModuleBuilder.Build (ModuleBuilder.cs)
Minor
What is well done
|
Summary
Details
ours/theirsassembly versions while keeping the summary conciseVerification
dotnet test .\PowerForge.Tests\PowerForge.Tests.csproj -c Release --filter "FullyQualifiedName~ModuleBuilderBinaryConflictAdvisoryTests|FullyQualifiedName~ModulePipelineRefreshManifestOnlyTests|FullyQualifiedName~ModuleBuildWorkflowServiceTests"& .\Module\Build\Build-Module.ps1 -NoSign