Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 61 additions & 17 deletions .github/workflows/msbuild.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,23 @@ name: MSBuild Tasks
on:
workflow_dispatch:
push:
paths-ignore:
- '**/*'
- '!.github/workflows/msbuild.yml'
- '!src/**/*.csproj'
- '!src/**/*.cs'
paths:
- '.github/workflows/msbuild.yml'
- 'src/**/*.csproj'
- 'src/**/*.cs'
- 'src/**/*.targets'
- 'src/Refitter.MSBuild/README.md'
- 'docs/docfx_project/articles/msbuild.md'
- 'test/MSBuild/**'
pull_request:
paths-ignore:
- '**/*'
- '!.github/workflows/msbuild.yml'
- '!src/**/*.csproj'
- '!src/**/*.cs'
paths:
- '.github/workflows/msbuild.yml'
- 'src/**/*.csproj'
- 'src/**/*.cs'
- 'src/**/*.targets'
- 'src/Refitter.MSBuild/README.md'
- 'docs/docfx_project/articles/msbuild.md'
- 'test/MSBuild/**'

jobs:
build:
Expand All @@ -31,20 +37,58 @@ jobs:
dotnet pack -c release ../../src/Refitter.MSBuild/Refitter.MSBuild.csproj -o .
nuget add .\Refitter.MSBuild.1.0.0.nupkg -source .
dotnet add package Refitter.MSBuild -s .
- name: 🛠️ Build (default naming)
- name: 🛠️ Build (auto-scan enabled)
working-directory: test/MSBuild
run: dotnet build -v d -filelogger -p:RefitterIncludePatterns="petstore.refitter"
- name: 🧪 Build Output (default)
shell: pwsh
run: |
Remove-Item Generated -Force -Recurse -ErrorAction SilentlyContinue
dotnet build -c release -v d -filelogger '-flp:logfile=msbuild.log;verbosity=diagnostic' -p:RefitterIncludePatterns="petstore.refitter"
if ($LASTEXITCODE -ne 0) {
throw "dotnet build failed (auto-scan enabled, exit code $LASTEXITCODE)"
}
if (!(Test-Path "Generated\Petstore.cs")) {
throw "Expected Generated\Petstore.cs when RefitterAutoScan is enabled."
}
- name: 🧪 Build Output (auto-scan enabled)
working-directory: test/MSBuild
run: cat msbuild.log
- name: 🛠️ Build (PreserveOriginal naming)
- name: 🛠️ Build (explicit generate target)
working-directory: test/MSBuild
shell: pwsh
run: |
dotnet clean -c release --nologo
dotnet build -c release -v d -filelogger -p:RefitterIncludePatterns="petstore-preserve-original.refitter"
- name: 🧪 Build Output (PreserveOriginal)
Remove-Item Generated -Force -Recurse -ErrorAction SilentlyContinue
dotnet build -c release -t:RefitterGenerate -v d -filelogger '-flp:logfile=msbuild-explicit.log;verbosity=diagnostic' -p:RefitterAutoScan=false -p:RefitterIncludePatterns="petstore.refitter"
if ($LASTEXITCODE -ne 0) {
throw "dotnet build failed (-t:RefitterGenerate, exit code $LASTEXITCODE)"
}
if (!(Test-Path "Generated\Petstore.cs")) {
throw "Expected Generated\Petstore.cs after dotnet build -t:RefitterGenerate."
}
if (!(Select-String -Path msbuild-explicit.log -Pattern "Starting RefitterGenerateTask" -Quiet)) {
throw "Explicit RefitterGenerate target did not execute RefitterGenerateTask."
}
- name: 🧪 Build Output (explicit generate target)
working-directory: test/MSBuild
run: cat msbuild.log
run: cat msbuild-explicit.log
- name: 🛠️ Build (auto-scan disabled)
working-directory: test/MSBuild
shell: pwsh
run: |
dotnet clean -c release --nologo
dotnet build -c release -v d -filelogger '-flp:logfile=msbuild-disabled.log;verbosity=diagnostic' -p:RefitterAutoScan=false
if ($LASTEXITCODE -ne 0) {
throw "dotnet build failed (auto-scan disabled, exit code $LASTEXITCODE)"
}
if (!(Test-Path "Generated\Petstore.cs")) {
throw "Expected previously generated code to remain available when RefitterAutoScan=false."
}
if (Select-String -Path msbuild-disabled.log -Pattern "Starting RefitterGenerateTask" -Quiet) {
throw "RefitterGenerateTask ran during a normal build even though RefitterAutoScan=false."
}
Comment thread
coderabbitai[bot] marked this conversation as resolved.
- name: 🧪 Build Output (auto-scan disabled)
working-directory: test/MSBuild
run: cat msbuild-disabled.log
- name: 🗳️ Upload
uses: actions/upload-artifact@v7
with:
Expand Down
10 changes: 10 additions & 0 deletions .squad/agents/bishop/history.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,13 @@
- **Issue #1025 OpenAPI Parser Migration (2026-04-20):** Added silent behavioral change section to breaking-changes guide documenting Microsoft.OpenApi.Readers upgrade (1.x → 3.x). Clarifies that users will see different generated code due to improved parser schema interpretation (nullability, discriminators, refs, Swagger 2.0). Adds actionable migration steps: regenerate + review diff + test. Includes checklist item and evidence links (PR #907, #945). Commit: ccf293e7. Closes #1025.
- **PR #1067 Doc Closure Review (2026-04-21):** Corrected stale source-generator docs that still described disk output, added explicit `Refit`/`Refit.HttpClientFactory` consumer guidance, clarified `RefitterIncludePatterns` is exact-match only, and reframed #1025 as migration mitigation rather than a fully proven behavioral fix. If PR wording mentions #1025 as fully fixed, it should be narrowed to "documents migration guidance for #1025."
- **Issue #1083 communication triage (2026-05-01T14:04:19.681+02:00):** Reproduced the reporter's case against the current CLI: the schema name LookUpErnResponse. yields an empty internal partial class declaration and a Task<> return type. Current README/docfx wording only promises identifier sanitization in the propertyNamingPolicy / contract-property context, so this should be framed as a real product bug with docs that are technically correct but easy to over-read.

