Skip to content

refactor(conflicts): ship KnownConflicts.json as a committed src file (resolves #231 P2)#233

Merged
SamErde merged 1 commit into
mainfrom
refactor/known-conflicts-src-source
Jun 2, 2026
Merged

refactor(conflicts): ship KnownConflicts.json as a committed src file (resolves #231 P2)#233
SamErde merged 1 commit into
mainfrom
refactor/known-conflicts-src-source

Conversation

@SamErde
Copy link
Copy Markdown
Owner

@SamErde SamErde commented Jun 2, 2026

What & why

Resolves the unresolved Codex P2 on #231 ("include the policy in release triggers").

Since #231, the build extracted knownConflicts from build/dependency-policy.json into the shipped module/DLLPickle/KnownConflicts.json — so that build/** policy file became a published-bundle input. But build/** is excluded from the Release path filter, so a future knownConflicts-only edit would have merged without auto-publishing, leaving users with stale conflict data.

This makes the conflict data a committed source file at src/DLLPickle/KnownConflicts.json (the single source of truth), copied into the module verbatim by CopyModuleFiles. That restores the invariant "bundle inputs live under src/; policy/CI-only edits don't trigger a release" — conflict-data edits now correctly publish, policy-only edits don't.

Changes

  • Add src/DLLPickle/KnownConflicts.json — identical content to what 2.2.0 ships today. The runtime read path (Get-DPKnownConflict, reads KnownConflicts.json at the module root) is unchanged.
  • Remove build/Export-DLLPickleKnownConflicts.ps1 and the ExportKnownConflicts build task.
  • Remove knownConflicts from build/dependency-policy.json; update the OData blockedPreloadAssemblies cross-references to point at the new location.
  • Rework the extractor sync test into direct validation of the committed source file (through the real reader).
  • Superseding notes in the 🪲 Bug report - Az.Storage and ExchangeOnlineManagement with Get-EXO cmdlets #174 design (§3) + plan docs; CHANGELOG line updated.

Verification

  • Invoke-Pester on the conflict tests: 13/13 pass.
  • Invoke-Build Analyze (Analyze + AnalyzeTests + AnalyzeTools): 0 errors, 0 warnings.
  • Invoke-Build PrepareModuleOutput: module/DLLPickle/KnownConflicts.json ships via CopyModuleFiles (no extraction step).
  • The drift fingerprint is computed from the live upstream inventory, not knownConflicts, so the recorded baseline is unaffected.

Merge order ⚠️

This is a src/DLLPickle/** change, so merging it auto-triggers Release-and-Publish and cuts 2.2.0. Merge #232 first (it fixes the reusable-workflow permission startup failure that currently breaks the release pipeline), then merge this once its review settles. 2.2.0 ships the conflict data correctly either way; this PR only changes how future edits propagate.

Resolves the unresolved Codex P2 on #231. Since #231 the build extracted
knownConflicts from build/dependency-policy.json into the shipped
KnownConflicts.json, so a build/** policy file affected the published bundle
-- but build/** is excluded from the Release path filter, so a future
conflict-data edit would not have auto-published (stale conflict warnings).

Make the conflict data the single source of truth as a committed source file
at src/DLLPickle/KnownConflicts.json, copied into the module verbatim by
CopyModuleFiles. This restores the invariant "bundle inputs live under src/,
policy/CI edits do not trigger a release": conflict-data edits now correctly
publish, while policy-only edits do not.

- Add src/DLLPickle/KnownConflicts.json (identical content to what 2.2.0 ships
  today; the runtime read path in Get-DPKnownConflict is unchanged).
- Remove build/Export-DLLPickleKnownConflicts.ps1 and the ExportKnownConflicts
  build task (no extraction step needed).
- Remove knownConflicts from build/dependency-policy.json; update the OData
  blockedPreloadAssemblies cross-references to point at the new location.
- Rework the extractor sync test into direct validation of the committed
  source file (via the real Get-DPKnownConflict reader). 13/13 unit tests pass;
  Analyze/AnalyzeTests/AnalyzeTools clean; PrepareModuleOutput ships the file.
- Add superseding notes to the #174 design (§3) and plan docs; update CHANGELOG.

The drift fingerprint (conflictSurfaceFingerprint) is computed by
New-DLLPickleConflictMatrix from the live upstream inventory, not from
knownConflicts, so the baseline is unaffected.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings June 2, 2026 13:42
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 2, 2026

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@github-actions github-actions Bot added documentation Improvements or additions to documentation Source Tests Build labels Jun 2, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Relocates the conflict data from a build-time extraction (build/dependency-policy.jsonmodule/DLLPickle/KnownConflicts.json) to a committed source file at src/DLLPickle/KnownConflicts.json. This restores the invariant that bundle inputs live under src/, so future knownConflicts-only edits correctly trigger the release pipeline (which excludes build/**). The runtime read path is unchanged.

Changes:

  • Add src/DLLPickle/KnownConflicts.json (copied verbatim by CopyModuleFiles); remove the ExportKnownConflicts build task and the Export-DLLPickleKnownConflicts.ps1 extractor.
  • Remove knownConflicts from build/dependency-policy.json and update OData blockedPreloadAssemblies cross-references to point at the new location.
  • Rework the extractor sync test into direct validation of the committed source file via Get-DPKnownConflict; add superseding notes to the design/plan docs and update CHANGELOG.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/DLLPickle/KnownConflicts.json New committed source-of-truth conflict-data file (content matches what 2.2.0 ships).
tests/Unit/KnownConflicts.Tests.ps1 Replaces extractor sync test with direct validation of the committed JSON via the real reader.
build/Export-DLLPickleKnownConflicts.ps1 Removed; extraction is no longer needed.
build/DLLPickle.Build.ps1 Removes the ExportKnownConflicts build task; CopyModuleFiles already copies the new JSON.
build/dependency-policy.json Drops the knownConflicts block; updates OData blockedPreloadAssemblies evidence cross-refs to the new path.
docs/superpowers/specs/2026-06-01-issue174-conflict-warning-design.md Adds a superseded note on §3 explaining the move.
docs/superpowers/plans/2026-06-01-issue174-conflict-warning.md Adds a superseded note explaining the relocation and removal of the extractor/sync test.
CHANGELOG.md Updates the Added entry to reflect the new source-file location and release-trigger semantics.

@codacy-production
Copy link
Copy Markdown
Contributor

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@SamErde SamErde merged commit 43c3979 into main Jun 2, 2026
19 checks passed
@SamErde SamErde deleted the refactor/known-conflicts-src-source branch June 2, 2026 14:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Build documentation Improvements or additions to documentation Source Tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants