Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
8f7643b
fix: corrected compilation references to avoid attempting to compile …
JerrettDavis Dec 18, 2025
ab52754
fix: added nested directory detection to template copying logic
JerrettDavis Dec 18, 2025
4268bd4
fix: made Template copying more robust to ensure the project path is …
JerrettDavis Dec 18, 2025
ade3be2
fix: tweaked compilation includes to prevent duplicates
JerrettDavis Dec 18, 2025
02e9d2d
refactor: apply PatternKit patterns to MSBuild tasks for improved mai…
JerrettDavis Dec 19, 2025
bf9af30
feat(msbuild-sdk): add support for MSBuild.Sdk.SqlProj SQL project (#4)
JerrettDavis Dec 19, 2025
18da1af
feat(direct-connect): implemented build tasks to allow for reverse en…
JerrettDavis Dec 21, 2025
f2dbb1f
feat: add direct DACPAC reverse engineering (#8)
JerrettDavis Dec 22, 2025
3f0a287
perf: implemented a more intelligent DACPAC fingerprinting algorithm …
JerrettDavis Dec 23, 2025
c025a9f
feat: added build target for `dotnet clean`, which now removes the ge…
JerrettDavis Dec 23, 2025
95e9586
fix(build): prevent race condition during DACPAC build process (#15)
JerrettDavis Dec 24, 2025
518a7b2
feat: added the ability to split model generation across two projects…
JerrettDavis Dec 25, 2025
7b7cb49
feat: enhance configurability of the library through MSBuild and addi…
JerrettDavis Dec 26, 2025
3ce716a
docs: removed README artifacts from previous update. Updated sqlproj …
JerrettDavis Dec 26, 2025
e623f5b
Use project's RootNamespace as default for EfcptConfigRootNamespace (…
Copilot Dec 26, 2025
171aeed
feat: Auto-generate DbContext names from SQL Project, DACPAC, or conn…
Copilot Dec 26, 2025
f801649
chore: Add regeneration triggers for library version, tool version, c…
Copilot Dec 27, 2025
7e90831
chore: adding sample applications (#27)
JerrettDavis Dec 27, 2025
c16c0a8
feat: add JD.Efcpt.Sdk MSBuild SDK package and documentation (#28)
JerrettDavis Dec 28, 2025
9d39921
fix: correct VS MSBuild (#29)
JerrettDavis Dec 28, 2025
da46f6f
fix: update package paths to use build/ instead of buildTransitive/ (…
JerrettDavis Dec 28, 2025
f9478e1
fix: Fix MSBuild version detection for .NET 10 task assembly selectio…
Copilot Dec 29, 2025
2c0cb6f
chore: Improve error reporting in ResolveSqlProjAndInputs for MSBuild…
Copilot Dec 29, 2025
e769e9a
fix: Fix NullReferenceException in .sln parsing when regex groups are…
Copilot Dec 30, 2025
8d12365
fix: Add null guards for .NET Framework MSBuild compatibility (#37)
JerrettDavis Dec 30, 2025
1090c43
fix: normalize string properties to prevent NullReferenceExceptions i…
JerrettDavis Dec 30, 2025
3f4bc16
fix: enhance error handling and logging in BuildResolutionState metho…
JerrettDavis Dec 30, 2025
3da7ee2
fix: initialize assembly resolver in ModuleInitializer for .NET Frame…
JerrettDavis Dec 30, 2025
c79d994
fix: ensure proper static initialization order for regex in .NET Fram…
JerrettDavis Dec 30, 2025
bef8dbc
feat: Add SDK templates for simpler adoption - dotnet new efcptbuild …
Copilot Dec 30, 2025
282a264
fix: Fix dnx not being used for .NET 10+ target frameworks (#43)
Copilot Dec 31, 2025
a38d491
feat: enable NuGet version checking by default for SDK users (#31) (#45)
JerrettDavis Dec 31, 2025
2ef0553
chore: Add PackageType MSBuildSdk to JD.Efcpt.Sdk (#47)
Copilot Jan 1, 2026
650cbe8
refactor: consolidate schema readers and add comprehensive documentat…
JerrettDavis Jan 1, 2026
c67d227
chore: Add configurable warning levels for auto-detection and SDK ver…
Copilot Jan 2, 2026
0ded0b3
feat: Add automatic database-first SQL generation with two-project pa…
Copilot Jan 4, 2026
37ab817
fix: Add SDK version to template for Visual Studio compatibility (#55)
Copilot Jan 5, 2026
5f18796
fix: Fix template config file: remove invalid sections and experiment…
Copilot Jan 5, 2026
17b0d88
refactor: Refactor SQL project detection to prioritize SDK attribute …
Copilot Jan 5, 2026
c48a9ba
ci: Add scheduled workflow to sync efcpt-config.schema.json from upst…
Copilot Jan 5, 2026
1f494f6
chore: update efcpt-config.schema.json from upstream (#63)
github-actions[bot] Jan 5, 2026
007d0d1
chore: Add schema-based config generator for efcpt-config.json files …
Copilot Jan 5, 2026
6010cd7
docs: Implement build-time version replacement for documentation (#67)
Copilot Jan 10, 2026
3cc9bec
feat(profiling): Add optional build profiling framework with versione…
Copilot Jan 13, 2026
9cdd717
feat: Convert JD.Efcpt.Build to use JD.MSBuild.Fluent
JerrettDavis Jan 18, 2026
daf3029
Delete src/Generator/Generator.csproj
JerrettDavis Jan 18, 2026
ba2689c
Delete src/Generator/Program.cs
JerrettDavis Jan 18, 2026
48c82ac
Delete NuGet.config
JerrettDavis Jan 18, 2026
aebadbe
refactor: Convert to strongly-typed properties and targets
JerrettDavis Jan 18, 2026
6c647cf
WIP: Integrate fluent definitions into main JD.Efcpt.Build project
JerrettDavis Jan 18, 2026
6a3eef4
feat: Convert project to use JD.MSBuild.Fluent for MSBuild definitions
JerrettDavis Jan 19, 2026
44454ec
Merge remote changes
JerrettDavis Jan 19, 2026
28419be
fix: Remove local nuget.config with Windows-specific paths
JerrettDavis Jan 19, 2026
fadf8d4
fix: Update JD.MSBuild.Fluent to version 1.3.4 from nuget.org
JerrettDavis Jan 19, 2026
1ac2d3f
fix: Update sample app imports to use new file locations
JerrettDavis Jan 19, 2026
afdc10c
fix: Use MSBuildThisFileDirectory in import paths for local development
JerrettDavis Jan 19, 2026
34158c7
fix: Correct buildTransitive import path (remove ../)
JerrettDavis Jan 19, 2026
ed8e34a
fix: Update test file paths to match new structure
JerrettDavis Jan 19, 2026
a89b871
fix: Update Content paths to match JD.MSBuild.Fluent 1.3.4 output
JerrettDavis Jan 19, 2026
5cdcaaf
fix: Clear NuGet cache before tests to use fresh local packages
JerrettDavis Jan 19, 2026
03e2962
fix: Use proper runsettings file for code coverage
JerrettDavis Jan 19, 2026
df3b8b4
Add coverlet.collector package reference to integration tests for cod…
JerrettDavis Jan 20, 2026
c576f79
Refactor CI workflow to streamline test coverage setup
JerrettDavis Jan 20, 2026
b8604bc
fix: update import paths for shared props and targets in build config…
JerrettDavis Jan 20, 2026
25d7518
fix: update shared props and targets imports to support conditional l…
JerrettDavis Jan 20, 2026
4431a12
chore: Update JD.MSBuild.Fluent to version 1.3.7
JerrettDavis Jan 20, 2026
7c52af5
fix: Correct package structure to match main branch
JerrettDavis Jan 20, 2026
51fecc7
fix: Use Condition parameter instead of Code for Error tasks
JerrettDavis Jan 20, 2026
0dacc92
fix: Change Error Code= to Condition= in generated targets
JerrettDavis Jan 20, 2026
cb8da6c
fix: Use Condition instead of Code in Error tasks
JerrettDavis Jan 20, 2026
5c81467
chore: Remove incorrect nuget.config with local Windows path
JerrettDavis Jan 20, 2026
024d26b
chore: Update JD.MSBuild.Fluent to version 1.3.9
JerrettDavis Jan 20, 2026
737e58d
chore: Update JD.MSBuild.Fluent to version 1.3.9
JerrettDavis Jan 20, 2026
58504a1
fix: Add condition to _EfcptIsSqlProject default property to prevent …
JerrettDavis Jan 20, 2026
9245d82
feat: Add strongly-typed MSBuild constants infrastructure
JerrettDavis Jan 20, 2026
2f0069d
refactor: Eliminate DRY violations with SharedPropertyGroups
JerrettDavis Jan 20, 2026
bc71534
docs: Add code review summary
JerrettDavis Jan 20, 2026
f5bb793
chore: Remove tmpclaude temp files and add to gitignore
JerrettDavis Jan 20, 2026
d4ea9cb
feat: Add constants and registry infrastructure
JerrettDavis Jan 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion dotnet-tools.json → .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"isRoot": true,
"tools": {
"erikej.efcorepowertools.cli": {
"version": "10.1.1055",
"version": "10.1.1094",
"commands": [
"efcpt"
],
Expand Down
16 changes: 13 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,10 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 10.0.x
dotnet-version: |
8.0.x
9.0.x
10.0.x

- name: Restore
run: |
Expand Down Expand Up @@ -130,7 +133,10 @@ jobs:
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 10.0.x
dotnet-version: |
8.0.x
9.0.x
10.0.x

- name: Restore
run: |
Expand Down Expand Up @@ -160,6 +166,11 @@ jobs:
echo "ASSEMBLY_VERSION=${{ steps.gitversion.outputs.assemblySemVer }}" >> $GITHUB_ENV
echo "FILE_VERSION=${{ steps.gitversion.outputs.assemblySemFileVer }}" >> $GITHUB_ENV

- name: Replace version placeholders in documentation
shell: pwsh
run: |
./build/replace-version.ps1 -Version "${{ env.PACKAGE_VERSION }}" -Path "."

- name: Build (Release)
run: >
dotnet build JD.Efcpt.Build.sln
Expand Down Expand Up @@ -264,4 +275,3 @@ jobs:
--source "https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json" \
--api-key "${{ secrets.GITHUB_TOKEN }}" \
--skip-duplicate

44 changes: 44 additions & 0 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: "CodeQL"

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
schedule:
- cron: '0 12 * * 0'

jobs:
analyze:
runs-on: ubuntu-latest
permissions:
security-events: write
actions: read
contents: read

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
10.0.x
cache: true
cache-dependency-path: |
**/packages.lock.json

- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: csharp

- name: Restore
run: dotnet restore JD.Efcpt.Build.sln --use-lock-file

- name: Build
run: dotnet build JD.Efcpt.Build.sln --configuration Release --no-restore

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
27 changes: 27 additions & 0 deletions .github/workflows/dependency-submission.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Dependency Submission

on:
push:
branches: [ main ]
pull_request:
branches: [ main ]

permissions:
id-token: write
contents: write

jobs:
dependency-submission:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '10.0.x'
- name: Restore dependencies
run: dotnet restore
- name: Component Detection
uses: advanced-security/component-detection-dependency-submission-action@v0.1.0
with:
directoryExclusionList: 'samples/**/*;tests/**/*'
53 changes: 53 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Docs

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

permissions:
actions: read
pages: write
id-token: write

concurrency:
group: "pages-${{ github.ref }}"
cancel-in-progress: true

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 10.0.x

- name: Install docfx
run: dotnet tool update -g docfx

- name: Build docs
run: docfx docs/docfx.json

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: 'docs/_site'

deploy:
needs: build
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
77 changes: 77 additions & 0 deletions .github/workflows/update-schema.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: Update EFCPT Schema

on:
schedule:
# Run twice daily at 6:00 AM and 6:00 PM UTC
- cron: '0 6,18 * * *'
workflow_dispatch:
inputs:
reason:
description: 'Reason for manual run'
required: false
default: 'Manual schema update check'

permissions:
contents: write
pull-requests: write

concurrency:
group: "update-schema-${{ github.ref }}"
cancel-in-progress: true

jobs:
check-and-update-schema:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 1

- name: Download upstream schema
id: download
run: |
UPSTREAM_URL="https://raw.githubusercontent.com/ErikEJ/EFCorePowerTools/master/samples/efcpt-config.schema.json"
LOCAL_PATH="lib/efcpt-config.schema.json"

# Download the upstream schema to a temporary file
if ! curl -f -s -o /tmp/upstream-schema.json "$UPSTREAM_URL"; then
echo "Error: Failed to download upstream schema from $UPSTREAM_URL" >&2
exit 1
fi

# If the local schema file does not exist, treat this as a change and create it
if [ ! -f "$LOCAL_PATH" ]; then
echo "Local schema file '$LOCAL_PATH' not found. Creating it from upstream."
mkdir -p "$(dirname "$LOCAL_PATH")"
cp /tmp/upstream-schema.json "$LOCAL_PATH"
echo "has_changes=true" >> "$GITHUB_OUTPUT"
echo "Changes detected in schema file (local file was missing)"
# Compare the files when the local schema exists
elif diff -q "$LOCAL_PATH" /tmp/upstream-schema.json; then
echo "has_changes=false" >> "$GITHUB_OUTPUT"
echo "No changes detected in schema file"
else
echo "has_changes=true" >> "$GITHUB_OUTPUT"
echo "Changes detected in schema file"
cp /tmp/upstream-schema.json "$LOCAL_PATH"
fi

- name: Create Pull Request
if: steps.download.outputs.has_changes == 'true'
uses: peter-evans/create-pull-request@v8
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: 'chore: update efcpt-config.schema.json from upstream'
title: 'chore: Update EFCPT Schema from Upstream'
body: |
This PR updates the `/lib/efcpt-config.schema.json` file to match the upstream version from the EFCorePowerTools repository.

**Source**: https://raw.githubusercontent.com/ErikEJ/EFCorePowerTools/master/samples/efcpt-config.schema.json

This PR was automatically created by the scheduled workflow.
branch: automated/update-efcpt-schema
delete-branch: true
labels: |
dependencies
automated
9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,11 @@ obj/
.idea/
.vs/
*.suo
*.log
*.log
docs/api
docs/_site
coverage.cobertura.xml
pkg/
artifacts/
*.bak
tmpclaude-*
Loading