## 2026-05-29T15:07:47 - Scribe: Issue #1094 Cross-Agent Update

**Session:** commit-grouping-decision
**Context:** Dallas completed product implementation and created logical commits for issue #1094 (MSBuild RefitterAutoScan gating with explicit target fallback).

**Team Status:**
- Lambert validated implementation as correct
- Decision recorded: split product changes into tooling/CI and documentation commits; housekeeping cleanup (stale automation + Squad bookkeeping) in separate commit with no co-author trailer
- Branch ready for review after Squad documentation completed
26 changes: 26 additions & 0 deletions .squad/agents/dallas/history.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@ Parker, Lambert, and Dallas completed issue #1083 resolution:

## Learnings

- **2026-05-29T15:07:47.442+02:00 commit-grouping hygiene:** when issue work is already implemented, keep product commits split by behavior lane (tooling or CI first, docs second) and move stale automation artifacts like `.squad\commit-msg.txt` plus Squad bookkeeping into a final housekeeping commit so review stays focused and the branch ends clean.

- **2026-05-29T14:24:16.307+02:00 issue #1094 tooling contract:** `src\Refitter.MSBuild\Refitter.MSBuild.targets` should keep `RefitterGenerate` explicitly invokable and move the automatic build hook into a separate target gated by `RefitterAutoScan`; with `RefitterAutoScan=false`, clean builds need an earlier `dotnet build -t:RefitterGenerate` pass so subsequent normal builds can compile the already-generated `.cs` files without re-running Refitter.

- **2026-05-01T14:34:56.630+02:00 issue #1083 tooling follow-up:** the dotted-schema-name fix is a core generator concern, so CLI/MSBuild wiring and README help text do not need parity changes; the only adjacent tooling work worth landing is source-generator regression coverage so compile-time generation proves the same sanitized DTO/return-type behavior as the CLI path.

- **2026-04-28T15:21:48.369+02:00 e-conomic multi-spec tooling verdict:** `test\economic.refitter` parses correctly and resolves both relative `openApiPaths`; CLI/MSBuild/source-generator all reach core multi-document merge, where duplicate equivalent schemas (`Error`, then `ProblemDetails`) trigger the fail-fast merge path before validation, so `--skip-validation` cannot help.
Expand Down Expand Up @@ -85,4 +89,26 @@ Parker, Lambert, and Dallas completed issue #1083 resolution:
- Root cause confirmed in `Refitter.Core` not tooling; `--skip-validation` cannot help because merge happens before validation.
- Proposal: primary fix belongs in core merge semantics (allow duplicate paths/schemas when semantically equivalent); do not split `.refitter` into multiple generation runs.
- Tooling follow-up (post-core-fix): improve CLI error guidance for merge failures, add `openApiPaths` regression coverage, add relative-path resolution tests, add merge-failure diagnostic tests.
## 2026-05-29T14:24:16 - Issue #1094: RefitterAutoScan MSBuild Implementation

**Session:** issue-1094-real-implementation
**Status:** COMPLETE
**Approval:** Lambert validated implementation as correct and complete.

**Work:**
- Edited 4 files for RefitterAutoScan MSBuild gating behavior
- Local validation: auto-scan enabled, explicit target with disable flag, normal build without task
- Implementation matches decision requirements

**Outcome:** Ready for merge

## 2026-05-29T15:07:47 - Scribe: Issue #1094 Squad Documentation

**Session:** commit-grouping-decision
**Context:** Dallas finalized commit grouping with decision to split product changes into two commits and housekeeping cleanup (no co-author trailer).

**Squad Update:**
- Decision recorded: two product commits (tooling/CI and docs) plus one housekeeping commit for stale automation cleanup
- Inbox merged into decisions.md with commit grouping rationale
- Orchestration and session logs created
- Cross-agent history updated for Bishop and Lambert
Loading
Loading