From da734263a9546bbed0d571fae8f4b5da519b48d1 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Thu, 5 Jun 2025 14:11:53 +0300 Subject: [PATCH 01/90] Set up CI with Azure Pipelines [skip ci] --- azure-pipelines.yml | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 azure-pipelines.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 0000000..27a798a --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,19 @@ +# Starter pipeline +# Start with a minimal pipeline that you can customize to build and deploy your code. +# Add steps that build, run tests, deploy, and more: +# https://aka.ms/yaml + +trigger: +- master + +pool: + vmImage: ubuntu-latest + +steps: +- script: echo Hello, world! + displayName: 'Run a one-line script' + +- script: | + echo Add other tasks to build, test, and deploy your project. + echo See https://aka.ms/yaml + displayName: 'Run a multi-line script' From ab504367b9b3f67a4163b5d2879840329fdf496f Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Thu, 5 Jun 2025 15:33:46 +0300 Subject: [PATCH 02/90] Add pipeline to build and sign --- azure-pipelines.yml | 84 +++++++++++++++++++++++++++++++++++++-------- 1 file changed, 69 insertions(+), 15 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 27a798a..a8b4a31 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,19 +1,73 @@ -# Starter pipeline -# Start with a minimal pipeline that you can customize to build and deploy your code. -# Add steps that build, run tests, deploy, and more: -# https://aka.ms/yaml - trigger: -- master + branches: + include: + - master + +pr: + branches: + exclude: + - '*' + +variables: +- group: Code_Signing_Certificate_2023_2026 + +stages: +- stage: BuildAndPublish + condition: succeeded() + jobs: + - job: BuildAndSign + pool: + vmImage: 'ubuntu-latest' + + variables: + buildConfiguration: 'Release' + + steps: + - task: UseDotNet@2 + inputs: + packageType: 'sdk' + version: '9.x' + + - checkout: self + persistCredentials: true + + - task: GitVersion@5 + inputs: + runtime: 'core' + name: gitVersion + + - task: DownloadSecureFile@1 + name: cert + inputs: + secureFile: 'code-signing-certificate-2023-2026.pfx' + + - script: dotnet restore + displayName: 'Restore Dependencies' -pool: - vmImage: ubuntu-latest + - script: > + dotnet build ./src/Infragistics.QueryBuilder.Executor.csproj + --configuration $(buildConfiguration) + --no-restore + -p:SignAssembly=true + -p:AssemblyOriginatorKeyFile=$(Agent.TempDirectory)/$(cert.secureFilePath) + -p:PrivateKeyPassword=$(SignCertPassword) + displayName: 'Build and Sign Assemblies' -steps: -- script: echo Hello, world! - displayName: 'Run a one-line script' + - script: > + dotnet pack ./src/Infragistics.QueryBuilder.Executor.csproj + --configuration $(buildConfiguration) + --no-build + -p:SignAssembly=true + -p:AssemblyOriginatorKeyFile=$(Agent.TempDirectory)/$(cert.secureFilePath) + -p:PrivateKeyPassword=$(SignCertPassword) + -p:PackageVersion=$(GitVersion.NuGetVersionV2) + -o $(Build.ArtifactStagingDirectory)/nuget + displayName: 'Pack NuGet Package' -- script: | - echo Add other tasks to build, test, and deploy your project. - echo See https://aka.ms/yaml - displayName: 'Run a multi-line script' + # - task: NuGetCommand@2 + # inputs: + # command: 'push' + # packagesToPush: '$(Build.ArtifactStagingDirectory)/nuget/*.nupkg' + # nuGetFeedType: 'external' + # publishFeedCredentials: 'NuGet.org API Key' + # displayName: 'Publish to NuGet.org' From 14807ccf507db891b0344bf833fb7dce7a1d1bd5 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Thu, 5 Jun 2025 15:35:28 +0300 Subject: [PATCH 03/90] Change signing certificate password --- azure-pipelines.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index a8b4a31..5922de2 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -50,7 +50,7 @@ stages: --no-restore -p:SignAssembly=true -p:AssemblyOriginatorKeyFile=$(Agent.TempDirectory)/$(cert.secureFilePath) - -p:PrivateKeyPassword=$(SignCertPassword) + -p:PrivateKeyPassword=$(SigningCertificatePassword) displayName: 'Build and Sign Assemblies' - script: > @@ -59,7 +59,7 @@ stages: --no-build -p:SignAssembly=true -p:AssemblyOriginatorKeyFile=$(Agent.TempDirectory)/$(cert.secureFilePath) - -p:PrivateKeyPassword=$(SignCertPassword) + -p:PrivateKeyPassword=$(SigningCertificatePassword) -p:PackageVersion=$(GitVersion.NuGetVersionV2) -o $(Build.ArtifactStagingDirectory)/nuget displayName: 'Pack NuGet Package' From 187b1621f55235b40cb9413ca141974c3a51ec81 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Thu, 5 Jun 2025 15:43:40 +0300 Subject: [PATCH 04/90] Change to versionSpec parameter --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 5922de2..83b8d95 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -26,7 +26,7 @@ stages: - task: UseDotNet@2 inputs: packageType: 'sdk' - version: '9.x' + versionSpec: '9.x' - checkout: self persistCredentials: true From 3d134b3a82867ff1a36c82014871722656f5a956 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Thu, 5 Jun 2025 15:47:09 +0300 Subject: [PATCH 05/90] Add versionSpec to gitversion task --- azure-pipelines.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 83b8d95..851e18d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -34,6 +34,7 @@ stages: - task: GitVersion@5 inputs: runtime: 'core' + versionSpec: '9.x' name: gitVersion - task: DownloadSecureFile@1 From 4e1eafc3c5e84b7b8a5d732fd224a73bb7f36022 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Thu, 5 Jun 2025 15:55:52 +0300 Subject: [PATCH 06/90] Change git version to 5.x --- azure-pipelines.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 851e18d..08bcae4 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -26,7 +26,7 @@ stages: - task: UseDotNet@2 inputs: packageType: 'sdk' - versionSpec: '9.x' + versionSpec: '5.x' - checkout: self persistCredentials: true @@ -34,7 +34,7 @@ stages: - task: GitVersion@5 inputs: runtime: 'core' - versionSpec: '9.x' + versionSpec: '5.x' name: gitVersion - task: DownloadSecureFile@1 From efc893a5c0aa3258b5a6aae9fabcdd19a751b8bc Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Thu, 5 Jun 2025 16:07:31 +0300 Subject: [PATCH 07/90] Change to windows-latest --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 08bcae4..57fd5b3 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -17,7 +17,7 @@ stages: jobs: - job: BuildAndSign pool: - vmImage: 'ubuntu-latest' + vmImage: 'windows-latest' variables: buildConfiguration: 'Release' From 0624a7f3375eb35a1e7ddafd70bf670fd5be5088 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Thu, 5 Jun 2025 16:36:05 +0300 Subject: [PATCH 08/90] Do not use shallow depth fetch in git --- azure-pipelines.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 57fd5b3..e7124fb 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -30,6 +30,7 @@ stages: - checkout: self persistCredentials: true + fetchDepth: 0 - task: GitVersion@5 inputs: From 19cf8e1ab5722550b63d2b2a1ca7d610db889834 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Thu, 5 Jun 2025 16:43:15 +0300 Subject: [PATCH 09/90] Edit .csproj file location --- azure-pipelines.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index e7124fb..cea6e5c 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -47,7 +47,7 @@ stages: displayName: 'Restore Dependencies' - script: > - dotnet build ./src/Infragistics.QueryBuilder.Executor.csproj + dotnet build ./Infragistics.QueryBuilder.Executor.csproj --configuration $(buildConfiguration) --no-restore -p:SignAssembly=true @@ -56,7 +56,7 @@ stages: displayName: 'Build and Sign Assemblies' - script: > - dotnet pack ./src/Infragistics.QueryBuilder.Executor.csproj + dotnet pack ./Infragistics.QueryBuilder.Executor.csproj --configuration $(buildConfiguration) --no-build -p:SignAssembly=true From 3fde1b4ddd553559fe612dc041dc350f7658534e Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Thu, 5 Jun 2025 16:59:14 +0300 Subject: [PATCH 10/90] Change to snk signing --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index cea6e5c..59cff18 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -41,7 +41,7 @@ stages: - task: DownloadSecureFile@1 name: cert inputs: - secureFile: 'code-signing-certificate-2023-2026.pfx' + secureFile: 'IGStrongName.key' - script: dotnet restore displayName: 'Restore Dependencies' From 2946ec03f5a9b1362cf55bcaefc7a9dc2aa76cae Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Thu, 5 Jun 2025 17:11:18 +0300 Subject: [PATCH 11/90] Fix secure file path --- azure-pipelines.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 59cff18..8b6d4f9 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -51,7 +51,7 @@ stages: --configuration $(buildConfiguration) --no-restore -p:SignAssembly=true - -p:AssemblyOriginatorKeyFile=$(Agent.TempDirectory)/$(cert.secureFilePath) + -p:AssemblyOriginatorKeyFile=$(cert.secureFilePath) -p:PrivateKeyPassword=$(SigningCertificatePassword) displayName: 'Build and Sign Assemblies' @@ -60,7 +60,7 @@ stages: --configuration $(buildConfiguration) --no-build -p:SignAssembly=true - -p:AssemblyOriginatorKeyFile=$(Agent.TempDirectory)/$(cert.secureFilePath) + -p:AssemblyOriginatorKeyFile=$(cert.secureFilePath) -p:PrivateKeyPassword=$(SigningCertificatePassword) -p:PackageVersion=$(GitVersion.NuGetVersionV2) -o $(Build.ArtifactStagingDirectory)/nuget From a72ab6fe343c9acbc883b9b793ff60a1f5f7dca9 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Tue, 10 Jun 2025 14:55:33 +0300 Subject: [PATCH 12/90] Add pr related versioning --- azure-pipelines.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 8b6d4f9..3c13e46 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -10,6 +10,10 @@ pr: variables: - group: Code_Signing_Certificate_2023_2026 +- name: prId + value: $[coalesce(variables['System.PullRequest.PullRequestId'], '000')] +- name: prIteration + value: $[counter(variables['prId'], 1)] stages: - stage: BuildAndPublish From c584107e4ad4192584b3ff71d04bf5ae1390ce18 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Tue, 10 Jun 2025 15:02:16 +0300 Subject: [PATCH 13/90] Add pipeline run name --- azure-pipelines.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 3c13e46..878c052 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -8,6 +8,8 @@ pr: exclude: - '*' +name: pr.$(prId)-$(prIteration) + variables: - group: Code_Signing_Certificate_2023_2026 - name: prId From 3909ef161e599cb59ad0e0cf5e52112b4cc9ae6b Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Tue, 10 Jun 2025 15:24:51 +0300 Subject: [PATCH 14/90] Add signing of dlls --- azure-pipelines.yml | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 878c052..6ddf97e 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -20,7 +20,7 @@ variables: stages: - stage: BuildAndPublish condition: succeeded() - jobs: + jobs: - job: BuildAndSign pool: vmImage: 'windows-latest' @@ -47,7 +47,27 @@ stages: - task: DownloadSecureFile@1 name: cert inputs: - secureFile: 'IGStrongName.key' + secureFile: 'code-signing-certificate-2023-2026.pfx' + + - powershell: | + $certPath = '$(cert.secureFilePath)' + $certPassword = '$(SigningCertificatePassword)' + + $dllFolder = '$(Build.ArtifactStagingDirectory)\path\to\dlls' + + $dllFiles = Get-ChildItem -Path $dllFolder -Filter *.dll -Recurse + $signtoolPath = "${env:ProgramFiles(x86)}\Windows Kits\10\bin\x64\signtool.exe" + + foreach ($dll in $dllFiles) { + Write-Host "Signing $($dll.FullName)..." + & $signtoolPath sign /f $certPath /p $certPassword /tr http://timestamp.digicert.com /td sha256 /fd sha256 $dll.FullName + + if ($LASTEXITCODE -ne 0) { + Write-Error "Signing failed for $($dll.FullName)" + exit 1 + } + } + displayName: 'Sign all DLL files with PFX certificate' - script: dotnet restore displayName: 'Restore Dependencies' From d7f7918afd2a430a47396a4eb27a253f94d6146b Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Tue, 10 Jun 2025 15:30:54 +0300 Subject: [PATCH 15/90] Change order of operations --- azure-pipelines.yml | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 6ddf97e..59ee6ec 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -49,11 +49,27 @@ stages: inputs: secureFile: 'code-signing-certificate-2023-2026.pfx' + - script: dotnet restore + displayName: 'Restore Dependencies' + + - script: > + dotnet build ./Infragistics.QueryBuilder.Executor.csproj + --configuration $(buildConfiguration) + --no-restore + displayName: 'Build Project' + - powershell: | $certPath = '$(cert.secureFilePath)' $certPassword = '$(SigningCertificatePassword)' - $dllFolder = '$(Build.ArtifactStagingDirectory)\path\to\dlls' + # Path to DLL output folder after build + $dllFolder = '$(Build.SourcesDirectory)\Infragistics.QueryBuilder.Executor\bin\$(buildConfiguration)\net5.0' + + Write-Host "Signing DLLs in folder: $dllFolder" + if (-Not (Test-Path $dllFolder)) { + Write-Error "Folder does not exist: $dllFolder" + exit 1 + } $dllFiles = Get-ChildItem -Path $dllFolder -Filter *.dll -Recurse $signtoolPath = "${env:ProgramFiles(x86)}\Windows Kits\10\bin\x64\signtool.exe" @@ -69,18 +85,6 @@ stages: } displayName: 'Sign all DLL files with PFX certificate' - - script: dotnet restore - displayName: 'Restore Dependencies' - - - script: > - dotnet build ./Infragistics.QueryBuilder.Executor.csproj - --configuration $(buildConfiguration) - --no-restore - -p:SignAssembly=true - -p:AssemblyOriginatorKeyFile=$(cert.secureFilePath) - -p:PrivateKeyPassword=$(SigningCertificatePassword) - displayName: 'Build and Sign Assemblies' - - script: > dotnet pack ./Infragistics.QueryBuilder.Executor.csproj --configuration $(buildConfiguration) From df98c87f6417199f56fd1b237382190f416ef776 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Tue, 10 Jun 2025 15:35:19 +0300 Subject: [PATCH 16/90] WIP list dll files location --- azure-pipelines.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 59ee6ec..9137536 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -58,6 +58,14 @@ stages: --no-restore displayName: 'Build Project' + - powershell: | + Write-Host "Listing build output folders:" + Get-ChildItem "$(Build.SourcesDirectory)\Infragistics.QueryBuilder.Executor\bin\$(buildConfiguration)" -Directory | ForEach-Object { Write-Host $_.FullName } + + Write-Host "Checking inside each target folder:" + Get-ChildItem "$(Build.SourcesDirectory)\Infragistics.QueryBuilder.Executor\bin\$(buildConfiguration)" -Recurse -Include *.dll + displayName: 'Debug: List build output contents' + - powershell: | $certPath = '$(cert.secureFilePath)' $certPassword = '$(SigningCertificatePassword)' From 51ca1ecdbe32719d3e556c21950e4d66738d8e66 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Tue, 10 Jun 2025 15:40:10 +0300 Subject: [PATCH 17/90] WIP update debug step --- azure-pipelines.yml | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 9137536..5120ec0 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -59,11 +59,17 @@ stages: displayName: 'Build Project' - powershell: | - Write-Host "Listing build output folders:" - Get-ChildItem "$(Build.SourcesDirectory)\Infragistics.QueryBuilder.Executor\bin\$(buildConfiguration)" -Directory | ForEach-Object { Write-Host $_.FullName } - - Write-Host "Checking inside each target folder:" - Get-ChildItem "$(Build.SourcesDirectory)\Infragistics.QueryBuilder.Executor\bin\$(buildConfiguration)" -Recurse -Include *.dll + $outputDir = "$(Build.ArtifactStagingDirectory)\executor-build" + Write-Host "Listing contents of: $outputDir" + + if (-Not (Test-Path $outputDir)) { + Write-Error "Output folder not found: $outputDir" + exit 1 + } + + Get-ChildItem $outputDir -Recurse | ForEach-Object { + Write-Host $_.FullName + } displayName: 'Debug: List build output contents' - powershell: | From 97e0f2e905ca641bd73f4aef3c78034b93db9a22 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Tue, 10 Jun 2025 15:45:55 +0300 Subject: [PATCH 18/90] Update output directory --- azure-pipelines.yml | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 5120ec0..f10a2da 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -52,11 +52,19 @@ stages: - script: dotnet restore displayName: 'Restore Dependencies' - - script: > - dotnet build ./Infragistics.QueryBuilder.Executor.csproj - --configuration $(buildConfiguration) - --no-restore - displayName: 'Build Project' + # - script: > + # dotnet build ./Infragistics.QueryBuilder.Executor.csproj + # --configuration $(buildConfiguration) + # --no-restore + # displayName: 'Build Project' + + - script: | + echo "Building project and forcing output path..." + dotnet build ./Infragistics.QueryBuilder.Executor.csproj ` + --configuration $(buildConfiguration) ` + --no-restore ` + -o $(Build.ArtifactStagingDirectory)\executor-build + displayName: 'Build Project with Output Directory' - powershell: | $outputDir = "$(Build.ArtifactStagingDirectory)\executor-build" @@ -75,9 +83,7 @@ stages: - powershell: | $certPath = '$(cert.secureFilePath)' $certPassword = '$(SigningCertificatePassword)' - - # Path to DLL output folder after build - $dllFolder = '$(Build.SourcesDirectory)\Infragistics.QueryBuilder.Executor\bin\$(buildConfiguration)\net5.0' + $dllFolder = "$(Build.ArtifactStagingDirectory)\executor-build" Write-Host "Signing DLLs in folder: $dllFolder" if (-Not (Test-Path $dllFolder)) { From 84d70a9295ded63bd66c109f34a9390cd1ccc928 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Tue, 10 Jun 2025 15:50:22 +0300 Subject: [PATCH 19/90] Use powershell for build --- azure-pipelines.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f10a2da..9c19bcc 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -58,8 +58,8 @@ stages: # --no-restore # displayName: 'Build Project' - - script: | - echo "Building project and forcing output path..." + - powershell: | + Write-Host "Building project and forcing output path..." dotnet build ./Infragistics.QueryBuilder.Executor.csproj ` --configuration $(buildConfiguration) ` --no-restore ` From 6a867b0305e9ba42bdf494af4f8783d4d54fc26f Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 11 Jun 2025 15:41:24 +0300 Subject: [PATCH 20/90] Edit signtool logic --- azure-pipelines.yml | 250 +++++++++++++++++++++++--------------------- 1 file changed, 130 insertions(+), 120 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 9c19bcc..33c5ea2 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,125 +1,135 @@ -trigger: - branches: - include: - - master - -pr: - branches: - exclude: - - '*' - -name: pr.$(prId)-$(prIteration) - -variables: -- group: Code_Signing_Certificate_2023_2026 -- name: prId - value: $[coalesce(variables['System.PullRequest.PullRequestId'], '000')] -- name: prIteration - value: $[counter(variables['prId'], 1)] - -stages: -- stage: BuildAndPublish - condition: succeeded() - jobs: - - job: BuildAndSign - pool: - vmImage: 'windows-latest' - - variables: - buildConfiguration: 'Release' - - steps: - - task: UseDotNet@2 - inputs: - packageType: 'sdk' - versionSpec: '5.x' - - - checkout: self - persistCredentials: true - fetchDepth: 0 - - - task: GitVersion@5 - inputs: - runtime: 'core' - versionSpec: '5.x' - name: gitVersion - - - task: DownloadSecureFile@1 - name: cert - inputs: - secureFile: 'code-signing-certificate-2023-2026.pfx' - - - script: dotnet restore - displayName: 'Restore Dependencies' - - # - script: > - # dotnet build ./Infragistics.QueryBuilder.Executor.csproj - # --configuration $(buildConfiguration) - # --no-restore - # displayName: 'Build Project' - - - powershell: | - Write-Host "Building project and forcing output path..." - dotnet build ./Infragistics.QueryBuilder.Executor.csproj ` - --configuration $(buildConfiguration) ` - --no-restore ` - -o $(Build.ArtifactStagingDirectory)\executor-build - displayName: 'Build Project with Output Directory' - - - powershell: | - $outputDir = "$(Build.ArtifactStagingDirectory)\executor-build" - Write-Host "Listing contents of: $outputDir" - - if (-Not (Test-Path $outputDir)) { - Write-Error "Output folder not found: $outputDir" - exit 1 - } - - Get-ChildItem $outputDir -Recurse | ForEach-Object { - Write-Host $_.FullName - } - displayName: 'Debug: List build output contents' - - - powershell: | - $certPath = '$(cert.secureFilePath)' - $certPassword = '$(SigningCertificatePassword)' - $dllFolder = "$(Build.ArtifactStagingDirectory)\executor-build" - - Write-Host "Signing DLLs in folder: $dllFolder" - if (-Not (Test-Path $dllFolder)) { - Write-Error "Folder does not exist: $dllFolder" + trigger: + branches: + include: + - master + + pr: + branches: + exclude: + - '*' + + name: pr.$(prId)-$(prIteration) + + variables: + - group: Code_Signing_Certificate_2023_2026 + - name: prId + value: $[coalesce(variables['System.PullRequest.PullRequestId'], '000')] + - name: prIteration + value: $[counter(variables['prId'], 1)] + + stages: + - stage: BuildAndPublish + condition: succeeded() + jobs: + - job: BuildAndSign + pool: + vmImage: 'windows-latest' + + variables: + buildConfiguration: 'Release' + + steps: + - task: UseDotNet@2 + inputs: + packageType: 'sdk' + versionSpec: '5.x' + + - checkout: self + persistCredentials: true + fetchDepth: 0 + + - task: GitVersion@5 + inputs: + runtime: 'core' + versionSpec: '5.x' + name: gitVersion + + - task: DownloadSecureFile@1 + name: cert + inputs: + secureFile: 'code-signing-certificate-2023-2026.pfx' + + - script: dotnet restore + displayName: 'Restore Dependencies' + + # - script: > + # dotnet build ./Infragistics.QueryBuilder.Executor.csproj + # --configuration $(buildConfiguration) + # --no-restore + # displayName: 'Build Project' + + - powershell: | + Write-Host "Building project and forcing output path..." + dotnet build ./Infragistics.QueryBuilder.Executor.csproj ` + --configuration $(buildConfiguration) ` + --no-restore ` + -o $(Build.ArtifactStagingDirectory)\executor-build + displayName: 'Build Project with Output Directory' + + - powershell: | + $outputDir = "$(Build.ArtifactStagingDirectory)\executor-build" + Write-Host "Listing contents of: $outputDir" + + if (-Not (Test-Path $outputDir)) { + Write-Error "Output folder not found: $outputDir" exit 1 - } + } - $dllFiles = Get-ChildItem -Path $dllFolder -Filter *.dll -Recurse - $signtoolPath = "${env:ProgramFiles(x86)}\Windows Kits\10\bin\x64\signtool.exe" + Get-ChildItem $outputDir -Recurse | ForEach-Object { + Write-Host $_.FullName + } + displayName: 'Debug: List build output contents' - foreach ($dll in $dllFiles) { - Write-Host "Signing $($dll.FullName)..." - & $signtoolPath sign /f $certPath /p $certPassword /tr http://timestamp.digicert.com /td sha256 /fd sha256 $dll.FullName + - powershell: | + $certPath = '$(cert.secureFilePath)' + $certPassword = '$(SigningCertificatePassword)' + $dllFolder = "$(Build.ArtifactStagingDirectory)\executor-build" - if ($LASTEXITCODE -ne 0) { - Write-Error "Signing failed for $($dll.FullName)" - exit 1 + Write-Host "Signing DLLs in folder: $dllFolder" + if (-Not (Test-Path $dllFolder)) { + Write-Error "Folder does not exist: $dllFolder" + exit 1 + } + + $signtoolPath = Get-ChildItem -Path "${env:ProgramFiles(x86)}\Windows Kits\10\bin" -Recurse -Filter signtool.exe | + Where-Object { $_.FullName -match 'x64\\signtool\.exe$' } | + Select-Object -First 1 + + if (-not $signtoolPath) { + Write-Error "signtool.exe not found in Windows Kits" + exit 1 + } + + Write-Host "Using signtool at: $($signtoolPath.FullName)" + + $dllFiles = Get-ChildItem -Path $dllFolder -Filter *.dll -Recurse + foreach ($dll in $dllFiles) { + Write-Host "Signing $($dll.FullName)..." + & $signtoolPath.FullName sign /f $certPath /p $certPassword /tr http://timestamp.digicert.com /td sha256 /fd sha256 $dll.FullName + + if ($LASTEXITCODE -ne 0) { + Write-Error "Signing failed for $($dll.FullName)" + exit 1 + } } - } - displayName: 'Sign all DLL files with PFX certificate' - - - script: > - dotnet pack ./Infragistics.QueryBuilder.Executor.csproj - --configuration $(buildConfiguration) - --no-build - -p:SignAssembly=true - -p:AssemblyOriginatorKeyFile=$(cert.secureFilePath) - -p:PrivateKeyPassword=$(SigningCertificatePassword) - -p:PackageVersion=$(GitVersion.NuGetVersionV2) - -o $(Build.ArtifactStagingDirectory)/nuget - displayName: 'Pack NuGet Package' - - # - task: NuGetCommand@2 - # inputs: - # command: 'push' - # packagesToPush: '$(Build.ArtifactStagingDirectory)/nuget/*.nupkg' - # nuGetFeedType: 'external' - # publishFeedCredentials: 'NuGet.org API Key' - # displayName: 'Publish to NuGet.org' + displayName: 'Sign all DLL files with PFX certificate' + + + - script: > + dotnet pack ./Infragistics.QueryBuilder.Executor.csproj + --configuration $(buildConfiguration) + --no-build + -p:SignAssembly=true + -p:AssemblyOriginatorKeyFile=$(cert.secureFilePath) + -p:PrivateKeyPassword=$(SigningCertificatePassword) + -p:PackageVersion=$(GitVersion.NuGetVersionV2) + -o $(Build.ArtifactStagingDirectory)/nuget + displayName: 'Pack NuGet Package' + + # - task: NuGetCommand@2 + # inputs: + # command: 'push' + # packagesToPush: '$(Build.ArtifactStagingDirectory)/nuget/*.nupkg' + # nuGetFeedType: 'external' + # publishFeedCredentials: 'NuGet.org API Key' + # displayName: 'Publish to NuGet.org' From a9affd209c101d0c557043aa92bbb9a1f6d17edb Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 11 Jun 2025 22:44:39 +0300 Subject: [PATCH 21/90] Modify dotnet build step --- azure-pipelines.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 33c5ea2..c7d5f08 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -52,19 +52,19 @@ - script: dotnet restore displayName: 'Restore Dependencies' - # - script: > - # dotnet build ./Infragistics.QueryBuilder.Executor.csproj - # --configuration $(buildConfiguration) - # --no-restore - # displayName: 'Build Project' + - script: > + dotnet build ./Infragistics.QueryBuilder.Executor.csproj + --configuration $(buildConfiguration) + --no-restore + displayName: 'Build Project' - - powershell: | - Write-Host "Building project and forcing output path..." - dotnet build ./Infragistics.QueryBuilder.Executor.csproj ` - --configuration $(buildConfiguration) ` - --no-restore ` - -o $(Build.ArtifactStagingDirectory)\executor-build - displayName: 'Build Project with Output Directory' + # - powershell: | + # Write-Host "Building project and forcing output path..." + # dotnet build ./Infragistics.QueryBuilder.Executor.csproj ` + # --configuration $(buildConfiguration) ` + # --no-restore ` + # -o $(Build.ArtifactStagingDirectory)\executor-build + # displayName: 'Build Project with Output Directory' - powershell: | $outputDir = "$(Build.ArtifactStagingDirectory)\executor-build" From cc03d138ccdcfd71abc6b304b5f7fe1c81804cff Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 11 Jun 2025 22:47:12 +0300 Subject: [PATCH 22/90] Comment out debug step --- azure-pipelines.yml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index c7d5f08..7abfe06 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -66,19 +66,19 @@ # -o $(Build.ArtifactStagingDirectory)\executor-build # displayName: 'Build Project with Output Directory' - - powershell: | - $outputDir = "$(Build.ArtifactStagingDirectory)\executor-build" - Write-Host "Listing contents of: $outputDir" - - if (-Not (Test-Path $outputDir)) { - Write-Error "Output folder not found: $outputDir" - exit 1 - } - - Get-ChildItem $outputDir -Recurse | ForEach-Object { - Write-Host $_.FullName - } - displayName: 'Debug: List build output contents' + # - powershell: | + # $outputDir = "$(Build.ArtifactStagingDirectory)\executor-build" + # Write-Host "Listing contents of: $outputDir" + + # if (-Not (Test-Path $outputDir)) { + # Write-Error "Output folder not found: $outputDir" + # exit 1 + # } + + # Get-ChildItem $outputDir -Recurse | ForEach-Object { + # Write-Host $_.FullName + # } + # displayName: 'Debug: List build output contents' - powershell: | $certPath = '$(cert.secureFilePath)' From 81f272712370990ec179fcc2adefaee45abb0484 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 11 Jun 2025 22:54:09 +0300 Subject: [PATCH 23/90] Use powershell to build --- azure-pipelines.yml | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 7abfe06..50e2290 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -52,11 +52,11 @@ - script: dotnet restore displayName: 'Restore Dependencies' - - script: > - dotnet build ./Infragistics.QueryBuilder.Executor.csproj - --configuration $(buildConfiguration) - --no-restore - displayName: 'Build Project' + # - script: > + # dotnet build ./Infragistics.QueryBuilder.Executor.csproj + # --configuration $(buildConfiguration) + # --no-restore + # displayName: 'Build Project' # - powershell: | # Write-Host "Building project and forcing output path..." @@ -66,19 +66,17 @@ # -o $(Build.ArtifactStagingDirectory)\executor-build # displayName: 'Build Project with Output Directory' - # - powershell: | - # $outputDir = "$(Build.ArtifactStagingDirectory)\executor-build" - # Write-Host "Listing contents of: $outputDir" - - # if (-Not (Test-Path $outputDir)) { - # Write-Error "Output folder not found: $outputDir" - # exit 1 - # } - - # Get-ChildItem $outputDir -Recurse | ForEach-Object { - # Write-Host $_.FullName - # } - # displayName: 'Debug: List build output contents' + - powershell: | + $outputDir = "$(Build.ArtifactStagingDirectory)\executor-build" + Write-Host "Listing contents of: $outputDir" + if (-Not (Test-Path $outputDir)) { + Write-Error "Output folder not found: $outputDir" + exit 1 + } + Get-ChildItem $outputDir -Recurse | ForEach-Object { + Write-Host $_.FullName + } + displayName: 'Debug: List build output contents' - powershell: | $certPath = '$(cert.secureFilePath)' From fab3366bb5bb4c61fb060e0a1e97e3969faef068 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 11 Jun 2025 22:58:41 +0300 Subject: [PATCH 24/90] Add build step --- azure-pipelines.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 50e2290..c6c6073 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -52,11 +52,11 @@ - script: dotnet restore displayName: 'Restore Dependencies' - # - script: > - # dotnet build ./Infragistics.QueryBuilder.Executor.csproj - # --configuration $(buildConfiguration) - # --no-restore - # displayName: 'Build Project' + - script: > + dotnet build ./Infragistics.QueryBuilder.Executor.csproj + --configuration $(buildConfiguration) + --no-restore + displayName: 'Build Project' # - powershell: | # Write-Host "Building project and forcing output path..." From cbbfde7c8bb4c986d4f37a7e2be3014899c88559 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 11 Jun 2025 22:59:42 +0300 Subject: [PATCH 25/90] Change pack task --- azure-pipelines.yml | 45 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 34 insertions(+), 11 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index c6c6073..fa77057 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -112,17 +112,40 @@ } displayName: 'Sign all DLL files with PFX certificate' - - - script: > - dotnet pack ./Infragistics.QueryBuilder.Executor.csproj - --configuration $(buildConfiguration) - --no-build - -p:SignAssembly=true - -p:AssemblyOriginatorKeyFile=$(cert.secureFilePath) - -p:PrivateKeyPassword=$(SigningCertificatePassword) - -p:PackageVersion=$(GitVersion.NuGetVersionV2) - -o $(Build.ArtifactStagingDirectory)/nuget - displayName: 'Pack NuGet Package' + - powershell: | + $certPath = '$(cert.secureFilePath)' + $certPassword = '$(SigningCertificatePassword)' + $outputDir = "$(Build.ArtifactStagingDirectory)\executor-build" + $packageOutputDir = "$(Build.ArtifactStagingDirectory)\nuget" + $packageVersion = "$(GitVersion.NuGetVersionV2)" + + Write-Host "Packing project from existing build output..." + dotnet pack ./Infragistics.QueryBuilder.Executor.csproj ` + --no-build ` + --configuration $(buildConfiguration) ` + -p:BuildOutputPath="$outputDir" ` + -p:SignAssembly=true ` + -p:AssemblyOriginatorKeyFile=$certPath ` + -p:PrivateKeyPassword=$certPassword ` + -p:PackageVersion=$packageVersion ` + -o $packageOutputDir + + if ($LASTEXITCODE -ne 0) { + Write-Error "dotnet pack failed" + exit 1 + } + displayName: 'Pack NuGet Package using PowerShell' + + # - script: > + # dotnet pack ./Infragistics.QueryBuilder.Executor.csproj + # --configuration $(buildConfiguration) + # --no-build + # -p:SignAssembly=true + # -p:AssemblyOriginatorKeyFile=$(cert.secureFilePath) + # -p:PrivateKeyPassword=$(SigningCertificatePassword) + # -p:PackageVersion=$(GitVersion.NuGetVersionV2) + # -o $(Build.ArtifactStagingDirectory)/nuget + # displayName: 'Pack NuGet Package' # - task: NuGetCommand@2 # inputs: From b7d727c802f9627257c397e9aaeb5ebdd85d8687 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 11 Jun 2025 23:03:40 +0300 Subject: [PATCH 26/90] Fix debug dotnet build --- azure-pipelines.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index fa77057..35fa542 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -52,19 +52,19 @@ - script: dotnet restore displayName: 'Restore Dependencies' - - script: > - dotnet build ./Infragistics.QueryBuilder.Executor.csproj - --configuration $(buildConfiguration) - --no-restore - displayName: 'Build Project' + # - script: > + # dotnet build ./Infragistics.QueryBuilder.Executor.csproj + # --configuration $(buildConfiguration) + # --no-restore + # displayName: 'Build Project' - # - powershell: | - # Write-Host "Building project and forcing output path..." - # dotnet build ./Infragistics.QueryBuilder.Executor.csproj ` - # --configuration $(buildConfiguration) ` - # --no-restore ` - # -o $(Build.ArtifactStagingDirectory)\executor-build - # displayName: 'Build Project with Output Directory' + - powershell: | + Write-Host "Building project and forcing output path..." + dotnet build ./Infragistics.QueryBuilder.Executor.csproj ` + --configuration $(buildConfiguration) ` + --no-restore ` + -o $(Build.ArtifactStagingDirectory)\executor-build + displayName: 'Build Project with Output Directory' - powershell: | $outputDir = "$(Build.ArtifactStagingDirectory)\executor-build" From 7bccd3ff95654518ec07f84457e10c7f00551d6d Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 11 Jun 2025 23:12:17 +0300 Subject: [PATCH 27/90] Update output directory --- azure-pipelines.yml | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 35fa542..1a86cb9 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -32,7 +32,7 @@ - task: UseDotNet@2 inputs: packageType: 'sdk' - versionSpec: '5.x' + versionSpec: '9.x' - checkout: self persistCredentials: true @@ -63,11 +63,10 @@ dotnet build ./Infragistics.QueryBuilder.Executor.csproj ` --configuration $(buildConfiguration) ` --no-restore ` - -o $(Build.ArtifactStagingDirectory)\executor-build displayName: 'Build Project with Output Directory' - powershell: | - $outputDir = "$(Build.ArtifactStagingDirectory)\executor-build" + $outputDir = "$(Build.SourcesDirectory)\bin\$(buildConfiguration)\net9.0" Write-Host "Listing contents of: $outputDir" if (-Not (Test-Path $outputDir)) { Write-Error "Output folder not found: $outputDir" @@ -81,8 +80,7 @@ - powershell: | $certPath = '$(cert.secureFilePath)' $certPassword = '$(SigningCertificatePassword)' - $dllFolder = "$(Build.ArtifactStagingDirectory)\executor-build" - + $dllFolder = "$(Build.SourcesDirectory)\bin\$(buildConfiguration)\net9.0" Write-Host "Signing DLLs in folder: $dllFolder" if (-Not (Test-Path $dllFolder)) { Write-Error "Folder does not exist: $dllFolder" @@ -115,7 +113,6 @@ - powershell: | $certPath = '$(cert.secureFilePath)' $certPassword = '$(SigningCertificatePassword)' - $outputDir = "$(Build.ArtifactStagingDirectory)\executor-build" $packageOutputDir = "$(Build.ArtifactStagingDirectory)\nuget" $packageVersion = "$(GitVersion.NuGetVersionV2)" @@ -123,7 +120,6 @@ dotnet pack ./Infragistics.QueryBuilder.Executor.csproj ` --no-build ` --configuration $(buildConfiguration) ` - -p:BuildOutputPath="$outputDir" ` -p:SignAssembly=true ` -p:AssemblyOriginatorKeyFile=$certPath ` -p:PrivateKeyPassword=$certPassword ` From 65e8b6061c06a56552d82d2b5808369ca613a4d1 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 11 Jun 2025 23:15:36 +0300 Subject: [PATCH 28/90] remove breaking tick --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 1a86cb9..cbd4363 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -62,7 +62,7 @@ Write-Host "Building project and forcing output path..." dotnet build ./Infragistics.QueryBuilder.Executor.csproj ` --configuration $(buildConfiguration) ` - --no-restore ` + --no-restore displayName: 'Build Project with Output Directory' - powershell: | From 95e4be35c1a64b105e001563cb54be39badfc631 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Thu, 12 Jun 2025 10:46:02 +0300 Subject: [PATCH 29/90] Change name of build task --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index cbd4363..110636c 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -63,7 +63,7 @@ dotnet build ./Infragistics.QueryBuilder.Executor.csproj ` --configuration $(buildConfiguration) ` --no-restore - displayName: 'Build Project with Output Directory' + displayName: 'Build Project' - powershell: | $outputDir = "$(Build.SourcesDirectory)\bin\$(buildConfiguration)\net9.0" From 6c8fdda98b5d6a0c5addf0f0627c4c7ed27891b8 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 25 Jun 2025 18:01:58 +0300 Subject: [PATCH 30/90] Publish signed DLLs as artifacts --- azure-pipelines.yml | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 110636c..6fe1378 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -132,16 +132,30 @@ } displayName: 'Pack NuGet Package using PowerShell' - # - script: > - # dotnet pack ./Infragistics.QueryBuilder.Executor.csproj - # --configuration $(buildConfiguration) - # --no-build - # -p:SignAssembly=true - # -p:AssemblyOriginatorKeyFile=$(cert.secureFilePath) - # -p:PrivateKeyPassword=$(SigningCertificatePassword) - # -p:PackageVersion=$(GitVersion.NuGetVersionV2) - # -o $(Build.ArtifactStagingDirectory)/nuget - # displayName: 'Pack NuGet Package' + - powershell: | + $outputDir = "$(Build.SourcesDirectory)\bin\$(buildConfiguration)\net9.0" + $targetDir = "$(Build.ArtifactStagingDirectory)\SignedDlls" + + Write-Host "Copying signed DLLs from $outputDir to $targetDir" + + if (-Not (Test-Path $outputDir)) { + Write-Error "Source directory does not exist: $outputDir" + exit 1 + } + + New-Item -ItemType Directory -Force -Path $targetDir | Out-Null + Copy-Item -Path "$outputDir\*.dll", "$outputDir\*.pdb", "$outputDir\*.xml" ` + -Destination $targetDir -Recurse -Force + + Write-Host "Signed DLLs copied to artifact staging directory." + displayName: 'Stage Signed Artifacts' + + - task: PublishBuildArtifacts@1 + inputs: + PathtoPublish: '$(Build.ArtifactStagingDirectory)/nuget' + ArtifactName: 'NuGetPackage' + publishLocation: 'Container' + displayName: 'Publish nuget Package as Build Artifact' # - task: NuGetCommand@2 # inputs: From 354804f76a7064c15215febb22fd98da80fe24d0 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 25 Jun 2025 18:23:37 +0300 Subject: [PATCH 31/90] Fix signing logic --- azure-pipelines.yml | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 6fe1378..aca0bad 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -120,36 +120,15 @@ dotnet pack ./Infragistics.QueryBuilder.Executor.csproj ` --no-build ` --configuration $(buildConfiguration) ` - -p:SignAssembly=true ` - -p:AssemblyOriginatorKeyFile=$certPath ` - -p:PrivateKeyPassword=$certPassword ` -p:PackageVersion=$packageVersion ` -o $packageOutputDir if ($LASTEXITCODE -ne 0) { Write-Error "dotnet pack failed" exit 1 - } + } displayName: 'Pack NuGet Package using PowerShell' - - powershell: | - $outputDir = "$(Build.SourcesDirectory)\bin\$(buildConfiguration)\net9.0" - $targetDir = "$(Build.ArtifactStagingDirectory)\SignedDlls" - - Write-Host "Copying signed DLLs from $outputDir to $targetDir" - - if (-Not (Test-Path $outputDir)) { - Write-Error "Source directory does not exist: $outputDir" - exit 1 - } - - New-Item -ItemType Directory -Force -Path $targetDir | Out-Null - Copy-Item -Path "$outputDir\*.dll", "$outputDir\*.pdb", "$outputDir\*.xml" ` - -Destination $targetDir -Recurse -Force - - Write-Host "Signed DLLs copied to artifact staging directory." - displayName: 'Stage Signed Artifacts' - - task: PublishBuildArtifacts@1 inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)/nuget' From ca834c1f57035e40c765b37e51f967aab03b95cf Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Mon, 30 Jun 2025 14:28:40 +0300 Subject: [PATCH 32/90] WIP check if dlls are signed properly --- azure-pipelines.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index aca0bad..01f7f5e 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -110,6 +110,27 @@ } displayName: 'Sign all DLL files with PFX certificate' + - powershell: | + $dllFolder = "$(Build.SourcesDirectory)\bin\$(buildConfiguration)\net9.0" + Write-Host "Checking if DLLs in $dllFolder are signed..." + + $signtool = "${env:ProgramFiles(x86)}\Windows Kits\10\bin\x64\signtool.exe" + + if (-Not (Test-Path $signtool)) { + Write-Error "signtool.exe not found" + exit 1 + } + + Get-ChildItem $dllFolder -Filter *.dll -Recurse | ForEach-Object { + Write-Host "Verifying: $($_.FullName)" + & $signtool verify /pa $_.FullName + if ($LASTEXITCODE -ne 0) { + Write-Error "Signature verification failed for $($_.FullName)" + exit 1 + } + } + displayName: 'Verify DLL Signatures' + - powershell: | $certPath = '$(cert.secureFilePath)' $certPassword = '$(SigningCertificatePassword)' From ce072e772928b55289c6b119da7c8b726b300e83 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Mon, 30 Jun 2025 14:46:51 +0300 Subject: [PATCH 33/90] wip find signtool --- azure-pipelines.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 01f7f5e..3d13861 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -114,16 +114,20 @@ $dllFolder = "$(Build.SourcesDirectory)\bin\$(buildConfiguration)\net9.0" Write-Host "Checking if DLLs in $dllFolder are signed..." - $signtool = "${env:ProgramFiles(x86)}\Windows Kits\10\bin\x64\signtool.exe" + $signtool = Get-ChildItem -Path "${env:ProgramFiles(x86)}\Windows Kits\10\bin" -Recurse -Filter signtool.exe | + Where-Object { $_.FullName -match 'x64\\signtool\.exe$' } | + Select-Object -First 1 - if (-Not (Test-Path $signtool)) { - Write-Error "signtool.exe not found" + if (-not $signtool) { + Write-Error "signtool.exe not found under Windows Kits" exit 1 } + Write-Host "Using signtool: $($signtool.FullName)" + Get-ChildItem $dllFolder -Filter *.dll -Recurse | ForEach-Object { Write-Host "Verifying: $($_.FullName)" - & $signtool verify /pa $_.FullName + & $signtool.FullName verify /pa $_.FullName if ($LASTEXITCODE -ne 0) { Write-Error "Signature verification failed for $($_.FullName)" exit 1 From ab15a9b7d7458cdfe2479e900c4a6ba0b177d6c2 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Mon, 30 Jun 2025 14:51:34 +0300 Subject: [PATCH 34/90] wip verify every single dll is signed --- azure-pipelines.yml | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 3d13861..156cbec 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -114,26 +114,44 @@ $dllFolder = "$(Build.SourcesDirectory)\bin\$(buildConfiguration)\net9.0" Write-Host "Checking if DLLs in $dllFolder are signed..." + if (-Not (Test-Path $dllFolder)) { + Write-Error "DLL folder not found: $dllFolder" + exit 1 + } + $signtool = Get-ChildItem -Path "${env:ProgramFiles(x86)}\Windows Kits\10\bin" -Recurse -Filter signtool.exe | Where-Object { $_.FullName -match 'x64\\signtool\.exe$' } | Select-Object -First 1 if (-not $signtool) { - Write-Error "signtool.exe not found under Windows Kits" + Write-Error "signtool.exe not found" exit 1 } Write-Host "Using signtool: $($signtool.FullName)" - Get-ChildItem $dllFolder -Filter *.dll -Recurse | ForEach-Object { - Write-Host "Verifying: $($_.FullName)" - & $signtool.FullName verify /pa $_.FullName + $dllFiles = Get-ChildItem -Path $dllFolder -Filter *.dll -Recurse + $errorFound = $false + + foreach ($dll in $dllFiles) { + Write-Host "`nVerifying: $($dll.FullName)" + & $signtool.FullName verify /pa /v $dll.FullName + if ($LASTEXITCODE -ne 0) { - Write-Error "Signature verification failed for $($_.FullName)" - exit 1 + Write-Error "Signature verification failed for: $($dll.FullName)" + $errorFound = $true + } else { + Write-Host "Verified: $($dll.FullName)" } } - displayName: 'Verify DLL Signatures' + + if ($errorFound) { + Write-Error "One or more DLLs are not properly signed." + exit 1 + } else { + Write-Host "`n🎉 All DLLs are signed and verified." + } + displayName: 'Verify All DLL Signatures' - powershell: | $certPath = '$(cert.secureFilePath)' From 8e9c4624e3a6c5a5d147eb9448af7b78adef6afd Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Mon, 30 Jun 2025 14:54:42 +0300 Subject: [PATCH 35/90] Remove verification step --- azure-pipelines.yml | 43 ------------------------------------------- 1 file changed, 43 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 156cbec..aca0bad 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -110,49 +110,6 @@ } displayName: 'Sign all DLL files with PFX certificate' - - powershell: | - $dllFolder = "$(Build.SourcesDirectory)\bin\$(buildConfiguration)\net9.0" - Write-Host "Checking if DLLs in $dllFolder are signed..." - - if (-Not (Test-Path $dllFolder)) { - Write-Error "DLL folder not found: $dllFolder" - exit 1 - } - - $signtool = Get-ChildItem -Path "${env:ProgramFiles(x86)}\Windows Kits\10\bin" -Recurse -Filter signtool.exe | - Where-Object { $_.FullName -match 'x64\\signtool\.exe$' } | - Select-Object -First 1 - - if (-not $signtool) { - Write-Error "signtool.exe not found" - exit 1 - } - - Write-Host "Using signtool: $($signtool.FullName)" - - $dllFiles = Get-ChildItem -Path $dllFolder -Filter *.dll -Recurse - $errorFound = $false - - foreach ($dll in $dllFiles) { - Write-Host "`nVerifying: $($dll.FullName)" - & $signtool.FullName verify /pa /v $dll.FullName - - if ($LASTEXITCODE -ne 0) { - Write-Error "Signature verification failed for: $($dll.FullName)" - $errorFound = $true - } else { - Write-Host "Verified: $($dll.FullName)" - } - } - - if ($errorFound) { - Write-Error "One or more DLLs are not properly signed." - exit 1 - } else { - Write-Host "`n🎉 All DLLs are signed and verified." - } - displayName: 'Verify All DLL Signatures' - - powershell: | $certPath = '$(cert.secureFilePath)' $certPassword = '$(SigningCertificatePassword)' From 5212300563a3faaba71c5b3a8dcaddaabbfa7de6 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Mon, 30 Jun 2025 14:57:37 +0300 Subject: [PATCH 36/90] Edit nuget service connection --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index aca0bad..9a675e6 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -141,5 +141,5 @@ # command: 'push' # packagesToPush: '$(Build.ArtifactStagingDirectory)/nuget/*.nupkg' # nuGetFeedType: 'external' - # publishFeedCredentials: 'NuGet.org API Key' + # publishFeedCredentials: 'NuGet' # displayName: 'Publish to NuGet.org' From 00e4e7d3f2b569ea15756540b61111dd1d372c26 Mon Sep 17 00:00:00 2001 From: Borislav Traykov Date: Mon, 30 Jun 2025 15:52:04 +0300 Subject: [PATCH 37/90] Sign the nuget package + some pipeline refactoring --- azure-pipelines.yml | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 9a675e6..9c270f6 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -16,6 +16,8 @@ value: $[coalesce(variables['System.PullRequest.PullRequestId'], '000')] - name: prIteration value: $[counter(variables['prId'], 1)] + - name: buildConfiguration + value: Release stages: - stage: BuildAndPublish @@ -25,9 +27,6 @@ pool: vmImage: 'windows-latest' - variables: - buildConfiguration: 'Release' - steps: - task: UseDotNet@2 inputs: @@ -78,15 +77,14 @@ displayName: 'Debug: List build output contents' - powershell: | - $certPath = '$(cert.secureFilePath)' - $certPassword = '$(SigningCertificatePassword)' $dllFolder = "$(Build.SourcesDirectory)\bin\$(buildConfiguration)\net9.0" Write-Host "Signing DLLs in folder: $dllFolder" if (-Not (Test-Path $dllFolder)) { Write-Error "Folder does not exist: $dllFolder" exit 1 } - + + Write-Host "Trying to use the latest version of the Windows Kit and the signtool from it" $signtoolPath = Get-ChildItem -Path "${env:ProgramFiles(x86)}\Windows Kits\10\bin" -Recurse -Filter signtool.exe | Where-Object { $_.FullName -match 'x64\\signtool\.exe$' } | Select-Object -First 1 @@ -101,7 +99,7 @@ $dllFiles = Get-ChildItem -Path $dllFolder -Filter *.dll -Recurse foreach ($dll in $dllFiles) { Write-Host "Signing $($dll.FullName)..." - & $signtoolPath.FullName sign /f $certPath /p $certPassword /tr http://timestamp.digicert.com /td sha256 /fd sha256 $dll.FullName + & $signtoolPath.FullName sign /f $cert.secureFilePath /p $(SigningCertificatePassword) /tr $(SigningCertificateTimestampUrl) /td sha256 /fd sha256 $dll.FullName if ($LASTEXITCODE -ne 0) { Write-Error "Signing failed for $($dll.FullName)" @@ -111,8 +109,6 @@ displayName: 'Sign all DLL files with PFX certificate' - powershell: | - $certPath = '$(cert.secureFilePath)' - $certPassword = '$(SigningCertificatePassword)' $packageOutputDir = "$(Build.ArtifactStagingDirectory)\nuget" $packageVersion = "$(GitVersion.NuGetVersionV2)" @@ -129,6 +125,15 @@ } displayName: 'Pack NuGet Package using PowerShell' + - task: PowerShell@2 + displayName: 'Sign NuGet package' + env: + CERT_PASS: $(SigningCertificatePassword) + inputs: + targetType: 'inline' + script: | + nuget.exe sign $(Build.ArtifactStagingDirectory)\nuget -CertificatePath $(CodeSigningCertificate.secureFilePath) -CertificatePassword $env:CERT_PASS -Timestamper $(SigningCertificateTimestampUrl) + - task: PublishBuildArtifacts@1 inputs: PathtoPublish: '$(Build.ArtifactStagingDirectory)/nuget' From a97d9ebeaa7e08a736eb84b7c32602de9c3aa895 Mon Sep 17 00:00:00 2001 From: Borislav Traykov Date: Mon, 30 Jun 2025 16:03:13 +0300 Subject: [PATCH 38/90] Fix path to the signing certificate --- azure-pipelines.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 9c270f6..1ab7a69 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -99,7 +99,7 @@ $dllFiles = Get-ChildItem -Path $dllFolder -Filter *.dll -Recurse foreach ($dll in $dllFiles) { Write-Host "Signing $($dll.FullName)..." - & $signtoolPath.FullName sign /f $cert.secureFilePath /p $(SigningCertificatePassword) /tr $(SigningCertificateTimestampUrl) /td sha256 /fd sha256 $dll.FullName + & $signtoolPath.FullName sign /f $(cert.secureFilePath) /p $(SigningCertificatePassword) /tr $(SigningCertificateTimestampUrl) /td sha256 /fd sha256 $dll.FullName if ($LASTEXITCODE -ne 0) { Write-Error "Signing failed for $($dll.FullName)" @@ -132,7 +132,7 @@ inputs: targetType: 'inline' script: | - nuget.exe sign $(Build.ArtifactStagingDirectory)\nuget -CertificatePath $(CodeSigningCertificate.secureFilePath) -CertificatePassword $env:CERT_PASS -Timestamper $(SigningCertificateTimestampUrl) + nuget.exe sign $(Build.ArtifactStagingDirectory)\nuget -CertificatePath $(cert.secureFilePath) -CertificatePassword $env:CERT_PASS -Timestamper $(SigningCertificateTimestampUrl) - task: PublishBuildArtifacts@1 inputs: From 0465777fcc622713e868d5cec1a6371a317c3f5a Mon Sep 17 00:00:00 2001 From: Borislav Traykov Date: Mon, 30 Jun 2025 16:06:09 +0300 Subject: [PATCH 39/90] try referencing the password correctly --- azure-pipelines.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 1ab7a69..fa239df 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -99,7 +99,7 @@ $dllFiles = Get-ChildItem -Path $dllFolder -Filter *.dll -Recurse foreach ($dll in $dllFiles) { Write-Host "Signing $($dll.FullName)..." - & $signtoolPath.FullName sign /f $(cert.secureFilePath) /p $(SigningCertificatePassword) /tr $(SigningCertificateTimestampUrl) /td sha256 /fd sha256 $dll.FullName + & $signtoolPath.FullName sign /f $(cert.secureFilePath) /p $env:CERT_PASS /tr $(SigningCertificateTimestampUrl) /td sha256 /fd sha256 $dll.FullName if ($LASTEXITCODE -ne 0) { Write-Error "Signing failed for $($dll.FullName)" @@ -107,6 +107,8 @@ } } displayName: 'Sign all DLL files with PFX certificate' + env: + CERT_PASS: $(SigningCertificatePassword) - powershell: | $packageOutputDir = "$(Build.ArtifactStagingDirectory)\nuget" From 8fd28634e3b75f36630ca721f1f119c53f46f659 Mon Sep 17 00:00:00 2001 From: Borislav Traykov Date: Mon, 30 Jun 2025 16:11:12 +0300 Subject: [PATCH 40/90] Refactor project building --- azure-pipelines.yml | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index fa239df..1af237c 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -48,8 +48,8 @@ inputs: secureFile: 'code-signing-certificate-2023-2026.pfx' - - script: dotnet restore - displayName: 'Restore Dependencies' + #- script: dotnet restore + # displayName: 'Restore Dependencies' # - script: > # dotnet build ./Infragistics.QueryBuilder.Executor.csproj @@ -57,12 +57,18 @@ # --no-restore # displayName: 'Build Project' - - powershell: | - Write-Host "Building project and forcing output path..." - dotnet build ./Infragistics.QueryBuilder.Executor.csproj ` - --configuration $(buildConfiguration) ` - --no-restore - displayName: 'Build Project' + #- powershell: | + # Write-Host "Building project and forcing output path..." + # dotnet build ./Infragistics.QueryBuilder.Executor.csproj ` + # --configuration $(buildConfiguration) ` + # --no-restore + # displayName: 'Build Project' + - task: DotNetCoreCLI@2 + displayName: Build project + inputs: + command: 'build' + arguments: '--configuration $(buildConfiguration)' + workingDirectory: '$(Build.SourcesDirectory)' - powershell: | $outputDir = "$(Build.SourcesDirectory)\bin\$(buildConfiguration)\net9.0" From 56a42a5c6d48de577fc119e9195bfdfbcc58fb98 Mon Sep 17 00:00:00 2001 From: Borislav Traykov Date: Mon, 30 Jun 2025 16:11:49 +0300 Subject: [PATCH 41/90] Try to wildcard the name of the nupkg files --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 1af237c..0bfb276 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -140,7 +140,7 @@ inputs: targetType: 'inline' script: | - nuget.exe sign $(Build.ArtifactStagingDirectory)\nuget -CertificatePath $(cert.secureFilePath) -CertificatePassword $env:CERT_PASS -Timestamper $(SigningCertificateTimestampUrl) + nuget.exe sign $(Build.ArtifactStagingDirectory)\nuget\*.nupkg -CertificatePath $(cert.secureFilePath) -CertificatePassword $env:CERT_PASS -Timestamper $(SigningCertificateTimestampUrl) - task: PublishBuildArtifacts@1 inputs: From d6b184787b490a1e4aec2ba0d9ea24fa08621d42 Mon Sep 17 00:00:00 2001 From: Borislav Traykov Date: Mon, 30 Jun 2025 16:21:33 +0300 Subject: [PATCH 42/90] Tweak the csproj file with versioning & NuGet authoting attributes --- Infragistics.QueryBuilder.Executor.csproj | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Infragistics.QueryBuilder.Executor.csproj b/Infragistics.QueryBuilder.Executor.csproj index 102ae96..20d3fba 100644 --- a/Infragistics.QueryBuilder.Executor.csproj +++ b/Infragistics.QueryBuilder.Executor.csproj @@ -4,6 +4,14 @@ net9.0 enable enable + MyCompany.MyLibrary + Infragistics Inc. + Infragistics Inc. + Infragistics Inc. + MyCompany's library for query execution and data manipulation. + 1.0.0.0 + We want to generate the version attributes at runtime and we need this flag enabled for that<--> + true From 158e4231cb4ca9f8042b9bc3380cfcf07cf31f7a Mon Sep 17 00:00:00 2001 From: Borislav Traykov Date: Mon, 30 Jun 2025 16:22:02 +0300 Subject: [PATCH 43/90] Explicitly set the assembly version attributes at runtime --- azure-pipelines.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 0bfb276..0d4281e 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -67,9 +67,10 @@ displayName: Build project inputs: command: 'build' - arguments: '--configuration $(buildConfiguration)' + arguments: '--configuration $(buildConfiguration) /p:Version$(GitVersion.NuGetVersionV2)' workingDirectory: '$(Build.SourcesDirectory)' + - powershell: | $outputDir = "$(Build.SourcesDirectory)\bin\$(buildConfiguration)\net9.0" Write-Host "Listing contents of: $outputDir" From 8b98e03b5ad1b4f16ae48710558cf8212255d240 Mon Sep 17 00:00:00 2001 From: Borislav Traykov Date: Mon, 30 Jun 2025 16:28:41 +0300 Subject: [PATCH 44/90] tweak the dotnet build task --- azure-pipelines.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 0d4281e..087ef17 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -31,7 +31,7 @@ - task: UseDotNet@2 inputs: packageType: 'sdk' - versionSpec: '9.x' + version: '9.x' - checkout: self persistCredentials: true @@ -39,7 +39,6 @@ - task: GitVersion@5 inputs: - runtime: 'core' versionSpec: '5.x' name: gitVersion @@ -67,8 +66,9 @@ displayName: Build project inputs: command: 'build' + projects: '$(Build.SourcesDirectory)/*.sln' arguments: '--configuration $(buildConfiguration) /p:Version$(GitVersion.NuGetVersionV2)' - workingDirectory: '$(Build.SourcesDirectory)' + #workingDirectory: '$(Build.SourcesDirectory)' - powershell: | From 5909a0ff7b52d6fec5dff84fe90a402a2331c11d Mon Sep 17 00:00:00 2001 From: Borislav Traykov Date: Mon, 30 Jun 2025 16:31:24 +0300 Subject: [PATCH 45/90] Update azure-pipelines.yml for Azure Pipelines --- azure-pipelines.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 087ef17..f4541e4 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -28,15 +28,14 @@ vmImage: 'windows-latest' steps: + - checkout: self + fetchDepth: 0 + - task: UseDotNet@2 inputs: packageType: 'sdk' version: '9.x' - - checkout: self - persistCredentials: true - fetchDepth: 0 - - task: GitVersion@5 inputs: versionSpec: '5.x' @@ -66,7 +65,7 @@ displayName: Build project inputs: command: 'build' - projects: '$(Build.SourcesDirectory)/*.sln' + #projects: '$(Build.SourcesDirectory)/*.sln' arguments: '--configuration $(buildConfiguration) /p:Version$(GitVersion.NuGetVersionV2)' #workingDirectory: '$(Build.SourcesDirectory)' From 207d2c4e211e9aad6665bba51532e19f02298924 Mon Sep 17 00:00:00 2001 From: Borislav Traykov Date: Mon, 30 Jun 2025 16:34:48 +0300 Subject: [PATCH 46/90] try to refactor the call to dotnet build again --- azure-pipelines.yml | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f4541e4..15bc584 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -61,13 +61,19 @@ # --configuration $(buildConfiguration) ` # --no-restore # displayName: 'Build Project' - - task: DotNetCoreCLI@2 - displayName: Build project - inputs: - command: 'build' - #projects: '$(Build.SourcesDirectory)/*.sln' - arguments: '--configuration $(buildConfiguration) /p:Version$(GitVersion.NuGetVersionV2)' - #workingDirectory: '$(Build.SourcesDirectory)' + + #- task: DotNetCoreCLI@2 + # displayName: Build project + # inputs: + # command: 'build' + # #projects: '$(Build.SourcesDirectory)/*.sln' + # arguments: '--configuration $(buildConfiguration) /p:Version$(GitVersion.NuGetVersionV2)' + # #workingDirectory: '$(Build.SourcesDirectory)' + + - script: | + dotnet build . -configuration $(buildConfiguration) /p:Version$(GitVersion.NuGetVersionV2) + displayName: 'Build Project' + workingDirectory: $(Build.SourcesDirectory) - powershell: | From 20e013cd449f4383c64b9fcbb2d35992efa15b9c Mon Sep 17 00:00:00 2001 From: Borislav Traykov Date: Mon, 30 Jun 2025 16:57:49 +0300 Subject: [PATCH 47/90] Changes related to the nuget package authoring --- Infragistics.QueryBuilder.Executor.csproj | 10 ++- License.txt | 104 ++++++++++++++++++++++ 2 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 License.txt diff --git a/Infragistics.QueryBuilder.Executor.csproj b/Infragistics.QueryBuilder.Executor.csproj index 20d3fba..46f79d4 100644 --- a/Infragistics.QueryBuilder.Executor.csproj +++ b/Infragistics.QueryBuilder.Executor.csproj @@ -4,7 +4,7 @@ net9.0 enable enable - MyCompany.MyLibrary + Infragistics.QueryBuilder.Executor Infragistics Inc. Infragistics Inc. Infragistics Inc. @@ -12,6 +12,14 @@ 1.0.0.0 We want to generate the version attributes at runtime and we need this flag enabled for that<--> true + false + LICENSE.txt + https://www.infragistics.com/products/ignite-ui-blazor + Infragistics + ReadMe.md + License.txt + https://www.infragistics.com/products/appbuilder/app-builder-overview + diff --git a/License.txt b/License.txt new file mode 100644 index 0000000..b08ade3 --- /dev/null +++ b/License.txt @@ -0,0 +1,104 @@ +Software License Agreement – Indigo.Design and Indigo Studio +(November 2012) + +Please read this license agreement (the "License") carefully before clicking the “I ACCEPT” button unlocking access to the SOFTWARE (as described below). This license is a legal agreement between Infragistics, Inc. (“Infragistics”) and You (as defined below) and by clicking the “I ACCEPT” button, You are agreeing that You have READ ALL OF THE TERMS AND CONDITIONS set forth below, UNDERSTAND ALL OF THE TERMS AND CONDITIONS of this License and AGREE TO BE BOUND BY THE TERMS AND CONDITIONS of this License. As used in this License, “You” means the person or company seeking to acquire the rights and obligations under this License and, with respect to any company expressly excludes its parents, subsidiaries and affiliates. Any person entering into this License on behalf of a company, hereby represents that such person: (i) is an employee or agent of such company; and (ii) has the authority to enter into this License on behalf of such company. + +WARNING------------------- + +INFRAGISTICS IS WILLING TO LICENSE THE SOFTWARE TO YOU ONLY UPON THE CONDITION THAT YOU ACCEPT ALL OF THE TERMS AND CONDITIONS CONTAINED IN THIS LICENSE. + +IF YOU DO NOT AGREE TO ANY OF THE TERMS AND CONDITIONS OF THIS LICENSE, YOU MUST CLICK ON THE “CANCEL” BUTTON. If You click the “CANCEL” button, the SOFTWARE shall remain locked and You agree NOT TO ATTEMPT to circumvent, un-lock or otherwise open and use the SOFTWARE and any and all rights You might acquire/have acquired with respect to the SOFTWARE shall terminate. The “effective date” of this License is the date upon which You click the “I ACCEPT” button. + +I. OWNERSHIP. + +As between the parties, Infragistics and its licensors owns all right, title and interest in and to the Indigo.Design and Indigo Studio computer software (v1.x (e.g., 1.1, 1.2)) and associated materials including any related documentation such as standard training, user, or reference manuals delivered in machine readable form or on-line at the Infragistics website (collectively, the “SOFTWARE”) and any and all patents, copyrights, moral rights, trademarks, trade secrets and any other form of intellectual property rights recognized in any jurisdiction, including applications and registrations for any of the foregoing embodied therein (“Intellectual Property Rights”). The SOFTWARE is licensed, not sold, to You by Infragistics. There are no implied licenses and Infragistics retains all rights not expressly granted to You in this License. All corrections, bug fixes, enhancements, modifications, updates, and minor releases, in each case denoted by a change to the right of the decimal point (e.g. 1.0 to 1.1) and made generally available to licensees (collectively, “Updates”) by or on behalf of Infragistics and provided or made available to You as part of the SOFTWARE, together with all applicable Intellectual Property Rights, will be owned by Infragistics, but will be included as part of the SOFTWARE for purposes of the license granted to You hereunder. + +II. LICENSES; RESTRICTIONS. + +A. Subject to the terms of this License, Infragistics hereby grants to You, and You accept, during the term (see Section VI), a non-exclusive, non-transferable, non-sublicensable, limited license to access, use, and copy (as set forth in Section II(E)) the SOFTWARE and any Updates thereto, in executable code form, as authorized in this Section II. + +B. You may install, copy (as set forth below), and use the SOFTWARE on one or more computers or on Your network server, as long as the use of the SOFTWARE is limited to You, Your employees, contractors, consultants and agents. You agree to use the SOFTWARE only for Your own business. Your employees, contractors, consultants and agents may use the SOFTWARE only for the sole benefit of You and in compliance with the terms of this License. + +C. Except as otherwise expressly permitted hereunder, You shall not: (i) permit any affiliated entities or third parties to use the SOFTWARE, (ii) reverse engineer or otherwise attempt to recreate all or any portion of the SOFTWARE, or use the SOFTWARE to develop functionality similar to or competitive with the SOFTWARE; or (iii) modify, translate or create any derivative work of all or any portion of the SOFTWARE. Under no circumstances shall You sell, license, publish, display, distribute, or otherwise transfer to a third party the SOFTWARE or any copy thereof, in whole or in part, without Infragistics’ express, prior written consent. You agree to secure all necessary rights and obligations from Your employees, contractors, consultants and agents in order to satisfy the foregoing obligations. In the event of any violation of the foregoing, either independently or jointly with any third party, any modifications, enhancements, or derivative works and all Intellectual Property Rights associated therewith will be the exclusive property of Infragistics. For the avoidance of doubt, the incorporation of elements/software components of the SOFTWARE in Your prototypes (and to the extent such elements/components may be embedded in any of Your final products) shall not be deemed creation of a derivative work under this License; provided, that: (a) Your prototypes are NOT the basis for creating (and any related products of Yours are NOT) a product that provides the same, or substantially the same, functionality as the SOFTWARE; and (b) any products developed and made available to the public shall be offered in executable code form, only. + +D. Solely with respect to the documentation included or otherwise made available as part of the SOFTWARE, You may make a copies (either in hardcopy or electronic form); provided, that such copies shall be for Your internal use only as required to exercise Your rights hereunder and are not to be republished or distributed to any third party. + +E. Copies of the SOFTWARE may be made solely to enable You to use the SOFTWARE and for archival and disaster recovery purposes; provided, that all such copies of the SOFTWARE and all copies under Section II(C) of the included/available documentation made by You or Your employees, contractors, consultants and agents shall include Infragistics’ copyright, trademark, service mark, and other proprietary notices in the same form and location as the notice appears on the original work. All such copies are, and shall remain, the exclusive property of Infragistics. + +III. PROTOTYPE HOSTING. + +A. Interactive prototypes developed using the SOFTWARE (i.e., programs, art work, digital images, web pages, etc.) can be posted by You to Infragistics’ prototype hosting server(s) for publication to the world-wide web and the URL to such prototype shared by You, either password protected or unprotected, with Your employees, contractors, consultants, and agents for interactive design exploration (the “Hosting Services”). The provisions of this Section III apply to all users of the Hosting Services including You and Your employees, contractors, consultants, and agents. Any actual or attempted violations of this Section III by You, Your employees, contractors, consultants, or agents, shall be considered violation of the License and, in addition to any other rights at law or in equity, may, at the option of Infragistics, result in the termination of Your rights to use the Hosting Services and/or the termination of the License in its entirety. Use of Hosting Services constitutes acceptance of the terms and conditions of this Section III. + +B. YOU UNDERSTAND AND ACKNOWLEDGE THAT THE HOSTING SERVICES ARE PROVIDED “AS IS”, AND THAT INFRAGISTICS MAKES NO GUARANTEE THAT THE HOSTING SERVICES WILL BE AVAILABLE OR THAT YOUR PROTOTYPE WILL BE ACCESSIBLE, AVAILABLE FOR USE OR USEFUL. + +C. Any prototype posted by You will be generally available via its URL for 90 days from the date of posting to the Infragistics server(s). Infragistics will not examine the contents of any password-protected URL (or the prototype(s) contained therein); except, to the extent requested by You, Your employees, contractors, consultants, and agents or to the extent Infragistics reasonably believes the materials located at such URL violate the terms of this Section III or applicable laws. You agree to provide Infragistics’ with all relevant information reasonably requested to enable Infragistics to authenticate Your password-protected URLs. Infragistics will remove any posted prototype at Your request; provided, that You can establish to Infragistics’ reasonable satisfaction that such posted prototype is Yours. + +D. The Hosting Services may only be used for lawful purposes. Publishing/sharing of any material in violation of any applicable U.S. federal or state, foreign national, provincial or state, or international laws, statutes, directives or regulations is prohibited. This includes, but is not limited to, material copyrighted by third party(ies), material reasonable deemed to be threatening or obscene, or material protected by trade secret and violation of applicable data privacy laws. Infragistics also reserves the right to remove any unprotected prototypes (and, to the extent Infragistics becomes aware of any password-protected prototypes) that it deems an abuse of the Hosting Services including, by way of example, any file, video or image sharing materials, any advertising (including promotion of competitive software products), or materials considered by Infragistics to be profane, indecent, or discriminatory. + +E. You hereby acknowledge that any security safeguards, including passwords created by You, related to the Hosting Services are, by their nature, capable of circumvention and Infragistics does not and cannot guarantee that posted prototypes or other information cannot be accessed by unauthorized persons capable of overcoming such safeguards. In particular, the SOFTWARE and Hosting Services may be used to access and transfer information, including the prototypes, over the internet. YOU ACKNOWLEDGE AND AGREE THAT INFRAGISTICS DOES NOT OPERATE OR CONTROL THE INTERNET AND THAT: (i) VIRUSES, WORMS, TROJAN HORSES, OR OTHER UNDESIRABLE DATA OR SOFTWARE; OR (ii) UNAUTHORIZED USERS (e.g., HACKERS); MAY ATTEMPT TO OBTAIN ACCESS TO AND DAMAGE THE HOSTING SERVICES AND/OR YOUR PROTOTYPE(S) AND THAT INFRAGISTICS SHALL HAVE NO LIABILITY WITH RESPECT TO ANY SUCH ACTIVITIES. + +F. INFRAGISTICS MAKES NO WARRANTY, EXPRESS, IMPLIED OR STATUTORY, WITH RESPECT TO THE HOSTING SERVICES OR ANY PART THEREOF, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTY OF TITLE, AVAILABILITY, RELIABILITY, USEFULNESS, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM COURSE OF PERFORMANCE, DEALING, USAGE OR TRADE. NEITHER INFRAGISTICS NOR ANY OF ITS LICENSORS OR SUPPLIERS WARRANT THAT THE HOSTING SERVICES OR ANY PART THEREOF WILL MEET YOUR REQUIREMENTS OR BE UNINTERRUPTED, TIMELY, AVAILABLE, SECURE OR ERROR-FREE, OR THAT ANY ERRORS WILL BE CORRECTED OR CORRECTABLE OR FOR ANY OMISSIONS IN EITHER WEB HOSTING OR ACCESS SERVICES. + +IV. SUPPORT. + +Infragistics shall provide You with standard, customer support as further described in, and in accordance with, Infragistics’ current support policies available at http://www.infragistics.com/help/support-policies/ (as such policies may be updated or amended by Infragistics, in its sole discretion + +V. CONFIDENTIALITY. + +A. Each Party hereto acknowledges that during the term of this Agreement it may receive certain Confidential Information (as defined below) of the other Party. Except as expressly set forth herein, Infragistics and You each agree to retain in confidence all Confidential Information disclosed by one party (the “disclosing party”) to the other party (the “receiving party”), as the case may be, pursuant to this Agreement in any form (written, oral, photographic, electronic, magnetic, or otherwise) and to only disclose the disclosing party’s Confidential Information to its employees, contractors and advisors who have a need to know same. + +B. Each party agrees to: (i) preserve and protect the confidentiality of the disclosing party’s Confidential Information using the same standard of care that it would use to secure and safeguard its own Confidential Information, but in no event less than reasonable care; (ii) refrain from using the disclosing party’s Confidential Information except as contemplated herein; and (iii) not disclose the disclosing party’s Confidential Information to any third party except to its employees, contractors, consultants or agents as is reasonably required to perform its rights or exercise its obligations under this Agreement. Each receiving party shall, at its own expense, immediately notify disclosing party of any unauthorized possession, use or knowledge, or attempt thereof, of disclosing party’s Confidential Information by any third party. You further agree to: (a) adopt the action(s) necessary to ensure that its employees and any other third parties to whom You discloses any Confidential Information of Infragistics are legally bound by the confidentiality obligations hereunder, and (b) inform its employees and such third parties of its confidentiality and other obligations hereunder and instruct them not to attempt to circumvent any such security procedures and devices. + +C. As used in this Section V, “Confidential Information” means: (i) any and all proprietary information, formulae, patterns, compilations, technology, software (in source, binary, object or executable code or any other form), firmware, code, hardware, documentation, developments, inventions, lists, trade secrets, technical data, data compilations, processes, programs, devices, designs, drawings, methods, techniques, know-how, research, plans (marketing, business, strategic or otherwise), customer information and other business arrangements, pricing and other financial data, and any and all Intellectual Property Rights related thereto that is reasonably understood, in light of the nature of the information or the circumstances of disclosure, to be confidential or proprietary; and (ii) any information that is designated in writing to be confidential or proprietary, or if given orally, is designated at the time of disclosure as being confidential or proprietary, or that reasonably could be considered of a proprietary or confidential nature. Without limiting the foregoing, You acknowledge and agree that the SOFTWARE provided to you pursuant to this License, as well as any Updates thereto contain trade secrets, know-how and other confidential and proprietary information including, without limitation, the concepts, techniques, ideas, algorithms, methods, and structure and design elements embodied and expressed in any computer programs or modules included in the SOFTWARE, as well as the structure, sequence and organization of such programs or modules that is the exclusive property of, and Confidential Information of, Infragistics. Notwithstanding the foregoing, Confidential Information shall not include information that: (a) has become publicly known and made generally available other than through any act or omission of the receiving party; (b) was already or becomes known by the receiving party without restriction as to use or disclosure and was not acquired from the disclosing party; or (c) was independently developed by the receiving party without reference to or reliance upon the Confidential Information of the disclosing party and as shown by receiving party’s competent written records. + +VI. TERM; TERMINATION. + +A. The term of this License will commence on the Effective Date and will remain in effect in perpetuity, unless otherwise terminated in accordance with this Section VI. + +B. You may voluntarily terminate this License at any time by deleting or destroying all copies of the SOFTWARE including copies made in the usual course of business for back-up and disaster recovery purposes; provided, that, all such copies shall be erased/deleted from Your system in the event of any systems restore or other access of the media on which such back-up or disaster recovery copies are stored. You agree to provide to Infragistics proof of such destruction that is acceptable to Infragistics in its reasonable discretion. + +C. This License and your right to use the SOFTWARE will terminate immediately, without notice from Infragistics, if You fail to comply with the terms and conditions of this License including, for the avoidance of doubt, the terms of Section III; provided, that, upon any failure to comply with the terms and conditions of Section III, Infragistics may, upon Your request, and in its sole discretion, elect to reinstate this License minus the Hosting Services, subject to Your agreement, in writing, to restrictions and remedies in the event of any prohibited use of such Hosting Services or future failure to meet the other obligations of the reinstated License. This Section VI(C) is in addition to and not in lieu of any criminal, civil or other remedies available to Infragistics at law or in equity. + +D. Upon any termination of this License, all rights granted to You in the SOFTWARE and under this License will immediately cease. You agree to destroy the SOFTWARE (including all accompanying documentation) and all copies thereof in any form including copies made in the usual course of business for back-up and disaster recovery purposes; provided, that, all such copies shall be erased/deleted from Your system in the event of any systems restore or other access of the media on which such back-up or disaster recovery copies are stored. You agree to provide to Infragistics proof of such destruction that is acceptable to Infragistics in its reasonable discretion. Infragistics and You also agree to return to the other any of the other party’s Confidential Information (and copies thereof) in its or Your possession or control. + +E. In addition to this Section VI, the following Sections will survive any termination or of this License: V, VII, VIII, IX and XIII. + +VII. INDEMNITY. + +A. In addition to the other requirements set forth in this License, You hereby agree to indemnify, hold harmless, and defend Infragistics from and against any and all liabilities, damages, losses, costs and expenses (including reasonable attorneys' fees) arising from or related to any claim, action, proceeding or allegation that arises or results, either directly or indirectly, from: (i) Your use and the use by Your employees, contractors, consultants and agents of the SOFTWARE; (ii) any breach by You or them of the terms of this License; and (iii) the use and distribution of any of Your prototypes and/or the resulting software product(s) or components. You also agree to indemnify, hold harmless, and defend Infragistics from and against any and all liabilities, damages, losses, costs and expenses (including reasonable attorneys' fees) arising from or related to any claim, action, proceeding or allegation that arises or results, either directly or indirectly, from Your use and the use by Your employees, contractors, consultants and agents of the Hosting Services. + +B. Infragistics will indemnify, defend and hold You harmless against any third-party claims, demands, causes of action or suits of whatsoever kind or nature for damages, losses, costs and expenses (including, without limitation, reasonable attorneys' fees) to the extent arising out of or based on allegations that the SOFTWARE infringes such third party’s Intellectual Property Rights, subject to: (i) You promptly notifying Infragistics in writing of any third party claim, (ii) You giving Infragistics full authority and control of any such claim with counsel of Infragistics’ choice, and (iii) You providing Infragistics, at Infragistics’ cost and expense, information and assistance for defense of any such claim. If any such claim occurs, or in Infragistics' opinion is likely to occur, Infragistics may, at its option and expense, procure for You the right to continue using the infringing item(s) or to replace or modify the same so that it becomes non-infringing or, if neither of the foregoing alternatives is reasonably available, terminate this License. Notwithstanding the foregoing, Infragistics shall have no liability for any claim to the extent arising from or based on: (a) the combination, operation, or use of the SOFTWARE with any third-party content, software or hardware where an infringement would not exist but for such combination, operation or use, (b) any alteration or modification of the SOFTWARE by any person other than Infragistics, (c) the use of other than the most recent version of the SOFTWARE if the infringement or claim would have been avoided by use of the most recent version, (d) use of the Software in any way not contemplated under this Agreement, or (e) use of any prototypes or developments You make while using the SOFTWARE or the Hosting Services. THE FOREGOING STATES THE ENTIRE OBLIGATION OF INFRAGISTICS AND ITS SUPPLIERS WITH RESPECT TO INFRINGEMENT OF PROPRIETARY RIGHTS, INCLUDING BUT NOT LIMITED TO PATENTS AND COPYRIGHTS. + +XIII. YOUR COVENANTS; WARRANTY DISCLAIMERS. + +A. You represent, warrant and covenant that: (i) all of Your employees, contractors, consultants and agents will abide by the terms of this License; and (ii) You will comply with all applicable laws, regulations, rules, orders and other requirements, now or hereafter in effect, of any applicable governmental authority, in its performance of this License. Notwithstanding any terms to the contrary in this License, You will remain responsible for acts or omissions of all employees, contractors, consultants or agents of Yours to the same extent as if such acts or omissions were undertaken by You. You assume responsibility for the selection of the SOFTWARE to achieve your intended results, and for the installation, use, and results obtained from the SOFTWARE. + +B. The SOFTWARE and the Hosting Services are each provided on an “AS IS” or “AS AVAILABLE” basis without any representations, warranties, covenants or conditions of any kind. Infragistics and its licensors and/or suppliers do not warrant that any of the SOFTWARE or Hosting Services will be free from bugs, errors, or omissions. INFRAGISTICS AND ITS LICENSORS/SUPPLIERS DISCLAIM ANY AND ALL WARRANTIES AND REPRESENTATIONS (EXPRESS OR IMPLIED, ORAL OR WRITTEN) WITH RESPECT TO THE SOFTWARE WHETHER ALLEGED TO ARISE BY OPERATION OF LAW, BY REASON OF CUSTOM OR USAGE IN THE TRADE, BY COURSE OF DEALING OR OTHERWISE, INCLUDING ANY AND ALL (i) WARRANTIES OF MERCHANTABILITY, (ii) WARRANTIES OF FITNESS OR SUITABILITY FOR ANY PURPOSE (WHETHER OR NOT INFRAGISTICS KNOWS, HAS REASON TO KNOW, HAS BEEN ADVISED, OR IS OTHERWISE AWARE OF ANY SUCH PURPOSE), OR (III) WARRANTIES OF NONINFRINGEMENT OR CONDITION OF TITLE. YOU ACKNOWLEDGE AND AGREE THAT YOU HAVE RELIED ON NO SUCH WARRANTIES. + +IX. LIMITATION OF LIABILITIES. + +A. EXCEPT WITH RESPECT TO BREACHES OF SECTION V, IN NO EVENT SHALL INFRAGISTICS OR YOU BE LIABLE TO THE OTHER FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, LOSS OF USE, LOSS OF REVENUE, LOSS OF GOODWILL, OR ANY OTHER LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE THE SOFTWARE OR THE HOSTING SERVICES, OR IN CONNECTION WITH THIS LICENSE, REGARDLESS OF THE FORM OF ACTION, WHETHER IN CONTRACT, TORT, STRICT LIABILITY OR OTHERWISE, EVEN IF INFRAGISTICS OR YOU, AS THE CASE MAY BE, HAS BEEN ADVISED OR IS OTHERWISE AWARE OF THE POSSIBILITY OF SUCH DAMAGES. + +B. INFRAGISTICS’ SHALL HAVE NO LIABILITY TO YOU ARISING OUT OF OR UNDER THIS AGREEMENT, WHETHER IN CONTRACT, TORT (INCLUDING WITHOUT LIMITATION NEGLIGENCE), STRICT LIABILITY OR ANY OTHER LEGAL THEORY, EXCEPT FOR THE INDEMNIFICATION OBLIGATION SET FORTH IN SECTION VII(B). THE LIMITATIONS SET FORTH IN THIS SECTION SHALL APPLY EVEN IF INFRAGISTICS IS ADVISED OF THE POSSIBILITY OF SUCH DAMAGE, AND NOTWITHSTANDING THE ABSENCE OF A REMEDY. + +C. Some states and jurisdictions do not allow the exclusion or limitation of liability for consequential or incidental damages, or the exclusion of implied warranties, so the limitations in Section VIII(B) and Section IX(A) may not apply. + +X. U.S. EXPORT REGULATIONS. + +U.S. law prohibits Infragistics, its licensees and resellers from exporting its products to, or supporting customers or resellers in, certain countries. For specific questions regarding export regulations, please visit the Bureau of Industry and Security web site at http://www.bis.doc.gov. + +The SOFTWARE and the underlying information and technology may not be downloaded or otherwise exported or re-exported (i) into (or to a national or resident of) Cuba, Iraq, Libya, North Korea, Iran, Syria or any other country to which the U.S. has embargoed goods; or (ii) to anyone on the U.S. Treasury Department’s list of Specially Designated Nationals or the U.S. Commerce Department’s Table of Deny Orders. By downloading or using the SOFTWARE, You are agreeing to the foregoing and You represent and warrant that You are not located in, under the control of, or a national or resident of any such country or on any such list. + +XI. U.S. GOVERNMENT RESTRICTED RIGHTS. + +If You are acquiring the SOFTWARE on behalf of any unit or agency of the United States Government (collectively, the “Government”), the following provisions apply: + +The Government agrees: (i) if supplied to the Department of Defense (DoD), the SOFTWARE is "Commercial Computer Software" and the Government acquires the SOFTWARE with "restricted rights," as defined in Clause 252.227-7013(c)(1) of the DFARS; (ii) if the SOFTWARE is supplied to any other Government unit or agency, the Government’s rights in the SOFTWARE are defined in Clause 52.227-19(c)(2) of the FAR; but if the SOFTWARE is supplied to NASA, the Government's rights are defined in Clause 18-52.227-86(d) of the NASA supplement to the FAR. Manufacturer is Infragistics, Inc., 2 Commerce Drive, Cranbury, NJ 08512. + +XII. THIRD PARTY COMPONENTS. + +The SOFTWARE may include certain third party components. These third party components are provided "AS IS", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the third party components or the use of these components. + +XIII. MISCELLANEOUS. + +This License is governed by, and shall be construed in accordance with the laws of the State of New Jersey as applied to agreements entered into and to be performed entirely within New Jersey. Any suit, action or other proceeding arising out of this License or any transaction contemplated hereby shall be submitted to the exclusive jurisdiction of the United States District Court for New Jersey or any New Jersey State court and You unconditionally waive any objection to the laying of venue of any such action, suit or proceeding in such courts and further irrevocably and unconditionally waive and agree not to plead or claim in any such court that any such action, suit or proceeding brought in such court has been brought in an inconvenient forum. This License is the entire agreement between You and Infragistics regarding the subject matter hereof and supersedes all other agreements between us, whether written or oral, relating to this subject matter hereof. In the event of a conflict between this License and any terms of service or other information on the Infragistics web-site, this License will prevail. You may not transfer Your rights under this License to any third party. If any provision of this License is invalid, illegal, or incapable of being enforced by any rule of law or public policy, all other provisions of this License will nonetheless remain in full force and effect. \ No newline at end of file From 071e4dfaffe4340d2ae25d870d374b327bc2fd17 Mon Sep 17 00:00:00 2001 From: Borislav Traykov Date: Mon, 30 Jun 2025 17:01:46 +0300 Subject: [PATCH 48/90] Tweak nuget authoring & licensing attributes --- Infragistics.QueryBuilder.Executor.csproj | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Infragistics.QueryBuilder.Executor.csproj b/Infragistics.QueryBuilder.Executor.csproj index 46f79d4..7ca40bb 100644 --- a/Infragistics.QueryBuilder.Executor.csproj +++ b/Infragistics.QueryBuilder.Executor.csproj @@ -13,8 +13,6 @@ We want to generate the version attributes at runtime and we need this flag enabled for that<--> true false - LICENSE.txt - https://www.infragistics.com/products/ignite-ui-blazor Infragistics ReadMe.md License.txt @@ -26,6 +24,10 @@ + + True + + From 35aa9d553af8c56774efcac294fd2ccdddc5e7c5 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Mon, 30 Jun 2025 18:35:02 +0300 Subject: [PATCH 49/90] fix build step --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 15bc584..c1eecd1 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -71,7 +71,7 @@ # #workingDirectory: '$(Build.SourcesDirectory)' - script: | - dotnet build . -configuration $(buildConfiguration) /p:Version$(GitVersion.NuGetVersionV2) + dotnet build . -configuration $(buildConfiguration) /p:Version=$(GitVersion.NuGetVersionV2) displayName: 'Build Project' workingDirectory: $(Build.SourcesDirectory) From efe8617a435df8274749266bff765061b9a419b7 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Mon, 30 Jun 2025 18:38:06 +0300 Subject: [PATCH 50/90] debug git version step --- azure-pipelines.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index c1eecd1..1ace6e0 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -71,6 +71,7 @@ # #workingDirectory: '$(Build.SourcesDirectory)' - script: | + echo "GitVersion.NuGetVersionV2 = $(GitVersion.NuGetVersionV2)" dotnet build . -configuration $(buildConfiguration) /p:Version=$(GitVersion.NuGetVersionV2) displayName: 'Build Project' workingDirectory: $(Build.SourcesDirectory) From 76485a0e12717df190fc5c6b32363ed5083c4107 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Mon, 30 Jun 2025 18:45:45 +0300 Subject: [PATCH 51/90] build targetting csproj --- azure-pipelines.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 1ace6e0..c54d11a 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -70,13 +70,18 @@ # arguments: '--configuration $(buildConfiguration) /p:Version$(GitVersion.NuGetVersionV2)' # #workingDirectory: '$(Build.SourcesDirectory)' + # - script: | + # echo "GitVersion.NuGetVersionV2 = $(GitVersion.NuGetVersionV2)" + # dotnet build . -configuration $(buildConfiguration) /p:Version=$(GitVersion.NuGetVersionV2) + # displayName: 'Build Project' + # workingDirectory: $(Build.SourcesDirectory) + - script: | echo "GitVersion.NuGetVersionV2 = $(GitVersion.NuGetVersionV2)" - dotnet build . -configuration $(buildConfiguration) /p:Version=$(GitVersion.NuGetVersionV2) + dotnet build ./Infragistics.QueryBuilder.Executor.csproj -c $(buildConfiguration) /p:Version=$(GitVersion.NuGetVersionV2) displayName: 'Build Project' workingDirectory: $(Build.SourcesDirectory) - - powershell: | $outputDir = "$(Build.SourcesDirectory)\bin\$(buildConfiguration)\net9.0" Write-Host "Listing contents of: $outputDir" From c211452eb7e4fd62f94c28a5502eff672228b55f Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Mon, 30 Jun 2025 18:51:59 +0300 Subject: [PATCH 52/90] Hard core sign tool location --- azure-pipelines.yml | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index c54d11a..50c7a2e 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -97,27 +97,14 @@ - powershell: | $dllFolder = "$(Build.SourcesDirectory)\bin\$(buildConfiguration)\net9.0" Write-Host "Signing DLLs in folder: $dllFolder" - if (-Not (Test-Path $dllFolder)) { - Write-Error "Folder does not exist: $dllFolder" - exit 1 - } - - Write-Host "Trying to use the latest version of the Windows Kit and the signtool from it" - $signtoolPath = Get-ChildItem -Path "${env:ProgramFiles(x86)}\Windows Kits\10\bin" -Recurse -Filter signtool.exe | - Where-Object { $_.FullName -match 'x64\\signtool\.exe$' } | - Select-Object -First 1 - - if (-not $signtoolPath) { - Write-Error "signtool.exe not found in Windows Kits" - exit 1 - } - Write-Host "Using signtool at: $($signtoolPath.FullName)" + $signtoolPath = "C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\signtool.exe" + Write-Host "Using signtool at: $signtoolPath" $dllFiles = Get-ChildItem -Path $dllFolder -Filter *.dll -Recurse foreach ($dll in $dllFiles) { Write-Host "Signing $($dll.FullName)..." - & $signtoolPath.FullName sign /f $(cert.secureFilePath) /p $env:CERT_PASS /tr $(SigningCertificateTimestampUrl) /td sha256 /fd sha256 $dll.FullName + & $signtoolPath sign /f $(cert.secureFilePath) /p $env:CERT_PASS /tr $(SigningCertificateTimestampUrl) /td sha256 /fd sha256 $dll.FullName if ($LASTEXITCODE -ne 0) { Write-Error "Signing failed for $($dll.FullName)" From d54cc60998ce86171287557eb46e89b92e1a8635 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Mon, 30 Jun 2025 18:57:39 +0300 Subject: [PATCH 53/90] use dotnet task to build --- azure-pipelines.yml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 50c7a2e..0ee7fb0 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -76,11 +76,19 @@ # displayName: 'Build Project' # workingDirectory: $(Build.SourcesDirectory) - - script: | - echo "GitVersion.NuGetVersionV2 = $(GitVersion.NuGetVersionV2)" - dotnet build ./Infragistics.QueryBuilder.Executor.csproj -c $(buildConfiguration) /p:Version=$(GitVersion.NuGetVersionV2) + # - script: | #works + # echo "GitVersion.NuGetVersionV2 = $(GitVersion.NuGetVersionV2)" + # dotnet build ./Infragistics.QueryBuilder.Executor.csproj -c $(buildConfiguration) /p:Version=$(GitVersion.NuGetVersionV2) + # displayName: 'Build Project' + # workingDirectory: $(Build.SourcesDirectory) + + - task: DotNetCoreCLI@2 displayName: 'Build Project' - workingDirectory: $(Build.SourcesDirectory) + inputs: + command: 'build' + projects: 'Infragistics.QueryBuilder.Executor.csproj' + arguments: '-c $(buildConfiguration) /p:Version=$(GitVersion.NuGetVersionV2)' + workingDirectory: '$(Build.SourcesDirectory)' - powershell: | $outputDir = "$(Build.SourcesDirectory)\bin\$(buildConfiguration)\net9.0" From 2f3f92bece694f47fef453bc6ebc0bc9d0e53ae2 Mon Sep 17 00:00:00 2001 From: Borislav Traykov Date: Mon, 30 Jun 2025 20:02:46 +0300 Subject: [PATCH 54/90] Tweak nuget authoring & licensing attributes some more --- Infragistics.QueryBuilder.Executor.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Infragistics.QueryBuilder.Executor.csproj b/Infragistics.QueryBuilder.Executor.csproj index 7ca40bb..cdf3961 100644 --- a/Infragistics.QueryBuilder.Executor.csproj +++ b/Infragistics.QueryBuilder.Executor.csproj @@ -8,7 +8,7 @@ Infragistics Inc. Infragistics Inc. Infragistics Inc. - MyCompany's library for query execution and data manipulation. + A .NET 9 library for dynamic, strongly-typed query building and execution over Entity Framework Core data sources. Supports advanced filtering, projection, and SQL generation. 1.0.0.0 We want to generate the version attributes at runtime and we need this flag enabled for that<--> true From d51f6c1ff16b4b84af6dd17f17a4998a29e0f1a9 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Tue, 1 Jul 2025 16:26:26 +0300 Subject: [PATCH 55/90] Add doc url to .csproj --- Infragistics.QueryBuilder.Executor.csproj | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Infragistics.QueryBuilder.Executor.csproj b/Infragistics.QueryBuilder.Executor.csproj index cdf3961..20acb0b 100644 --- a/Infragistics.QueryBuilder.Executor.csproj +++ b/Infragistics.QueryBuilder.Executor.csproj @@ -17,6 +17,9 @@ ReadMe.md License.txt https://www.infragistics.com/products/appbuilder/app-builder-overview + https://github.com/IgniteUI/Infragistics.QueryBuilder.Executor + git + https://github.com/IgniteUI/Infragistics.QueryBuilder.Executor From ceaf72004218d882c7a170de694c96cbb4e1f470 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Tue, 1 Jul 2025 16:28:39 +0300 Subject: [PATCH 56/90] Add tags to the metadata --- Infragistics.QueryBuilder.Executor.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Infragistics.QueryBuilder.Executor.csproj b/Infragistics.QueryBuilder.Executor.csproj index 20acb0b..5b67ead 100644 --- a/Infragistics.QueryBuilder.Executor.csproj +++ b/Infragistics.QueryBuilder.Executor.csproj @@ -20,7 +20,7 @@ https://github.com/IgniteUI/Infragistics.QueryBuilder.Executor git https://github.com/IgniteUI/Infragistics.QueryBuilder.Executor - + Infragistics;App Builder;Ignite UI;Filtering;Query;Query Builder;Models From e5068e3612150498f074d43ec5ec1c45a7f26692 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Tue, 1 Jul 2025 16:30:48 +0300 Subject: [PATCH 57/90] Remove Livense.txt from the build --- Infragistics.QueryBuilder.Executor.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Infragistics.QueryBuilder.Executor.csproj b/Infragistics.QueryBuilder.Executor.csproj index 5b67ead..b70d5db 100644 --- a/Infragistics.QueryBuilder.Executor.csproj +++ b/Infragistics.QueryBuilder.Executor.csproj @@ -27,7 +27,7 @@ - + True From db60f0a219beaa7b53f0c78d2c9e0cdb0243d689 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Tue, 1 Jul 2025 17:17:35 +0300 Subject: [PATCH 58/90] Remove license txt --- Infragistics.QueryBuilder.Executor.csproj | 1 - 1 file changed, 1 deletion(-) diff --git a/Infragistics.QueryBuilder.Executor.csproj b/Infragistics.QueryBuilder.Executor.csproj index b70d5db..b8eba26 100644 --- a/Infragistics.QueryBuilder.Executor.csproj +++ b/Infragistics.QueryBuilder.Executor.csproj @@ -15,7 +15,6 @@ false Infragistics ReadMe.md - License.txt https://www.infragistics.com/products/appbuilder/app-builder-overview https://github.com/IgniteUI/Infragistics.QueryBuilder.Executor git From 68476e6090dcbb8b70942a7d43d0fbd1d9ce6f83 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 2 Jul 2025 11:56:55 +0300 Subject: [PATCH 59/90] Include package reference --- azure-pipelines.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 0ee7fb0..4016eff 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -132,6 +132,7 @@ --no-build ` --configuration $(buildConfiguration) ` -p:PackageVersion=$packageVersion ` + -p:IncludePackageReferencesDuringMarkup=true ` -o $packageOutputDir if ($LASTEXITCODE -ne 0) { From c19fd6a8d2cc7966db8e26bfa276e02138611ea1 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 2 Jul 2025 12:02:03 +0300 Subject: [PATCH 60/90] Revert adding package reference --- azure-pipelines.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 4016eff..0ee7fb0 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -132,7 +132,6 @@ --no-build ` --configuration $(buildConfiguration) ` -p:PackageVersion=$packageVersion ` - -p:IncludePackageReferencesDuringMarkup=true ` -o $packageOutputDir if ($LASTEXITCODE -ne 0) { From 704c0f0a88a19d0b80a27fecbf5d1181cd91a46f Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 2 Jul 2025 14:13:12 +0300 Subject: [PATCH 61/90] wip check nuget version --- azure-pipelines.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 0ee7fb0..d1ee2dc 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -36,6 +36,14 @@ packageType: 'sdk' version: '9.x' + - script: | + echo "Checking .NET SDK version:" + dotnet --info + + echo "Checking NuGet CLI version:" + dotnet nuget --version + displayName: 'Check NuGet Version' + - task: GitVersion@5 inputs: versionSpec: '5.x' From de71fbddaa7b0e4165e0a3de0d23e6615b8abdbe Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 2 Jul 2025 14:16:51 +0300 Subject: [PATCH 62/90] revert nuget version check --- azure-pipelines.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index d1ee2dc..0ee7fb0 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -36,14 +36,6 @@ packageType: 'sdk' version: '9.x' - - script: | - echo "Checking .NET SDK version:" - dotnet --info - - echo "Checking NuGet CLI version:" - dotnet nuget --version - displayName: 'Check NuGet Version' - - task: GitVersion@5 inputs: versionSpec: '5.x' From 2b8f287817d9564bd3d083b6813ca15676a258dd Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 2 Jul 2025 14:17:50 +0300 Subject: [PATCH 63/90] dotnet pack include documentation file --- azure-pipelines.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 0ee7fb0..c5037e4 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -131,6 +131,7 @@ dotnet pack ./Infragistics.QueryBuilder.Executor.csproj ` --no-build ` --configuration $(buildConfiguration) ` + -p:IncludeDocumentationFile=true ` -p:PackageVersion=$packageVersion ` -o $packageOutputDir From 74ae94592ab652bff2d3d9d789445c7ad480c2dc Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 2 Jul 2025 14:25:50 +0300 Subject: [PATCH 64/90] revert include documentation file --- azure-pipelines.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index c5037e4..0ee7fb0 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -131,7 +131,6 @@ dotnet pack ./Infragistics.QueryBuilder.Executor.csproj ` --no-build ` --configuration $(buildConfiguration) ` - -p:IncludeDocumentationFile=true ` -p:PackageVersion=$packageVersion ` -o $packageOutputDir From c588a423a1c15018bef0e739f6d675934eb22ede Mon Sep 17 00:00:00 2001 From: Borislav Traykov Date: Wed, 2 Jul 2025 15:03:45 +0300 Subject: [PATCH 65/90] Add explicit MIT license --- Infragistics.QueryBuilder.Executor.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/Infragistics.QueryBuilder.Executor.csproj b/Infragistics.QueryBuilder.Executor.csproj index b8eba26..630f9a9 100644 --- a/Infragistics.QueryBuilder.Executor.csproj +++ b/Infragistics.QueryBuilder.Executor.csproj @@ -13,6 +13,7 @@ We want to generate the version attributes at runtime and we need this flag enabled for that<--> true false + MIT Infragistics ReadMe.md https://www.infragistics.com/products/appbuilder/app-builder-overview From 77f981d0b052c6acbb2eca97d1f53ada229a1371 Mon Sep 17 00:00:00 2001 From: Borislav Traykov Date: Wed, 2 Jul 2025 15:23:48 +0300 Subject: [PATCH 66/90] Minor touch-ups --- azure-pipelines.yml | 38 +------------------------------------- 1 file changed, 1 insertion(+), 37 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 0ee7fb0..f7dfb57 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -46,42 +46,6 @@ inputs: secureFile: 'code-signing-certificate-2023-2026.pfx' - #- script: dotnet restore - # displayName: 'Restore Dependencies' - - # - script: > - # dotnet build ./Infragistics.QueryBuilder.Executor.csproj - # --configuration $(buildConfiguration) - # --no-restore - # displayName: 'Build Project' - - #- powershell: | - # Write-Host "Building project and forcing output path..." - # dotnet build ./Infragistics.QueryBuilder.Executor.csproj ` - # --configuration $(buildConfiguration) ` - # --no-restore - # displayName: 'Build Project' - - #- task: DotNetCoreCLI@2 - # displayName: Build project - # inputs: - # command: 'build' - # #projects: '$(Build.SourcesDirectory)/*.sln' - # arguments: '--configuration $(buildConfiguration) /p:Version$(GitVersion.NuGetVersionV2)' - # #workingDirectory: '$(Build.SourcesDirectory)' - - # - script: | - # echo "GitVersion.NuGetVersionV2 = $(GitVersion.NuGetVersionV2)" - # dotnet build . -configuration $(buildConfiguration) /p:Version=$(GitVersion.NuGetVersionV2) - # displayName: 'Build Project' - # workingDirectory: $(Build.SourcesDirectory) - - # - script: | #works - # echo "GitVersion.NuGetVersionV2 = $(GitVersion.NuGetVersionV2)" - # dotnet build ./Infragistics.QueryBuilder.Executor.csproj -c $(buildConfiguration) /p:Version=$(GitVersion.NuGetVersionV2) - # displayName: 'Build Project' - # workingDirectory: $(Build.SourcesDirectory) - - task: DotNetCoreCLI@2 displayName: 'Build Project' inputs: @@ -154,7 +118,7 @@ PathtoPublish: '$(Build.ArtifactStagingDirectory)/nuget' ArtifactName: 'NuGetPackage' publishLocation: 'Container' - displayName: 'Publish nuget Package as Build Artifact' + displayName: 'Publish NuGet Package as Build Artifact' # - task: NuGetCommand@2 # inputs: From 40074af303b160b065a9cb09cc22fe2492ad4453 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 2 Jul 2025 15:46:24 +0300 Subject: [PATCH 67/90] Move pipeline to azure-pipelines location --- azure-pipelines/build-and-publish.yml | 129 ++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) create mode 100644 azure-pipelines/build-and-publish.yml diff --git a/azure-pipelines/build-and-publish.yml b/azure-pipelines/build-and-publish.yml new file mode 100644 index 0000000..f7dfb57 --- /dev/null +++ b/azure-pipelines/build-and-publish.yml @@ -0,0 +1,129 @@ + trigger: + branches: + include: + - master + + pr: + branches: + exclude: + - '*' + + name: pr.$(prId)-$(prIteration) + + variables: + - group: Code_Signing_Certificate_2023_2026 + - name: prId + value: $[coalesce(variables['System.PullRequest.PullRequestId'], '000')] + - name: prIteration + value: $[counter(variables['prId'], 1)] + - name: buildConfiguration + value: Release + + stages: + - stage: BuildAndPublish + condition: succeeded() + jobs: + - job: BuildAndSign + pool: + vmImage: 'windows-latest' + + steps: + - checkout: self + fetchDepth: 0 + + - task: UseDotNet@2 + inputs: + packageType: 'sdk' + version: '9.x' + + - task: GitVersion@5 + inputs: + versionSpec: '5.x' + name: gitVersion + + - task: DownloadSecureFile@1 + name: cert + inputs: + secureFile: 'code-signing-certificate-2023-2026.pfx' + + - task: DotNetCoreCLI@2 + displayName: 'Build Project' + inputs: + command: 'build' + projects: 'Infragistics.QueryBuilder.Executor.csproj' + arguments: '-c $(buildConfiguration) /p:Version=$(GitVersion.NuGetVersionV2)' + workingDirectory: '$(Build.SourcesDirectory)' + + - powershell: | + $outputDir = "$(Build.SourcesDirectory)\bin\$(buildConfiguration)\net9.0" + Write-Host "Listing contents of: $outputDir" + if (-Not (Test-Path $outputDir)) { + Write-Error "Output folder not found: $outputDir" + exit 1 + } + Get-ChildItem $outputDir -Recurse | ForEach-Object { + Write-Host $_.FullName + } + displayName: 'Debug: List build output contents' + + - powershell: | + $dllFolder = "$(Build.SourcesDirectory)\bin\$(buildConfiguration)\net9.0" + Write-Host "Signing DLLs in folder: $dllFolder" + + $signtoolPath = "C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\signtool.exe" + Write-Host "Using signtool at: $signtoolPath" + + $dllFiles = Get-ChildItem -Path $dllFolder -Filter *.dll -Recurse + foreach ($dll in $dllFiles) { + Write-Host "Signing $($dll.FullName)..." + & $signtoolPath sign /f $(cert.secureFilePath) /p $env:CERT_PASS /tr $(SigningCertificateTimestampUrl) /td sha256 /fd sha256 $dll.FullName + + if ($LASTEXITCODE -ne 0) { + Write-Error "Signing failed for $($dll.FullName)" + exit 1 + } + } + displayName: 'Sign all DLL files with PFX certificate' + env: + CERT_PASS: $(SigningCertificatePassword) + + - powershell: | + $packageOutputDir = "$(Build.ArtifactStagingDirectory)\nuget" + $packageVersion = "$(GitVersion.NuGetVersionV2)" + + Write-Host "Packing project from existing build output..." + dotnet pack ./Infragistics.QueryBuilder.Executor.csproj ` + --no-build ` + --configuration $(buildConfiguration) ` + -p:PackageVersion=$packageVersion ` + -o $packageOutputDir + + if ($LASTEXITCODE -ne 0) { + Write-Error "dotnet pack failed" + exit 1 + } + displayName: 'Pack NuGet Package using PowerShell' + + - task: PowerShell@2 + displayName: 'Sign NuGet package' + env: + CERT_PASS: $(SigningCertificatePassword) + inputs: + targetType: 'inline' + script: | + nuget.exe sign $(Build.ArtifactStagingDirectory)\nuget\*.nupkg -CertificatePath $(cert.secureFilePath) -CertificatePassword $env:CERT_PASS -Timestamper $(SigningCertificateTimestampUrl) + + - task: PublishBuildArtifacts@1 + inputs: + PathtoPublish: '$(Build.ArtifactStagingDirectory)/nuget' + ArtifactName: 'NuGetPackage' + publishLocation: 'Container' + displayName: 'Publish NuGet Package as Build Artifact' + + # - task: NuGetCommand@2 + # inputs: + # command: 'push' + # packagesToPush: '$(Build.ArtifactStagingDirectory)/nuget/*.nupkg' + # nuGetFeedType: 'external' + # publishFeedCredentials: 'NuGet' + # displayName: 'Publish to NuGet.org' From 668648e2771590e1632be5a46b39ec3eb9771e1b Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 2 Jul 2025 15:47:52 +0300 Subject: [PATCH 68/90] Delete old azure-pipelines.yml --- azure-pipelines.yml | 129 -------------------------------------------- 1 file changed, 129 deletions(-) delete mode 100644 azure-pipelines.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index f7dfb57..0000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,129 +0,0 @@ - trigger: - branches: - include: - - master - - pr: - branches: - exclude: - - '*' - - name: pr.$(prId)-$(prIteration) - - variables: - - group: Code_Signing_Certificate_2023_2026 - - name: prId - value: $[coalesce(variables['System.PullRequest.PullRequestId'], '000')] - - name: prIteration - value: $[counter(variables['prId'], 1)] - - name: buildConfiguration - value: Release - - stages: - - stage: BuildAndPublish - condition: succeeded() - jobs: - - job: BuildAndSign - pool: - vmImage: 'windows-latest' - - steps: - - checkout: self - fetchDepth: 0 - - - task: UseDotNet@2 - inputs: - packageType: 'sdk' - version: '9.x' - - - task: GitVersion@5 - inputs: - versionSpec: '5.x' - name: gitVersion - - - task: DownloadSecureFile@1 - name: cert - inputs: - secureFile: 'code-signing-certificate-2023-2026.pfx' - - - task: DotNetCoreCLI@2 - displayName: 'Build Project' - inputs: - command: 'build' - projects: 'Infragistics.QueryBuilder.Executor.csproj' - arguments: '-c $(buildConfiguration) /p:Version=$(GitVersion.NuGetVersionV2)' - workingDirectory: '$(Build.SourcesDirectory)' - - - powershell: | - $outputDir = "$(Build.SourcesDirectory)\bin\$(buildConfiguration)\net9.0" - Write-Host "Listing contents of: $outputDir" - if (-Not (Test-Path $outputDir)) { - Write-Error "Output folder not found: $outputDir" - exit 1 - } - Get-ChildItem $outputDir -Recurse | ForEach-Object { - Write-Host $_.FullName - } - displayName: 'Debug: List build output contents' - - - powershell: | - $dllFolder = "$(Build.SourcesDirectory)\bin\$(buildConfiguration)\net9.0" - Write-Host "Signing DLLs in folder: $dllFolder" - - $signtoolPath = "C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\signtool.exe" - Write-Host "Using signtool at: $signtoolPath" - - $dllFiles = Get-ChildItem -Path $dllFolder -Filter *.dll -Recurse - foreach ($dll in $dllFiles) { - Write-Host "Signing $($dll.FullName)..." - & $signtoolPath sign /f $(cert.secureFilePath) /p $env:CERT_PASS /tr $(SigningCertificateTimestampUrl) /td sha256 /fd sha256 $dll.FullName - - if ($LASTEXITCODE -ne 0) { - Write-Error "Signing failed for $($dll.FullName)" - exit 1 - } - } - displayName: 'Sign all DLL files with PFX certificate' - env: - CERT_PASS: $(SigningCertificatePassword) - - - powershell: | - $packageOutputDir = "$(Build.ArtifactStagingDirectory)\nuget" - $packageVersion = "$(GitVersion.NuGetVersionV2)" - - Write-Host "Packing project from existing build output..." - dotnet pack ./Infragistics.QueryBuilder.Executor.csproj ` - --no-build ` - --configuration $(buildConfiguration) ` - -p:PackageVersion=$packageVersion ` - -o $packageOutputDir - - if ($LASTEXITCODE -ne 0) { - Write-Error "dotnet pack failed" - exit 1 - } - displayName: 'Pack NuGet Package using PowerShell' - - - task: PowerShell@2 - displayName: 'Sign NuGet package' - env: - CERT_PASS: $(SigningCertificatePassword) - inputs: - targetType: 'inline' - script: | - nuget.exe sign $(Build.ArtifactStagingDirectory)\nuget\*.nupkg -CertificatePath $(cert.secureFilePath) -CertificatePassword $env:CERT_PASS -Timestamper $(SigningCertificateTimestampUrl) - - - task: PublishBuildArtifacts@1 - inputs: - PathtoPublish: '$(Build.ArtifactStagingDirectory)/nuget' - ArtifactName: 'NuGetPackage' - publishLocation: 'Container' - displayName: 'Publish NuGet Package as Build Artifact' - - # - task: NuGetCommand@2 - # inputs: - # command: 'push' - # packagesToPush: '$(Build.ArtifactStagingDirectory)/nuget/*.nupkg' - # nuGetFeedType: 'external' - # publishFeedCredentials: 'NuGet' - # displayName: 'Publish to NuGet.org' From ec2474acb3815bb3adfe0548245e971424560c6c Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 2 Jul 2025 15:49:15 +0300 Subject: [PATCH 69/90] Edit package project url in csproj --- Infragistics.QueryBuilder.Executor.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Infragistics.QueryBuilder.Executor.csproj b/Infragistics.QueryBuilder.Executor.csproj index 630f9a9..9e64372 100644 --- a/Infragistics.QueryBuilder.Executor.csproj +++ b/Infragistics.QueryBuilder.Executor.csproj @@ -16,7 +16,7 @@ MIT Infragistics ReadMe.md - https://www.infragistics.com/products/appbuilder/app-builder-overview + https://github.com/IgniteUI/Infragistics.QueryBuilder.Executor https://github.com/IgniteUI/Infragistics.QueryBuilder.Executor git https://github.com/IgniteUI/Infragistics.QueryBuilder.Executor From 6ff461eed948f2a6e0ea78b906280498d4265444 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 2 Jul 2025 15:49:48 +0300 Subject: [PATCH 70/90] Add igniteui icon --- IgniteUI.ico | Bin 0 -> 67646 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 IgniteUI.ico diff --git a/IgniteUI.ico b/IgniteUI.ico new file mode 100644 index 0000000000000000000000000000000000000000..eb796533ebbc67d7b1f806f780191b606239e672 GIT binary patch literal 67646 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 literal 0 HcmV?d00001 From c8b43aab82cf9e49bae61f90c66d3e44553b2a12 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 2 Jul 2025 15:52:47 +0300 Subject: [PATCH 71/90] Add icon to csproj --- Infragistics.QueryBuilder.Executor.csproj | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Infragistics.QueryBuilder.Executor.csproj b/Infragistics.QueryBuilder.Executor.csproj index 9e64372..c792151 100644 --- a/Infragistics.QueryBuilder.Executor.csproj +++ b/Infragistics.QueryBuilder.Executor.csproj @@ -21,12 +21,14 @@ git https://github.com/IgniteUI/Infragistics.QueryBuilder.Executor Infragistics;App Builder;Ignite UI;Filtering;Query;Query Builder;Models + IgniteUI.ico + True From 97b6b0ac15f24764f39e584f4762e48428f0b648 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 2 Jul 2025 15:56:09 +0300 Subject: [PATCH 72/90] Use png instead of ico --- Infragistics.QueryBuilder.Executor.csproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Infragistics.QueryBuilder.Executor.csproj b/Infragistics.QueryBuilder.Executor.csproj index c792151..9c3451b 100644 --- a/Infragistics.QueryBuilder.Executor.csproj +++ b/Infragistics.QueryBuilder.Executor.csproj @@ -21,14 +21,14 @@ git https://github.com/IgniteUI/Infragistics.QueryBuilder.Executor Infragistics;App Builder;Ignite UI;Filtering;Query;Query Builder;Models - IgniteUI.ico + IgniteUI.png - + True From 89f32e9f5d4c10f35da167fc554ae1d226368227 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 2 Jul 2025 15:56:57 +0300 Subject: [PATCH 73/90] Delete IgniteUI.ico --- IgniteUI.ico | Bin 67646 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 IgniteUI.ico diff --git a/IgniteUI.ico b/IgniteUI.ico deleted file mode 100644 index eb796533ebbc67d7b1f806f780191b606239e672..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67646 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 From 45a9b4793103c2fed6d043d2731bba315b007bca Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 2 Jul 2025 15:57:54 +0300 Subject: [PATCH 74/90] Add ingnite ui icon png --- IgniteUI.png | Bin 0 -> 12723 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 IgniteUI.png diff --git a/IgniteUI.png b/IgniteUI.png new file mode 100644 index 0000000000000000000000000000000000000000..2ee846e2f4a837f757def8e7aab2863bdd6f4b60 GIT binary patch literal 12723 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 Date: Wed, 2 Jul 2025 16:01:22 +0300 Subject: [PATCH 75/90] Delete IgniteUI.png --- IgniteUI.png | Bin 12723 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 IgniteUI.png diff --git a/IgniteUI.png b/IgniteUI.png deleted file mode 100644 index 2ee846e2f4a837f757def8e7aab2863bdd6f4b60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12723 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 Date: Wed, 2 Jul 2025 16:01:38 +0300 Subject: [PATCH 76/90] Add icon 128 --- IgniteUI.png | Bin 0 -> 11997 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 IgniteUI.png diff --git a/IgniteUI.png b/IgniteUI.png new file mode 100644 index 0000000000000000000000000000000000000000..a00d62de8fd25a2988b7151ddc0656782a0de72f GIT binary patch literal 11997 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 Date: Wed, 2 Jul 2025 16:04:07 +0300 Subject: [PATCH 77/90] add package path parameter in csproj --- Infragistics.QueryBuilder.Executor.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Infragistics.QueryBuilder.Executor.csproj b/Infragistics.QueryBuilder.Executor.csproj index 9c3451b..ccc31e6 100644 --- a/Infragistics.QueryBuilder.Executor.csproj +++ b/Infragistics.QueryBuilder.Executor.csproj @@ -28,7 +28,7 @@ - + True From d4b05f9e2452b8cced634e9411bf4977f2a0b937 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 2 Jul 2025 16:04:43 +0300 Subject: [PATCH 78/90] Add extra space --- Infragistics.QueryBuilder.Executor.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Infragistics.QueryBuilder.Executor.csproj b/Infragistics.QueryBuilder.Executor.csproj index ccc31e6..3ed0881 100644 --- a/Infragistics.QueryBuilder.Executor.csproj +++ b/Infragistics.QueryBuilder.Executor.csproj @@ -28,7 +28,7 @@ - + True From d7714ddd487b02163f7e8e420685aa783140ec73 Mon Sep 17 00:00:00 2001 From: Borislav Traykov Date: Wed, 2 Jul 2025 16:13:30 +0300 Subject: [PATCH 79/90] Add automated documentation generation --- Infragistics.QueryBuilder.Executor.csproj | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Infragistics.QueryBuilder.Executor.csproj b/Infragistics.QueryBuilder.Executor.csproj index 630f9a9..18a22c7 100644 --- a/Infragistics.QueryBuilder.Executor.csproj +++ b/Infragistics.QueryBuilder.Executor.csproj @@ -12,14 +12,15 @@ 1.0.0.0 We want to generate the version attributes at runtime and we need this flag enabled for that<--> true + true false - MIT + MIT Infragistics ReadMe.md https://www.infragistics.com/products/appbuilder/app-builder-overview https://github.com/IgniteUI/Infragistics.QueryBuilder.Executor - git - https://github.com/IgniteUI/Infragistics.QueryBuilder.Executor + git + https://github.com/IgniteUI/Infragistics.QueryBuilder.Executor Infragistics;App Builder;Ignite UI;Filtering;Query;Query Builder;Models From e024f25881f3d776933ce6926ddc16ebc351f127 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 2 Jul 2025 16:19:21 +0300 Subject: [PATCH 80/90] Fix indentation --- Infragistics.QueryBuilder.Executor.csproj | 34 +++++++++++------------ 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/Infragistics.QueryBuilder.Executor.csproj b/Infragistics.QueryBuilder.Executor.csproj index bdc9bc8..68f937c 100644 --- a/Infragistics.QueryBuilder.Executor.csproj +++ b/Infragistics.QueryBuilder.Executor.csproj @@ -4,25 +4,25 @@ net9.0 enable enable - Infragistics.QueryBuilder.Executor + Infragistics.QueryBuilder.Executor Infragistics Inc. - Infragistics Inc. + Infragistics Inc. Infragistics Inc. A .NET 9 library for dynamic, strongly-typed query building and execution over Entity Framework Core data sources. Supports advanced filtering, projection, and SQL generation. - 1.0.0.0 - We want to generate the version attributes at runtime and we need this flag enabled for that<--> - true - true - false + 1.0.0.0 + We want to generate the version attributes at runtime and we need this flag enabled for that<--> + true + true + false MIT - Infragistics - ReadMe.md - https://github.com/IgniteUI/Infragistics.QueryBuilder.Executor - https://github.com/IgniteUI/Infragistics.QueryBuilder.Executor + Infragistics + ReadMe.md + https://github.com/IgniteUI/Infragistics.QueryBuilder.Executor + https://github.com/IgniteUI/Infragistics.QueryBuilder.Executor git https://github.com/IgniteUI/Infragistics.QueryBuilder.Executor - Infragistics;App Builder;Ignite UI;Filtering;Query;Query Builder;Models - IgniteUI.png + Infragistics;App Builder;Ignite UI;Filtering;Query;Query Builder;Models + IgniteUI.png @@ -30,10 +30,10 @@ - - True - - + + True + + From c563bcc5f3049eb7c650133744ffbb1beba02ba5 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 2 Jul 2025 16:22:16 +0300 Subject: [PATCH 81/90] Fix trigger and intentation --- azure-pipelines/build-and-publish.yml | 249 +++++++++++++------------- 1 file changed, 123 insertions(+), 126 deletions(-) diff --git a/azure-pipelines/build-and-publish.yml b/azure-pipelines/build-and-publish.yml index f7dfb57..a58f3e9 100644 --- a/azure-pipelines/build-and-publish.yml +++ b/azure-pipelines/build-and-publish.yml @@ -1,129 +1,126 @@ - trigger: - branches: - include: - - master - - pr: - branches: - exclude: - - '*' - - name: pr.$(prId)-$(prIteration) - - variables: - - group: Code_Signing_Certificate_2023_2026 - - name: prId - value: $[coalesce(variables['System.PullRequest.PullRequestId'], '000')] - - name: prIteration - value: $[counter(variables['prId'], 1)] - - name: buildConfiguration - value: Release - - stages: - - stage: BuildAndPublish - condition: succeeded() - jobs: - - job: BuildAndSign - pool: - vmImage: 'windows-latest' - - steps: - - checkout: self - fetchDepth: 0 - - - task: UseDotNet@2 - inputs: - packageType: 'sdk' - version: '9.x' - - - task: GitVersion@5 - inputs: - versionSpec: '5.x' - name: gitVersion - - - task: DownloadSecureFile@1 - name: cert - inputs: - secureFile: 'code-signing-certificate-2023-2026.pfx' - - - task: DotNetCoreCLI@2 - displayName: 'Build Project' - inputs: - command: 'build' - projects: 'Infragistics.QueryBuilder.Executor.csproj' - arguments: '-c $(buildConfiguration) /p:Version=$(GitVersion.NuGetVersionV2)' - workingDirectory: '$(Build.SourcesDirectory)' - - - powershell: | - $outputDir = "$(Build.SourcesDirectory)\bin\$(buildConfiguration)\net9.0" - Write-Host "Listing contents of: $outputDir" - if (-Not (Test-Path $outputDir)) { - Write-Error "Output folder not found: $outputDir" - exit 1 - } - Get-ChildItem $outputDir -Recurse | ForEach-Object { - Write-Host $_.FullName - } - displayName: 'Debug: List build output contents' - - - powershell: | - $dllFolder = "$(Build.SourcesDirectory)\bin\$(buildConfiguration)\net9.0" - Write-Host "Signing DLLs in folder: $dllFolder" - - $signtoolPath = "C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\signtool.exe" - Write-Host "Using signtool at: $signtoolPath" - - $dllFiles = Get-ChildItem -Path $dllFolder -Filter *.dll -Recurse - foreach ($dll in $dllFiles) { - Write-Host "Signing $($dll.FullName)..." - & $signtoolPath sign /f $(cert.secureFilePath) /p $env:CERT_PASS /tr $(SigningCertificateTimestampUrl) /td sha256 /fd sha256 $dll.FullName - - if ($LASTEXITCODE -ne 0) { - Write-Error "Signing failed for $($dll.FullName)" - exit 1 - } - } - displayName: 'Sign all DLL files with PFX certificate' - env: - CERT_PASS: $(SigningCertificatePassword) - - - powershell: | - $packageOutputDir = "$(Build.ArtifactStagingDirectory)\nuget" - $packageVersion = "$(GitVersion.NuGetVersionV2)" - - Write-Host "Packing project from existing build output..." - dotnet pack ./Infragistics.QueryBuilder.Executor.csproj ` - --no-build ` - --configuration $(buildConfiguration) ` - -p:PackageVersion=$packageVersion ` - -o $packageOutputDir +trigger: + tags: + include: + - '*' +# This pipeline is meant to build & deploy upon tagging. It's not meant to be a part of PR validation. +pr: none + +name: pr.$(prId)-$(prIteration) + +variables: +- group: Code_Signing_Certificate_2023_2026 +- name: prId + value: $[coalesce(variables['System.PullRequest.PullRequestId'], '000')] +- name: prIteration + value: $[counter(variables['prId'], 1)] +- name: buildConfiguration + value: Release + +stages: +- stage: BuildAndPublish + condition: succeeded() + jobs: + - job: BuildAndSign + pool: + vmImage: 'windows-latest' + + steps: + - checkout: self + fetchDepth: 0 + + - task: UseDotNet@2 + inputs: + packageType: 'sdk' + version: '9.x' + + - task: GitVersion@5 + inputs: + versionSpec: '5.x' + name: gitVersion + + - task: DownloadSecureFile@1 + name: cert + inputs: + secureFile: 'code-signing-certificate-2023-2026.pfx' + + - task: DotNetCoreCLI@2 + displayName: 'Build Project' + inputs: + command: 'build' + projects: 'Infragistics.QueryBuilder.Executor.csproj' + arguments: '-c $(buildConfiguration) /p:Version=$(GitVersion.NuGetVersionV2)' + workingDirectory: '$(Build.SourcesDirectory)' + + - powershell: | + $outputDir = "$(Build.SourcesDirectory)\bin\$(buildConfiguration)\net9.0" + Write-Host "Listing contents of: $outputDir" + if (-Not (Test-Path $outputDir)) { + Write-Error "Output folder not found: $outputDir" + exit 1 + } + Get-ChildItem $outputDir -Recurse | ForEach-Object { + Write-Host $_.FullName + } + displayName: 'Debug: List build output contents' + + - powershell: | + $dllFolder = "$(Build.SourcesDirectory)\bin\$(buildConfiguration)\net9.0" + Write-Host "Signing DLLs in folder: $dllFolder" + + $signtoolPath = "C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64\signtool.exe" + Write-Host "Using signtool at: $signtoolPath" + + $dllFiles = Get-ChildItem -Path $dllFolder -Filter *.dll -Recurse + foreach ($dll in $dllFiles) { + Write-Host "Signing $($dll.FullName)..." + & $signtoolPath sign /f $(cert.secureFilePath) /p $env:CERT_PASS /tr $(SigningCertificateTimestampUrl) /td sha256 /fd sha256 $dll.FullName if ($LASTEXITCODE -ne 0) { - Write-Error "dotnet pack failed" + Write-Error "Signing failed for $($dll.FullName)" exit 1 - } - displayName: 'Pack NuGet Package using PowerShell' - - - task: PowerShell@2 - displayName: 'Sign NuGet package' - env: - CERT_PASS: $(SigningCertificatePassword) - inputs: - targetType: 'inline' - script: | - nuget.exe sign $(Build.ArtifactStagingDirectory)\nuget\*.nupkg -CertificatePath $(cert.secureFilePath) -CertificatePassword $env:CERT_PASS -Timestamper $(SigningCertificateTimestampUrl) - - - task: PublishBuildArtifacts@1 - inputs: - PathtoPublish: '$(Build.ArtifactStagingDirectory)/nuget' - ArtifactName: 'NuGetPackage' - publishLocation: 'Container' - displayName: 'Publish NuGet Package as Build Artifact' - - # - task: NuGetCommand@2 - # inputs: - # command: 'push' - # packagesToPush: '$(Build.ArtifactStagingDirectory)/nuget/*.nupkg' - # nuGetFeedType: 'external' - # publishFeedCredentials: 'NuGet' - # displayName: 'Publish to NuGet.org' + } + } + displayName: 'Sign all DLL files with PFX certificate' + env: + CERT_PASS: $(SigningCertificatePassword) + + - powershell: | + $packageOutputDir = "$(Build.ArtifactStagingDirectory)\nuget" + $packageVersion = "$(GitVersion.NuGetVersionV2)" + + Write-Host "Packing project from existing build output..." + dotnet pack ./Infragistics.QueryBuilder.Executor.csproj ` + --no-build ` + --configuration $(buildConfiguration) ` + -p:PackageVersion=$packageVersion ` + -o $packageOutputDir + + if ($LASTEXITCODE -ne 0) { + Write-Error "dotnet pack failed" + exit 1 + } + displayName: 'Pack NuGet Package using PowerShell' + + - task: PowerShell@2 + displayName: 'Sign NuGet package' + env: + CERT_PASS: $(SigningCertificatePassword) + inputs: + targetType: 'inline' + script: | + nuget.exe sign $(Build.ArtifactStagingDirectory)\nuget\*.nupkg -CertificatePath $(cert.secureFilePath) -CertificatePassword $env:CERT_PASS -Timestamper $(SigningCertificateTimestampUrl) + + - task: PublishBuildArtifacts@1 + inputs: + PathtoPublish: '$(Build.ArtifactStagingDirectory)/nuget' + ArtifactName: 'NuGetPackage' + publishLocation: 'Container' + displayName: 'Publish NuGet Package as Build Artifact' + + # - task: NuGetCommand@2 + # inputs: + # command: 'push' + # packagesToPush: '$(Build.ArtifactStagingDirectory)/nuget/*.nupkg' + # nuGetFeedType: 'external' + # publishFeedCredentials: 'NuGet' + # displayName: 'Publish to NuGet.org' From bc26ed9338496bbbc0fd18474c6289cec9c96746 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 2 Jul 2025 16:26:50 +0300 Subject: [PATCH 82/90] Update name --- azure-pipelines/build-and-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines/build-and-publish.yml b/azure-pipelines/build-and-publish.yml index a58f3e9..bc99c14 100644 --- a/azure-pipelines/build-and-publish.yml +++ b/azure-pipelines/build-and-publish.yml @@ -5,7 +5,7 @@ trigger: # This pipeline is meant to build & deploy upon tagging. It's not meant to be a part of PR validation. pr: none -name: pr.$(prId)-$(prIteration) +name: $(Build.SourceBranchName)_$(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r) variables: - group: Code_Signing_Certificate_2023_2026 From 0abe24ce6fe1a0518e59fc636087c52455ca45e6 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 2 Jul 2025 16:34:59 +0300 Subject: [PATCH 83/90] Add publish step --- azure-pipelines/build-and-publish.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/azure-pipelines/build-and-publish.yml b/azure-pipelines/build-and-publish.yml index bc99c14..988ed2d 100644 --- a/azure-pipelines/build-and-publish.yml +++ b/azure-pipelines/build-and-publish.yml @@ -117,10 +117,10 @@ stages: publishLocation: 'Container' displayName: 'Publish NuGet Package as Build Artifact' - # - task: NuGetCommand@2 - # inputs: - # command: 'push' - # packagesToPush: '$(Build.ArtifactStagingDirectory)/nuget/*.nupkg' - # nuGetFeedType: 'external' - # publishFeedCredentials: 'NuGet' - # displayName: 'Publish to NuGet.org' + - task: NuGetCommand@2 + inputs: + command: 'push' + packagesToPush: '$(Build.ArtifactStagingDirectory)/nuget/*.nupkg' + nuGetFeedType: 'external' + publishFeedCredentials: 'NuGet.Org' + displayName: 'Publish to NuGet.org' From 29eebc5cc30897c98ef08cd74cee831a59e43bed Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Wed, 2 Jul 2025 17:27:52 +0300 Subject: [PATCH 84/90] Delete License.txt --- License.txt | 104 ---------------------------------------------------- 1 file changed, 104 deletions(-) delete mode 100644 License.txt diff --git a/License.txt b/License.txt deleted file mode 100644 index b08ade3..0000000 --- a/License.txt +++ /dev/null @@ -1,104 +0,0 @@ -Software License Agreement – Indigo.Design and Indigo Studio -(November 2012) - -Please read this license agreement (the "License") carefully before clicking the “I ACCEPT” button unlocking access to the SOFTWARE (as described below). This license is a legal agreement between Infragistics, Inc. (“Infragistics”) and You (as defined below) and by clicking the “I ACCEPT” button, You are agreeing that You have READ ALL OF THE TERMS AND CONDITIONS set forth below, UNDERSTAND ALL OF THE TERMS AND CONDITIONS of this License and AGREE TO BE BOUND BY THE TERMS AND CONDITIONS of this License. As used in this License, “You” means the person or company seeking to acquire the rights and obligations under this License and, with respect to any company expressly excludes its parents, subsidiaries and affiliates. Any person entering into this License on behalf of a company, hereby represents that such person: (i) is an employee or agent of such company; and (ii) has the authority to enter into this License on behalf of such company. - -WARNING------------------- - -INFRAGISTICS IS WILLING TO LICENSE THE SOFTWARE TO YOU ONLY UPON THE CONDITION THAT YOU ACCEPT ALL OF THE TERMS AND CONDITIONS CONTAINED IN THIS LICENSE. - -IF YOU DO NOT AGREE TO ANY OF THE TERMS AND CONDITIONS OF THIS LICENSE, YOU MUST CLICK ON THE “CANCEL” BUTTON. If You click the “CANCEL” button, the SOFTWARE shall remain locked and You agree NOT TO ATTEMPT to circumvent, un-lock or otherwise open and use the SOFTWARE and any and all rights You might acquire/have acquired with respect to the SOFTWARE shall terminate. The “effective date” of this License is the date upon which You click the “I ACCEPT” button. - -I. OWNERSHIP. - -As between the parties, Infragistics and its licensors owns all right, title and interest in and to the Indigo.Design and Indigo Studio computer software (v1.x (e.g., 1.1, 1.2)) and associated materials including any related documentation such as standard training, user, or reference manuals delivered in machine readable form or on-line at the Infragistics website (collectively, the “SOFTWARE”) and any and all patents, copyrights, moral rights, trademarks, trade secrets and any other form of intellectual property rights recognized in any jurisdiction, including applications and registrations for any of the foregoing embodied therein (“Intellectual Property Rights”). The SOFTWARE is licensed, not sold, to You by Infragistics. There are no implied licenses and Infragistics retains all rights not expressly granted to You in this License. All corrections, bug fixes, enhancements, modifications, updates, and minor releases, in each case denoted by a change to the right of the decimal point (e.g. 1.0 to 1.1) and made generally available to licensees (collectively, “Updates”) by or on behalf of Infragistics and provided or made available to You as part of the SOFTWARE, together with all applicable Intellectual Property Rights, will be owned by Infragistics, but will be included as part of the SOFTWARE for purposes of the license granted to You hereunder. - -II. LICENSES; RESTRICTIONS. - -A. Subject to the terms of this License, Infragistics hereby grants to You, and You accept, during the term (see Section VI), a non-exclusive, non-transferable, non-sublicensable, limited license to access, use, and copy (as set forth in Section II(E)) the SOFTWARE and any Updates thereto, in executable code form, as authorized in this Section II. - -B. You may install, copy (as set forth below), and use the SOFTWARE on one or more computers or on Your network server, as long as the use of the SOFTWARE is limited to You, Your employees, contractors, consultants and agents. You agree to use the SOFTWARE only for Your own business. Your employees, contractors, consultants and agents may use the SOFTWARE only for the sole benefit of You and in compliance with the terms of this License. - -C. Except as otherwise expressly permitted hereunder, You shall not: (i) permit any affiliated entities or third parties to use the SOFTWARE, (ii) reverse engineer or otherwise attempt to recreate all or any portion of the SOFTWARE, or use the SOFTWARE to develop functionality similar to or competitive with the SOFTWARE; or (iii) modify, translate or create any derivative work of all or any portion of the SOFTWARE. Under no circumstances shall You sell, license, publish, display, distribute, or otherwise transfer to a third party the SOFTWARE or any copy thereof, in whole or in part, without Infragistics’ express, prior written consent. You agree to secure all necessary rights and obligations from Your employees, contractors, consultants and agents in order to satisfy the foregoing obligations. In the event of any violation of the foregoing, either independently or jointly with any third party, any modifications, enhancements, or derivative works and all Intellectual Property Rights associated therewith will be the exclusive property of Infragistics. For the avoidance of doubt, the incorporation of elements/software components of the SOFTWARE in Your prototypes (and to the extent such elements/components may be embedded in any of Your final products) shall not be deemed creation of a derivative work under this License; provided, that: (a) Your prototypes are NOT the basis for creating (and any related products of Yours are NOT) a product that provides the same, or substantially the same, functionality as the SOFTWARE; and (b) any products developed and made available to the public shall be offered in executable code form, only. - -D. Solely with respect to the documentation included or otherwise made available as part of the SOFTWARE, You may make a copies (either in hardcopy or electronic form); provided, that such copies shall be for Your internal use only as required to exercise Your rights hereunder and are not to be republished or distributed to any third party. - -E. Copies of the SOFTWARE may be made solely to enable You to use the SOFTWARE and for archival and disaster recovery purposes; provided, that all such copies of the SOFTWARE and all copies under Section II(C) of the included/available documentation made by You or Your employees, contractors, consultants and agents shall include Infragistics’ copyright, trademark, service mark, and other proprietary notices in the same form and location as the notice appears on the original work. All such copies are, and shall remain, the exclusive property of Infragistics. - -III. PROTOTYPE HOSTING. - -A. Interactive prototypes developed using the SOFTWARE (i.e., programs, art work, digital images, web pages, etc.) can be posted by You to Infragistics’ prototype hosting server(s) for publication to the world-wide web and the URL to such prototype shared by You, either password protected or unprotected, with Your employees, contractors, consultants, and agents for interactive design exploration (the “Hosting Services”). The provisions of this Section III apply to all users of the Hosting Services including You and Your employees, contractors, consultants, and agents. Any actual or attempted violations of this Section III by You, Your employees, contractors, consultants, or agents, shall be considered violation of the License and, in addition to any other rights at law or in equity, may, at the option of Infragistics, result in the termination of Your rights to use the Hosting Services and/or the termination of the License in its entirety. Use of Hosting Services constitutes acceptance of the terms and conditions of this Section III. - -B. YOU UNDERSTAND AND ACKNOWLEDGE THAT THE HOSTING SERVICES ARE PROVIDED “AS IS”, AND THAT INFRAGISTICS MAKES NO GUARANTEE THAT THE HOSTING SERVICES WILL BE AVAILABLE OR THAT YOUR PROTOTYPE WILL BE ACCESSIBLE, AVAILABLE FOR USE OR USEFUL. - -C. Any prototype posted by You will be generally available via its URL for 90 days from the date of posting to the Infragistics server(s). Infragistics will not examine the contents of any password-protected URL (or the prototype(s) contained therein); except, to the extent requested by You, Your employees, contractors, consultants, and agents or to the extent Infragistics reasonably believes the materials located at such URL violate the terms of this Section III or applicable laws. You agree to provide Infragistics’ with all relevant information reasonably requested to enable Infragistics to authenticate Your password-protected URLs. Infragistics will remove any posted prototype at Your request; provided, that You can establish to Infragistics’ reasonable satisfaction that such posted prototype is Yours. - -D. The Hosting Services may only be used for lawful purposes. Publishing/sharing of any material in violation of any applicable U.S. federal or state, foreign national, provincial or state, or international laws, statutes, directives or regulations is prohibited. This includes, but is not limited to, material copyrighted by third party(ies), material reasonable deemed to be threatening or obscene, or material protected by trade secret and violation of applicable data privacy laws. Infragistics also reserves the right to remove any unprotected prototypes (and, to the extent Infragistics becomes aware of any password-protected prototypes) that it deems an abuse of the Hosting Services including, by way of example, any file, video or image sharing materials, any advertising (including promotion of competitive software products), or materials considered by Infragistics to be profane, indecent, or discriminatory. - -E. You hereby acknowledge that any security safeguards, including passwords created by You, related to the Hosting Services are, by their nature, capable of circumvention and Infragistics does not and cannot guarantee that posted prototypes or other information cannot be accessed by unauthorized persons capable of overcoming such safeguards. In particular, the SOFTWARE and Hosting Services may be used to access and transfer information, including the prototypes, over the internet. YOU ACKNOWLEDGE AND AGREE THAT INFRAGISTICS DOES NOT OPERATE OR CONTROL THE INTERNET AND THAT: (i) VIRUSES, WORMS, TROJAN HORSES, OR OTHER UNDESIRABLE DATA OR SOFTWARE; OR (ii) UNAUTHORIZED USERS (e.g., HACKERS); MAY ATTEMPT TO OBTAIN ACCESS TO AND DAMAGE THE HOSTING SERVICES AND/OR YOUR PROTOTYPE(S) AND THAT INFRAGISTICS SHALL HAVE NO LIABILITY WITH RESPECT TO ANY SUCH ACTIVITIES. - -F. INFRAGISTICS MAKES NO WARRANTY, EXPRESS, IMPLIED OR STATUTORY, WITH RESPECT TO THE HOSTING SERVICES OR ANY PART THEREOF, INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTY OF TITLE, AVAILABILITY, RELIABILITY, USEFULNESS, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM COURSE OF PERFORMANCE, DEALING, USAGE OR TRADE. NEITHER INFRAGISTICS NOR ANY OF ITS LICENSORS OR SUPPLIERS WARRANT THAT THE HOSTING SERVICES OR ANY PART THEREOF WILL MEET YOUR REQUIREMENTS OR BE UNINTERRUPTED, TIMELY, AVAILABLE, SECURE OR ERROR-FREE, OR THAT ANY ERRORS WILL BE CORRECTED OR CORRECTABLE OR FOR ANY OMISSIONS IN EITHER WEB HOSTING OR ACCESS SERVICES. - -IV. SUPPORT. - -Infragistics shall provide You with standard, customer support as further described in, and in accordance with, Infragistics’ current support policies available at http://www.infragistics.com/help/support-policies/ (as such policies may be updated or amended by Infragistics, in its sole discretion - -V. CONFIDENTIALITY. - -A. Each Party hereto acknowledges that during the term of this Agreement it may receive certain Confidential Information (as defined below) of the other Party. Except as expressly set forth herein, Infragistics and You each agree to retain in confidence all Confidential Information disclosed by one party (the “disclosing party”) to the other party (the “receiving party”), as the case may be, pursuant to this Agreement in any form (written, oral, photographic, electronic, magnetic, or otherwise) and to only disclose the disclosing party’s Confidential Information to its employees, contractors and advisors who have a need to know same. - -B. Each party agrees to: (i) preserve and protect the confidentiality of the disclosing party’s Confidential Information using the same standard of care that it would use to secure and safeguard its own Confidential Information, but in no event less than reasonable care; (ii) refrain from using the disclosing party’s Confidential Information except as contemplated herein; and (iii) not disclose the disclosing party’s Confidential Information to any third party except to its employees, contractors, consultants or agents as is reasonably required to perform its rights or exercise its obligations under this Agreement. Each receiving party shall, at its own expense, immediately notify disclosing party of any unauthorized possession, use or knowledge, or attempt thereof, of disclosing party’s Confidential Information by any third party. You further agree to: (a) adopt the action(s) necessary to ensure that its employees and any other third parties to whom You discloses any Confidential Information of Infragistics are legally bound by the confidentiality obligations hereunder, and (b) inform its employees and such third parties of its confidentiality and other obligations hereunder and instruct them not to attempt to circumvent any such security procedures and devices. - -C. As used in this Section V, “Confidential Information” means: (i) any and all proprietary information, formulae, patterns, compilations, technology, software (in source, binary, object or executable code or any other form), firmware, code, hardware, documentation, developments, inventions, lists, trade secrets, technical data, data compilations, processes, programs, devices, designs, drawings, methods, techniques, know-how, research, plans (marketing, business, strategic or otherwise), customer information and other business arrangements, pricing and other financial data, and any and all Intellectual Property Rights related thereto that is reasonably understood, in light of the nature of the information or the circumstances of disclosure, to be confidential or proprietary; and (ii) any information that is designated in writing to be confidential or proprietary, or if given orally, is designated at the time of disclosure as being confidential or proprietary, or that reasonably could be considered of a proprietary or confidential nature. Without limiting the foregoing, You acknowledge and agree that the SOFTWARE provided to you pursuant to this License, as well as any Updates thereto contain trade secrets, know-how and other confidential and proprietary information including, without limitation, the concepts, techniques, ideas, algorithms, methods, and structure and design elements embodied and expressed in any computer programs or modules included in the SOFTWARE, as well as the structure, sequence and organization of such programs or modules that is the exclusive property of, and Confidential Information of, Infragistics. Notwithstanding the foregoing, Confidential Information shall not include information that: (a) has become publicly known and made generally available other than through any act or omission of the receiving party; (b) was already or becomes known by the receiving party without restriction as to use or disclosure and was not acquired from the disclosing party; or (c) was independently developed by the receiving party without reference to or reliance upon the Confidential Information of the disclosing party and as shown by receiving party’s competent written records. - -VI. TERM; TERMINATION. - -A. The term of this License will commence on the Effective Date and will remain in effect in perpetuity, unless otherwise terminated in accordance with this Section VI. - -B. You may voluntarily terminate this License at any time by deleting or destroying all copies of the SOFTWARE including copies made in the usual course of business for back-up and disaster recovery purposes; provided, that, all such copies shall be erased/deleted from Your system in the event of any systems restore or other access of the media on which such back-up or disaster recovery copies are stored. You agree to provide to Infragistics proof of such destruction that is acceptable to Infragistics in its reasonable discretion. - -C. This License and your right to use the SOFTWARE will terminate immediately, without notice from Infragistics, if You fail to comply with the terms and conditions of this License including, for the avoidance of doubt, the terms of Section III; provided, that, upon any failure to comply with the terms and conditions of Section III, Infragistics may, upon Your request, and in its sole discretion, elect to reinstate this License minus the Hosting Services, subject to Your agreement, in writing, to restrictions and remedies in the event of any prohibited use of such Hosting Services or future failure to meet the other obligations of the reinstated License. This Section VI(C) is in addition to and not in lieu of any criminal, civil or other remedies available to Infragistics at law or in equity. - -D. Upon any termination of this License, all rights granted to You in the SOFTWARE and under this License will immediately cease. You agree to destroy the SOFTWARE (including all accompanying documentation) and all copies thereof in any form including copies made in the usual course of business for back-up and disaster recovery purposes; provided, that, all such copies shall be erased/deleted from Your system in the event of any systems restore or other access of the media on which such back-up or disaster recovery copies are stored. You agree to provide to Infragistics proof of such destruction that is acceptable to Infragistics in its reasonable discretion. Infragistics and You also agree to return to the other any of the other party’s Confidential Information (and copies thereof) in its or Your possession or control. - -E. In addition to this Section VI, the following Sections will survive any termination or of this License: V, VII, VIII, IX and XIII. - -VII. INDEMNITY. - -A. In addition to the other requirements set forth in this License, You hereby agree to indemnify, hold harmless, and defend Infragistics from and against any and all liabilities, damages, losses, costs and expenses (including reasonable attorneys' fees) arising from or related to any claim, action, proceeding or allegation that arises or results, either directly or indirectly, from: (i) Your use and the use by Your employees, contractors, consultants and agents of the SOFTWARE; (ii) any breach by You or them of the terms of this License; and (iii) the use and distribution of any of Your prototypes and/or the resulting software product(s) or components. You also agree to indemnify, hold harmless, and defend Infragistics from and against any and all liabilities, damages, losses, costs and expenses (including reasonable attorneys' fees) arising from or related to any claim, action, proceeding or allegation that arises or results, either directly or indirectly, from Your use and the use by Your employees, contractors, consultants and agents of the Hosting Services. - -B. Infragistics will indemnify, defend and hold You harmless against any third-party claims, demands, causes of action or suits of whatsoever kind or nature for damages, losses, costs and expenses (including, without limitation, reasonable attorneys' fees) to the extent arising out of or based on allegations that the SOFTWARE infringes such third party’s Intellectual Property Rights, subject to: (i) You promptly notifying Infragistics in writing of any third party claim, (ii) You giving Infragistics full authority and control of any such claim with counsel of Infragistics’ choice, and (iii) You providing Infragistics, at Infragistics’ cost and expense, information and assistance for defense of any such claim. If any such claim occurs, or in Infragistics' opinion is likely to occur, Infragistics may, at its option and expense, procure for You the right to continue using the infringing item(s) or to replace or modify the same so that it becomes non-infringing or, if neither of the foregoing alternatives is reasonably available, terminate this License. Notwithstanding the foregoing, Infragistics shall have no liability for any claim to the extent arising from or based on: (a) the combination, operation, or use of the SOFTWARE with any third-party content, software or hardware where an infringement would not exist but for such combination, operation or use, (b) any alteration or modification of the SOFTWARE by any person other than Infragistics, (c) the use of other than the most recent version of the SOFTWARE if the infringement or claim would have been avoided by use of the most recent version, (d) use of the Software in any way not contemplated under this Agreement, or (e) use of any prototypes or developments You make while using the SOFTWARE or the Hosting Services. THE FOREGOING STATES THE ENTIRE OBLIGATION OF INFRAGISTICS AND ITS SUPPLIERS WITH RESPECT TO INFRINGEMENT OF PROPRIETARY RIGHTS, INCLUDING BUT NOT LIMITED TO PATENTS AND COPYRIGHTS. - -XIII. YOUR COVENANTS; WARRANTY DISCLAIMERS. - -A. You represent, warrant and covenant that: (i) all of Your employees, contractors, consultants and agents will abide by the terms of this License; and (ii) You will comply with all applicable laws, regulations, rules, orders and other requirements, now or hereafter in effect, of any applicable governmental authority, in its performance of this License. Notwithstanding any terms to the contrary in this License, You will remain responsible for acts or omissions of all employees, contractors, consultants or agents of Yours to the same extent as if such acts or omissions were undertaken by You. You assume responsibility for the selection of the SOFTWARE to achieve your intended results, and for the installation, use, and results obtained from the SOFTWARE. - -B. The SOFTWARE and the Hosting Services are each provided on an “AS IS” or “AS AVAILABLE” basis without any representations, warranties, covenants or conditions of any kind. Infragistics and its licensors and/or suppliers do not warrant that any of the SOFTWARE or Hosting Services will be free from bugs, errors, or omissions. INFRAGISTICS AND ITS LICENSORS/SUPPLIERS DISCLAIM ANY AND ALL WARRANTIES AND REPRESENTATIONS (EXPRESS OR IMPLIED, ORAL OR WRITTEN) WITH RESPECT TO THE SOFTWARE WHETHER ALLEGED TO ARISE BY OPERATION OF LAW, BY REASON OF CUSTOM OR USAGE IN THE TRADE, BY COURSE OF DEALING OR OTHERWISE, INCLUDING ANY AND ALL (i) WARRANTIES OF MERCHANTABILITY, (ii) WARRANTIES OF FITNESS OR SUITABILITY FOR ANY PURPOSE (WHETHER OR NOT INFRAGISTICS KNOWS, HAS REASON TO KNOW, HAS BEEN ADVISED, OR IS OTHERWISE AWARE OF ANY SUCH PURPOSE), OR (III) WARRANTIES OF NONINFRINGEMENT OR CONDITION OF TITLE. YOU ACKNOWLEDGE AND AGREE THAT YOU HAVE RELIED ON NO SUCH WARRANTIES. - -IX. LIMITATION OF LIABILITIES. - -A. EXCEPT WITH RESPECT TO BREACHES OF SECTION V, IN NO EVENT SHALL INFRAGISTICS OR YOU BE LIABLE TO THE OTHER FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, LOSS OF USE, LOSS OF REVENUE, LOSS OF GOODWILL, OR ANY OTHER LOSS) ARISING OUT OF THE USE OF OR INABILITY TO USE THE SOFTWARE OR THE HOSTING SERVICES, OR IN CONNECTION WITH THIS LICENSE, REGARDLESS OF THE FORM OF ACTION, WHETHER IN CONTRACT, TORT, STRICT LIABILITY OR OTHERWISE, EVEN IF INFRAGISTICS OR YOU, AS THE CASE MAY BE, HAS BEEN ADVISED OR IS OTHERWISE AWARE OF THE POSSIBILITY OF SUCH DAMAGES. - -B. INFRAGISTICS’ SHALL HAVE NO LIABILITY TO YOU ARISING OUT OF OR UNDER THIS AGREEMENT, WHETHER IN CONTRACT, TORT (INCLUDING WITHOUT LIMITATION NEGLIGENCE), STRICT LIABILITY OR ANY OTHER LEGAL THEORY, EXCEPT FOR THE INDEMNIFICATION OBLIGATION SET FORTH IN SECTION VII(B). THE LIMITATIONS SET FORTH IN THIS SECTION SHALL APPLY EVEN IF INFRAGISTICS IS ADVISED OF THE POSSIBILITY OF SUCH DAMAGE, AND NOTWITHSTANDING THE ABSENCE OF A REMEDY. - -C. Some states and jurisdictions do not allow the exclusion or limitation of liability for consequential or incidental damages, or the exclusion of implied warranties, so the limitations in Section VIII(B) and Section IX(A) may not apply. - -X. U.S. EXPORT REGULATIONS. - -U.S. law prohibits Infragistics, its licensees and resellers from exporting its products to, or supporting customers or resellers in, certain countries. For specific questions regarding export regulations, please visit the Bureau of Industry and Security web site at http://www.bis.doc.gov. - -The SOFTWARE and the underlying information and technology may not be downloaded or otherwise exported or re-exported (i) into (or to a national or resident of) Cuba, Iraq, Libya, North Korea, Iran, Syria or any other country to which the U.S. has embargoed goods; or (ii) to anyone on the U.S. Treasury Department’s list of Specially Designated Nationals or the U.S. Commerce Department’s Table of Deny Orders. By downloading or using the SOFTWARE, You are agreeing to the foregoing and You represent and warrant that You are not located in, under the control of, or a national or resident of any such country or on any such list. - -XI. U.S. GOVERNMENT RESTRICTED RIGHTS. - -If You are acquiring the SOFTWARE on behalf of any unit or agency of the United States Government (collectively, the “Government”), the following provisions apply: - -The Government agrees: (i) if supplied to the Department of Defense (DoD), the SOFTWARE is "Commercial Computer Software" and the Government acquires the SOFTWARE with "restricted rights," as defined in Clause 252.227-7013(c)(1) of the DFARS; (ii) if the SOFTWARE is supplied to any other Government unit or agency, the Government’s rights in the SOFTWARE are defined in Clause 52.227-19(c)(2) of the FAR; but if the SOFTWARE is supplied to NASA, the Government's rights are defined in Clause 18-52.227-86(d) of the NASA supplement to the FAR. Manufacturer is Infragistics, Inc., 2 Commerce Drive, Cranbury, NJ 08512. - -XII. THIRD PARTY COMPONENTS. - -The SOFTWARE may include certain third party components. These third party components are provided "AS IS", without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the third party components or the use of these components. - -XIII. MISCELLANEOUS. - -This License is governed by, and shall be construed in accordance with the laws of the State of New Jersey as applied to agreements entered into and to be performed entirely within New Jersey. Any suit, action or other proceeding arising out of this License or any transaction contemplated hereby shall be submitted to the exclusive jurisdiction of the United States District Court for New Jersey or any New Jersey State court and You unconditionally waive any objection to the laying of venue of any such action, suit or proceeding in such courts and further irrevocably and unconditionally waive and agree not to plead or claim in any such court that any such action, suit or proceeding brought in such court has been brought in an inconvenient forum. This License is the entire agreement between You and Infragistics regarding the subject matter hereof and supersedes all other agreements between us, whether written or oral, relating to this subject matter hereof. In the event of a conflict between this License and any terms of service or other information on the Infragistics web-site, this License will prevail. You may not transfer Your rights under this License to any third party. If any provision of this License is invalid, illegal, or incapable of being enforced by any rule of law or public policy, all other provisions of this License will nonetheless remain in full force and effect. \ No newline at end of file From 27e84662c42fdaee5d19ece191dbd8828987534e Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Thu, 3 Jul 2025 10:30:58 +0300 Subject: [PATCH 85/90] Delete IgniteUI.png --- IgniteUI.png | Bin 11997 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 IgniteUI.png diff --git a/IgniteUI.png b/IgniteUI.png deleted file mode 100644 index a00d62de8fd25a2988b7151ddc0656782a0de72f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11997 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 Date: Thu, 3 Jul 2025 10:32:07 +0300 Subject: [PATCH 86/90] Upload ignite ui icon --- IgniteUI.png | Bin 0 -> 6387 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 IgniteUI.png diff --git a/IgniteUI.png b/IgniteUI.png new file mode 100644 index 0000000000000000000000000000000000000000..20091a4b010c168b9a145de50c2d944db149efdf GIT binary patch literal 6387 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 literal 0 HcmV?d00001 From 4c6b5e42884ac84e4da44921e6ae991008d64189 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Thu, 3 Jul 2025 14:53:39 +0300 Subject: [PATCH 87/90] Stop using git version --- azure-pipelines/build-and-publish.yml | 39 +++++++++++++++++---------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/azure-pipelines/build-and-publish.yml b/azure-pipelines/build-and-publish.yml index 988ed2d..90c06d5 100644 --- a/azure-pipelines/build-and-publish.yml +++ b/azure-pipelines/build-and-publish.yml @@ -15,6 +15,8 @@ variables: value: $[counter(variables['prId'], 1)] - name: buildConfiguration value: Release +- name: releaseTag + value: $[replace(variables['Build.SourceBranch'], 'refs/tags/', '')] stages: - stage: BuildAndPublish @@ -33,23 +35,32 @@ stages: packageType: 'sdk' version: '9.x' - - task: GitVersion@5 - inputs: - versionSpec: '5.x' - name: gitVersion + # - task: GitVersion@5 + # inputs: + # versionSpec: '5.x' + # name: gitVersion - task: DownloadSecureFile@1 name: cert inputs: secureFile: 'code-signing-certificate-2023-2026.pfx' + # - task: DotNetCoreCLI@2 + # displayName: 'Build Project' + # inputs: + # command: 'build' + # projects: 'Infragistics.QueryBuilder.Executor.csproj' + # arguments: '-c $(buildConfiguration) /p:Version=$(GitVersion.NuGetVersionV2)' + # workingDirectory: '$(Build.SourcesDirectory)' + - task: DotNetCoreCLI@2 displayName: 'Build Project' inputs: command: 'build' projects: 'Infragistics.QueryBuilder.Executor.csproj' - arguments: '-c $(buildConfiguration) /p:Version=$(GitVersion.NuGetVersionV2)' - workingDirectory: '$(Build.SourcesDirectory)' + arguments: > + -c $(buildConfiguration) + /p:Version=$(releaseTag) - powershell: | $outputDir = "$(Build.SourcesDirectory)\bin\$(buildConfiguration)\net9.0" @@ -86,7 +97,7 @@ stages: - powershell: | $packageOutputDir = "$(Build.ArtifactStagingDirectory)\nuget" - $packageVersion = "$(GitVersion.NuGetVersionV2)" + $packageVersion = $(releaseTag) Write-Host "Packing project from existing build output..." dotnet pack ./Infragistics.QueryBuilder.Executor.csproj ` @@ -117,10 +128,10 @@ stages: publishLocation: 'Container' displayName: 'Publish NuGet Package as Build Artifact' - - task: NuGetCommand@2 - inputs: - command: 'push' - packagesToPush: '$(Build.ArtifactStagingDirectory)/nuget/*.nupkg' - nuGetFeedType: 'external' - publishFeedCredentials: 'NuGet.Org' - displayName: 'Publish to NuGet.org' + # - task: NuGetCommand@2 + # inputs: + # command: 'push' + # packagesToPush: '$(Build.ArtifactStagingDirectory)/nuget/*.nupkg' + # nuGetFeedType: 'external' + # publishFeedCredentials: 'NuGet.Org' + # displayName: 'Publish to NuGet.org' From 47912619e49f5710621e25d4c5bc36ed46039595 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Thu, 3 Jul 2025 15:03:54 +0300 Subject: [PATCH 88/90] Publish nuget package --- azure-pipelines/build-and-publish.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/azure-pipelines/build-and-publish.yml b/azure-pipelines/build-and-publish.yml index 90c06d5..fbaf824 100644 --- a/azure-pipelines/build-and-publish.yml +++ b/azure-pipelines/build-and-publish.yml @@ -128,10 +128,10 @@ stages: publishLocation: 'Container' displayName: 'Publish NuGet Package as Build Artifact' - # - task: NuGetCommand@2 - # inputs: - # command: 'push' - # packagesToPush: '$(Build.ArtifactStagingDirectory)/nuget/*.nupkg' - # nuGetFeedType: 'external' - # publishFeedCredentials: 'NuGet.Org' - # displayName: 'Publish to NuGet.org' + - task: NuGetCommand@2 + inputs: + command: 'push' + packagesToPush: '$(Build.ArtifactStagingDirectory)/nuget/*.nupkg' + nuGetFeedType: 'external' + publishFeedCredentials: 'NuGet.Org' + displayName: 'Publish to NuGet.org' From 58b3a15d1c3f76a79d48456b82f085ace2cdfc16 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Thu, 3 Jul 2025 15:08:53 +0300 Subject: [PATCH 89/90] quotes around releaseTag --- azure-pipelines/build-and-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines/build-and-publish.yml b/azure-pipelines/build-and-publish.yml index fbaf824..87a5a28 100644 --- a/azure-pipelines/build-and-publish.yml +++ b/azure-pipelines/build-and-publish.yml @@ -97,7 +97,7 @@ stages: - powershell: | $packageOutputDir = "$(Build.ArtifactStagingDirectory)\nuget" - $packageVersion = $(releaseTag) + $packageVersion = "$(releaseTag)" Write-Host "Packing project from existing build output..." dotnet pack ./Infragistics.QueryBuilder.Executor.csproj ` From 72af1ed30b69196871c1350abb7b3785794c6721 Mon Sep 17 00:00:00 2001 From: rstratkovinfrag Date: Thu, 3 Jul 2025 15:19:06 +0300 Subject: [PATCH 90/90] Use cleaner SourceBranchName --- azure-pipelines/build-and-publish.yml | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/azure-pipelines/build-and-publish.yml b/azure-pipelines/build-and-publish.yml index 87a5a28..4426eaa 100644 --- a/azure-pipelines/build-and-publish.yml +++ b/azure-pipelines/build-and-publish.yml @@ -16,7 +16,7 @@ variables: - name: buildConfiguration value: Release - name: releaseTag - value: $[replace(variables['Build.SourceBranch'], 'refs/tags/', '')] + value: $(Build.SourceBranchName) stages: - stage: BuildAndPublish @@ -35,24 +35,11 @@ stages: packageType: 'sdk' version: '9.x' - # - task: GitVersion@5 - # inputs: - # versionSpec: '5.x' - # name: gitVersion - - task: DownloadSecureFile@1 name: cert inputs: secureFile: 'code-signing-certificate-2023-2026.pfx' - # - task: DotNetCoreCLI@2 - # displayName: 'Build Project' - # inputs: - # command: 'build' - # projects: 'Infragistics.QueryBuilder.Executor.csproj' - # arguments: '-c $(buildConfiguration) /p:Version=$(GitVersion.NuGetVersionV2)' - # workingDirectory: '$(Build.SourcesDirectory)' - - task: DotNetCoreCLI@2 displayName: 'Build Project' inputs: