Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
5396c2a
ADD: WithPreImage and WithPostImage methods to register images, which…
mkholt Nov 24, 2025
8ed1a86
Test: Tests for the source generator
mkholt Nov 25, 2025
b69c56a
Fix: Implement parameterless constructor diagnostic and test
mkholt Nov 25, 2025
7c054fe
Add: Compile time check for Execute method when plugin images are def…
mkholt Nov 25, 2025
6b751a8
REFACTOR: Get rid of the Execute method by generating a type-safe wra…
mkholt Nov 25, 2025
3a17af1
REFACTOR: Use raw string literals
mkholt Nov 26, 2025
4b2f4c6
CHORE: Remove deprecated mentions of target generation
mkholt Nov 26, 2025
d15a8c9
CHORE: Use .NET10 for build since we use C#14 features
mkholt Nov 26, 2025
d177840
Use GetRequiredService instead of GetService
mkholt Nov 26, 2025
a946610
More resilient including of generator dll
mkholt Nov 26, 2025
0ca8718
Go back to copying from SourceGenerator outdir, project reference enf…
mkholt Nov 26, 2025
5716b70
Optimize handler method lookup to avoid repeated inheritance chain tr…
Copilot Nov 26, 2025
e619b09
FIX: Add RegisterStep overload that allows parameterless handler meth…
mkholt Nov 26, 2025
592015f
Fix: The overload does not work as expected, parameterless calls do n…
mkholt Nov 26, 2025
6b822d5
FIX: Use nameof instead of the delegate, the compiler gets confused a…
mkholt Nov 26, 2025
4328449
FIX: Do not report location in diagnostics, it fails across increment…
mkholt Nov 26, 2025
039466a
CLEANUP: Do not report success diagnostic
mkholt Nov 26, 2025
6adaa6c
REFACTOR: Move diagnostics to Analyzer insterad of Generator to allow…
mkholt Nov 27, 2025
0448a6d
DOCS: Add documentation of the rules and link to it on GH
mkholt Nov 27, 2025
ac21284
CHORE: Clean up code-style warnings
mkholt Nov 27, 2025
627d151
CHORE: Update CHANGELOG and AnalyzerReleases to prepare for merge
mkholt Nov 27, 2025
1b48cf9
CHORE: Set version of SourceGenerator
mkholt Nov 27, 2025
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
14 changes: 12 additions & 2 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,19 @@
"permissions": {
"allow": [
"Bash(dotnet build:*)",
"Bash(dotnet test:*)"
"Bash(dotnet test:*)",
"Bash(dotnet restore:*)",
"Bash(dotnet clean:*)",
"Bash(dotnet msbuild:*)",
"Bash(dotnet pack:*)",
"Bash(dotnet list:*)",
"Bash(find:*)",
"Bash(cat:*)",
"Bash(findstr:*)",
"Bash(dir:*)"
],
"deny": [],
"ask": []
}
},
"outputStyle": "default"
}
4 changes: 2 additions & 2 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ root = true
charset = utf-8
indent_style = tab # Use tabs for indentation, change from ATC
indent_size = 4
insert_final_newline = false
insert_final_newline = true # Add newline at end of file, change from ATC
trim_trailing_whitespace = true

##########################################
Expand Down Expand Up @@ -523,4 +523,4 @@ dotnet_diagnostic.CA1515.severity = none # We allow controllers to be public

dotnet_diagnostic.S3925.severity = none # rule that requires an implementation that is obsolete in .Net8

dotnet_diagnostic.SA1010.severity = none # Disabled until fix for C#12 has been released for collection expressions
dotnet_diagnostic.SA1010.severity = none # Disabled until fix for C#12 has been released for collection expressions
72 changes: 38 additions & 34 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,48 +1,52 @@
name: Check PR

on:
pull_request:
push:
branches:
- main
pull_request:
push:
branches:
- main

jobs:
run-ci:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
runs-on: windows-latest
run-ci:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
runs-on: windows-latest

steps:
- name: 🚚 Get latest code
uses: actions/checkout@v4
steps:
- name: 🚚 Get latest code
uses: actions/checkout@v4

- name: 🛠️ Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.x
- name: 🛠️ Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 10.x

- name: ✏️ Set abstractions version from CHANGELOG.md
shell: pwsh
run: ./scripts/Set-VersionFromChangelog.ps1 -ChangelogPath XrmPluginCore.Abstractions/CHANGELOG.md -CsprojPath XrmPluginCore.Abstractions/XrmPluginCore.Abstractions.csproj
- name: ✏️ Set abstractions version from CHANGELOG.md
shell: pwsh
run: ./scripts/Set-VersionFromChangelog.ps1 -ChangelogPath XrmPluginCore.Abstractions/CHANGELOG.md -CsprojPath XrmPluginCore.Abstractions/XrmPluginCore.Abstractions.csproj

- name: ✏️ Set implementations version from CHANGELOG.md
shell: pwsh
run: ./scripts/Set-VersionFromChangelog.ps1 -ChangelogPath XrmPluginCore/CHANGELOG.md -CsprojPath XrmPluginCore/XrmPluginCore.csproj
- name: ✏️ Set source generator version from CHANGELOG.md
shell: pwsh
run: ./scripts/Set-VersionFromChangelog.ps1 -ChangelogPath XrmPluginCore.SourceGenerator/CHANGELOG.md -CsprojPath XrmPluginCore.SourceGenerator/XrmPluginCore.SourceGenerator.csproj

- name: 📦 Install dependencies
run: dotnet restore
- name: ✏️ Set implementations version from CHANGELOG.md
shell: pwsh
run: ./scripts/Set-VersionFromChangelog.ps1 -ChangelogPath XrmPluginCore/CHANGELOG.md -CsprojPath XrmPluginCore/XrmPluginCore.csproj

- name: 🔨 Build solution
run: dotnet build --configuration Release --no-restore
- name: 📦 Install dependencies
run: dotnet restore

- name: ✅ Run tests
run: dotnet test --configuration Release --no-build --verbosity normal
- name: 🔨 Build solution
run: dotnet build --configuration Release --no-restore

- name: 📦 Pack
run: dotnet pack --configuration Release --no-build --output ./nupkg
- name: ✅ Run tests
run: dotnet test --configuration Release --no-build --verbosity normal

- name: 📤 Upload artifacts
uses: actions/upload-artifact@v4
with:
name: packages
path: ./nupkg
- name: 📦 Pack
run: dotnet pack --configuration Release --no-build --output ./nupkg

- name: 📤 Upload artifacts
uses: actions/upload-artifact@v4
with:
name: packages
path: ./nupkg
8 changes: 6 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Release
name: Release

on:
release:
Expand All @@ -21,12 +21,16 @@ jobs:
- name: 🛠️ Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.x
dotnet-version: 10.x

- name: ✏️ Set abstractions version from CHANGELOG.md
shell: pwsh
run: ./scripts/Set-VersionFromChangelog.ps1 -ChangelogPath XrmPluginCore.Abstractions/CHANGELOG.md -CsprojPath XrmPluginCore.Abstractions/XrmPluginCore.Abstractions.csproj

- name: ✏️ Set source generator version from CHANGELOG.md
shell: pwsh
run: ./scripts/Set-VersionFromChangelog.ps1 -ChangelogPath XrmPluginCore.SourceGenerator/CHANGELOG.md -CsprojPath XrmPluginCore.SourceGenerator/XrmPluginCore.SourceGenerator.csproj

- name: ✏️ Set implementations version from CHANGELOG.md
shell: pwsh
run: ./scripts/Set-VersionFromChangelog.ps1 -ChangelogPath XrmPluginCore/CHANGELOG.md -CsprojPath XrmPluginCore/XrmPluginCore.csproj
Expand Down
Loading