diff --git a/.github/actions/dotnet-affected/Find-AffectedProjects.Tests.ps1 b/.github/actions/dotnet-affected/Find-AffectedProjects.Tests.ps1 new file mode 100644 index 00000000..43beee9a --- /dev/null +++ b/.github/actions/dotnet-affected/Find-AffectedProjects.Tests.ps1 @@ -0,0 +1,54 @@ +Describe "Find-AffectedProjects" { + BeforeAll { + . $PSScriptRoot/Find-AffectedProjects.ps1 + } + + Context "When no hosts are affected" { + + It 'should return nothing' { + $affectedProjectsJson = "[]" + + $hostNamesJson = "{ + 'foo': 'Bar.csproj', + 'bar': 'FooBar.csproj' + }" + + $expectedResult = "{ + 'foo': '', + 'bar': '' + }" | ConvertFrom-Json | ConvertTo-Json -Compress + + $affectedHosts = Find-AffectedHosts -AffectedProjects $affectedProjectsJson -HostNames $hostNamesJson + $affectedHosts | Should -Be $expectedResult + } + } + + Context "When one host is affected by changes" { + + It 'should return nothing' { + $affectedProjectsJson = "[ + { + 'Name': 'Bar', + 'Filepath': 'source/somePath/Bar.csproj' + }, + { + 'Name': 'BarBaz', + 'Filepath': 'source/somePath/BarBaz.csproj' + } + ]" + + $hostNamesJson = "{ + 'foo': 'Bar.csproj', + 'bar': 'FooBar.csproj' + }" + + $expectedResult = "{ + 'foo': 'true', + 'bar': '' + }" | ConvertFrom-Json | ConvertTo-Json -Compress + + $affectedHosts = Find-AffectedHosts -AffectedProjects $affectedProjectsJson -HostNames $hostNamesJson + $affectedHosts | Should -Be $expectedResult + } + } +} \ No newline at end of file diff --git a/.github/actions/dotnet-affected/Find-AffectedProjects.ps1 b/.github/actions/dotnet-affected/Find-AffectedProjects.ps1 new file mode 100644 index 00000000..aa4d72a5 --- /dev/null +++ b/.github/actions/dotnet-affected/Find-AffectedProjects.ps1 @@ -0,0 +1,60 @@ +<# +.SYNOPSIS +Find affected hosts given a set of affected .NET project files + +.OUTPUTS +Hostnames that are affected +#> + +function Find-AffectedHosts { + param ( + [Parameter(Mandatory)] + $AffectedProjects, + [Parameter(Mandatory)] + $Hostnames + ) + + $hostnamesOutput = ($hostNames | ConvertFrom-Json) + + foreach ($hostName in ($Hostnames | ConvertFrom-Json)) { + foreach ($project in $hostname.PSObject.Properties) { + $hostnamesOutput.$($project.Name) = '' + + foreach ($csprojFile in $project.Value) { + foreach ($affectedProjectFilePath in ($affectedProjects | ConvertFrom-Json).Filepath) { + if ($affectedProjectFilePath.Contains($csprojFile)) { + + # No less than 4 foreach loops, I know... + Write-Host "$($project.Name) is affected by a change in $affectedProjectFilePath" + $hostnamesOutput.$($project.Name) = 'true' + } + } + } + } + } + + return $hostnamesOutput | ConvertTo-Json -Compress +} + +<# +.SYNOPSIS + +Install and run dotnet-affected +#> +function Write-AffectedProjectsFile { + param ( + [Parameter(Mandatory)] + $SolutionPath, + [Parameter(Mandatory)] + $WorkspacePath, + [Parameter(Mandatory)] + $FromSha, + [Parameter(Mandatory)] + $ToSha + ) + + dotnet tool install dotnet-affected --global + Write-Host "dotnet affected --solution-path $solutionPath -p $workspacePath --from $fromSha --to $toSha --format traversal json" + + dotnet affected --solution-path $solutionPath -p $workspacePath --from $fromSha --to $toSha --format traversal json +} \ No newline at end of file diff --git a/.github/actions/dotnet-affected/action.yml b/.github/actions/dotnet-affected/action.yml new file mode 100644 index 00000000..784f8200 --- /dev/null +++ b/.github/actions/dotnet-affected/action.yml @@ -0,0 +1,85 @@ +# Copyright 2020 Energinet DataHub A/S +# +# Licensed under the Apache License, Version 2.0 (the "License2"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: Find affected .NET projects +description: Find affected .NET projects in a solution + +inputs: + solution_file: + description: The path to the solution file + required: true + workspace_path: + description: The path to the workspace + required: true + from_sha: + description: The commit SHA to compare from + required: true + to_sha: + description: The commit SHA to compare to + required: true + host_names: + description: Host names mapped to project names + required: true + print_debug_output: + description: Enable debug logging + required: false + default: "false" +outputs: + affected_changes: + description: The affected projects, if any + value: ${{ steps.filter.outputs.affected_changes }} + job_context: + description: The job context output, if any + value: ${{ steps.filter.outputs.job_context }} + +runs: + using: composite + steps: + - name: Find affected projects + shell: pwsh + id: filter + run: | + . ${{ github.action_path }}/Find-AffectedProjects.ps1 + + $hostNamesJson = "${{ inputs.host_names }}" + $solutionPath = "${{github.workspace}}/${{inputs.solution_file}}" + $workspacePath = "${{github.workspace}}" + $fromSha = "${{ inputs.from_sha }}" + $toSha = "${{ inputs.to_sha}}" + $affectedProjectsFile = 'affected.json' + + # Install and run dotnet-affected, outputs a json file with affected projects + Write-AffectedProjectsFile -SolutionPath $solutionPath -WorkspacePath $workspacePath -FromSha $fromSha -ToSha $toSha + + if (Test-Path $AffectedProjectsFile) { + $affectedJson = Get-Content $AffectedProjectsFile + "affected_changes=$affectedJson" >> $env:GITHUB_OUTPUT + + $job_context_output = Find-AffectedHosts -AffectedProjects $affectedJson -HostNames $hostNamesJson + "job_context=$job_context_output" >> $env:GITHUB_OUTPUT + } else { + # See https://github.com/leonardochaia/dotnet-affected?tab=readme-ov-file#dont-buildtestdeploy-when-no-projects-have-changed for details + if ($LASTEXITCODE -eq 166) { + exit 0 + } + } + + - name: Print debug output + shell: bash + if: ${{ inputs.print_debug_output == 'true' }} + run: | + echo "Debug output:" + echo Affected projects: '${{ steps.filter.outputs.affected_changes }}' + echo '' + echo Job context: '${{ steps.filter.outputs.job_context }}' diff --git a/.github/workflows/ci-dotnet-runtests.yml b/.github/workflows/ci-dotnet-runtests.yml new file mode 100644 index 00000000..49fea2a5 --- /dev/null +++ b/.github/workflows/ci-dotnet-runtests.yml @@ -0,0 +1,147 @@ +# Copyright 2020 Energinet DataHub A/S +# +# Licensed under the Apache License, Version 2.0 (the "License2"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +name: CI dotnet tests + +on: + workflow_call: + inputs: + affected_changes: + description: Affected projects + required: true + type: string + print_debug_output: + description: Enable debug logging + required: false + type: string + nuget_cache_key_prefix: + description: Cache key prefix + required: false + type: string + default: nuget-pr${{ github.event.pull_request.number }} + dotnet_version: + description: The version of dotnet to use + required: false + type: string + default: net8.0 + +jobs: + build_matrix: + name: Build matrix + runs-on: ubuntu-latest + outputs: + matrix_builds: ${{ steps.set-matrix.outputs.matrix_builds }} + matrix_tests: ${{ steps.set-matrix.outputs.matrix_tests }} + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Find testprojects in affected projects + id: set-matrix + shell: pwsh + run: | + $affectedProjects = '${{ inputs.affected_changes }}' | ConvertFrom-Json + + # I couldn't find a better way to lowercase keys in a hashtable + $matrixBuilds = @() + + foreach ($project in $affectedProjects) { + if ($project.Name -like '*Tests*') { + $matrixBuilds += [PSCustomObject]@{ + name = $project.Name + filepath = $project.FilePath + assembly_name = "Energinet.DataHub.$($project.Name).dll" + dotnet_version = "${{ inputs.dotnet_version }}" + } + } + } + + $matrixBuildsJson = $matrixBuilds | ConvertTo-Json -Compress + "matrix_builds=$matrixBuildsJson" >> $env:GITHUB_OUTPUT + + print_matrix: + if: ${{ inputs.print_debug_output == 'true' }} + name: Print matrix + runs-on: ubuntu-latest + needs: build_matrix + steps: + - name: Print + shell: pwsh + run: | + Write-Host 'Print matrix' + $matrixBuilds = '${{needs.build_matrix.outputs.matrix_builds}}' | ConvertFrom-Json | ConvertTo-Json + Write-Host $matrixBuilds + + # build_tests_in_project: + # name: Build ${{ matrix.project.name }} + # runs-on: ubuntu-latest + # needs: build_matrix + # strategy: + # fail-fast: false + # matrix: + # project: ${{fromJson(needs.build_matrix.outputs.matrix_builds)}} + # env: + # OUTPUT_PATH: ${{ github.workspace }}/source/${{ matrix.project.name}}/bin/Release/${{matrix.project.dotnet_version}} + # steps: + # - name: Checkout repository + # uses: actions/checkout@v4 + + # - uses: actions/cache@v4 + # with: + # path: ~/.nuget/packages + # key: ${{ inputs.nuget_cache_key_prefix }}-${{ runner.os }}-${{ hashFiles('**/*.csproj') }} + + # - name: Build ${{ matrix.project.name }} + # run: | + # dotnet publish \ + # '${{ matrix.project.filepath }}' \ + # --configuration Release \ + # --output '${{ env.OUTPUT_PATH }}' \ + # -p:ErrorOnDuplicatePublishOutputFiles=false # To avoid the error "Found multiple publish output files with the same relative path" + + # # ls ${{ env.OUTPUT_PATH}} + + # - uses: actions/upload-artifact@v4 + # with: + # retention-days: 2 + # name: pm-tests-${{ matrix.project.name }}-${{ github.event.pull_request.number }} + # path: ${{ env.OUTPUT_PATH }}/* + + integration_tests: + needs: [ + build_matrix + ] + strategy: + fail-fast: false + matrix: + project: ${{fromJson(needs.build_matrix.outputs.matrix_builds)}} + uses: Energinet-DataHub/.github/.github/workflows/dotnet-postbuild-test-monorepo.yml@v14 + with: + azure_integrationtest_tenant_id: ${{ vars.integration_test_azure_tenant_id }} + azure_integrationtest_subscription_id: ${{ vars.integration_test_azure_subscription_id }} + azure_integrationtest_spn_id: ${{ vars.integration_test_azure_spn_id_oidc }} + azure_keyvault_url: ${{ vars.integration_test_azure_keyvault_url }} + environment: AzureAuth + run_integration_tests: true + tests_filter_expression: empty # Means skip. + use_azure_functions_tools: true + aspnetcore_test_contentroot_variable_name: empty + aspnetcore_test_contentroot_variable_value: empty + solution_file_path: source\ProcessManager.sln + nuget_cache_key_prefix: ${{ inputs.nuget_cache_key_prefix }} + + # Matrix parameters + testproject_artifact_name: pm-tests-${{ matrix.project.name }}-${{ github.event.pull_request.number }} + testproject_name: ${{ matrix.project.name }} + tests_dll_file_path: \source\${{ matrix.project.name}}\bin\Release\${{matrix.project.dotnet_version}}\${{ matrix.project.assembly_name }} diff --git a/.github/workflows/ci-dotnet.yml b/.github/workflows/ci-dotnet.yml index a217a34a..56778114 100644 --- a/.github/workflows/ci-dotnet.yml +++ b/.github/workflows/ci-dotnet.yml @@ -15,53 +15,60 @@ name: CI dotnet on: - workflow_call: {} + workflow_call: + inputs: + release_name: + description: The name of the artifact + required: true + type: string + project_file: + description: The context of the job + type: string + required: true + nuget_cache_key_prefix: + description: Cache key prefix + required: false + type: string + default: nuget-pr${{ github.event.pull_request.number }} jobs: - # Build all projects within solution - dotnet_ci_build: - uses: Energinet-DataHub/.github/.github/workflows/dotnet-build-prerelease.yml@v14 - with: - solution_file_path: source/ProcessManager.sln + build_artifact: + name: Build ${{ inputs.release_name }} + runs-on: ubuntu-latest + env: + RELEASE_FOLDER_PATH: ${{ github.workspace }}/output + RELEASE_VERSION: ${{ inputs.release_name }}_${{ github.event.pull_request.number }} + steps: + - name: Checkout repository + uses: actions/checkout@v4 - # Tests that require the integration test environment - # DO NOT add ProcessManager.Client tests, they must be executed as part of the "publish" workflow" - integration_tests: - strategy: - fail-fast: false - matrix: - tests_filter_expression: - - name: ProcessManager Tests - paths: \source\ProcessManager.Tests\bin\Release\net8.0\Energinet.DataHub.ProcessManager.Tests.dll - filter: empty # Means skip - use_azure_functions_tools: true - contentroot_variable_name: empty # Means skip + - uses: actions/cache@v4 + with: + path: ~/.nuget/packages + key: ${{ inputs.nuget_cache_key_prefix }}-${{ runner.os }}-${{ hashFiles('**/*.csproj') }} - - name: ProcessManager Orchestrations Tests - paths: \source\ProcessManager.Orchestrations.Tests\bin\Release\net8.0\Energinet.DataHub.ProcessManager.Orchestrations.Tests.dll - filter: empty # Means skip - use_azure_functions_tools: true - contentroot_variable_name: empty # Means skip + - name: Build ${{ inputs.release_name }} + run: | + dotnet publish \ + '${{ github.workspace }}/${{ inputs.project_file }}' \ + --configuration Release \ + --output '${{ env.RELEASE_FOLDER_PATH }}' - - name: ProcessManager Core Tests - paths: \source\ProcessManager.Core.Tests\bin\Release\net8.0\Energinet.DataHub.ProcessManager.Core.Tests.dll - filter: empty # Means skip - use_azure_functions_tools: true - contentroot_variable_name: empty # Means skip + - name: Zip files for prerelease + if: ${{ github.event_name == 'pull_request' }} + uses: thedoctor0/zip-release@0.6.2 + with: + type: zip + filename: ${{ env.RELEASE_VERSION }}.zip + directory: ${{ env.RELEASE_FOLDER_PATH }} - uses: Energinet-DataHub/.github/.github/workflows/dotnet-postbuild-test.yml@v14 - with: - download_attempt_limit: 20 - azure_integrationtest_tenant_id: ${{ vars.integration_test_azure_tenant_id }} - azure_integrationtest_subscription_id: ${{ vars.integration_test_azure_subscription_id }} - azure_integrationtest_spn_id: ${{ vars.integration_test_azure_spn_id_oidc }} - azure_keyvault_url: ${{ vars.integration_test_azure_keyvault_url }} - environment: AzureAuth - run_integration_tests: true - # Matrix parameters - job_name: ${{ matrix.tests_filter_expression.name }} - tests_dll_file_path: ${{ matrix.tests_filter_expression.paths }} - tests_filter_expression: ${{ matrix.tests_filter_expression.filter }} - use_azure_functions_tools: ${{ matrix.tests_filter_expression.use_azure_functions_tools }} - aspnetcore_test_contentroot_variable_name: ${{ matrix.tests_filter_expression.contentroot_variable_name }} - aspnetcore_test_contentroot_variable_value: ${{ matrix.tests_filter_expression.contentroot_variable_value }} + - name: Create pre-release + if: ${{ github.event_name == 'pull_request' }} + uses: Energinet-Datahub/.github/.github/actions/github-create-release@v14 + with: + repo_token: ${{ github.token }} + automatic_release_tag: ${{ env.RELEASE_VERSION }} + prerelease: true + title: ${{ env.RELEASE_VERSION }} + files: | + ${{ env.RELEASE_FOLDER_PATH }}/${{ env.RELEASE_VERSION }}.zip diff --git a/.github/workflows/ci-orchestrator.yml b/.github/workflows/ci-orchestrator.yml index d70c634c..f05a1181 100644 --- a/.github/workflows/ci-orchestrator.yml +++ b/.github/workflows/ci-orchestrator.yml @@ -11,7 +11,7 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -name: CI orchestrator +name: CI orchestrator (mono-repo) on: pull_request: @@ -32,17 +32,55 @@ jobs: # changes: uses: ./.github/workflows/detect-changes.yml + with: + solution_file: source/ProcessManager.sln + hostnames: " + { + 'core': 'ProcessManager.csproj', + 'orchestrations': 'ProcessManager.Orchestrations.csproj', + 'dbmigrations': 'ProcessManager.DatabaseMigration.csproj' + }" - ci_dotnet: + ci_nuget: + needs: changes + if: ${{ needs.changes.outputs.nuget_packages == 'true' }} + uses: ./.github/workflows/processmanager-client-bundle-publish.yml + name: Build NuGet packages + secrets: inherit + + ci_core: + if: ${{ fromJson(needs.changes.outputs.job_context).core == 'true' }} needs: changes - if: ${{ needs.changes.outputs.dotnet == 'true' || needs.changes.outputs.db_migrations == 'true' }} uses: ./.github/workflows/ci-dotnet.yml + name: Build Core + with: + release_name: process_manager_core + project_file: source/ProcessManager/ProcessManager.csproj - ci_processmanager_nuget: + ci_orchestrations: + if: ${{ fromJson(needs.changes.outputs.job_context).orchestrations == 'true' }} needs: changes - if: ${{ needs.changes.outputs.processmanager_nuget == 'true' }} - uses: ./.github/workflows/processmanager-client-bundle-publish.yml - secrets: inherit + uses: ./.github/workflows/ci-dotnet.yml + name: Build Orchestrations + with: + release_name: process_manager_orchestrations + project_file: source/ProcessManager.Orchestrations/ProcessManager.Orchestrations.csproj + + ci_dbmigrations: + if: ${{ fromJson(needs.changes.outputs.job_context).dbmigrations == 'true' }} + needs: changes + uses: ./.github/workflows/ci-dotnet.yml + name: Build database migrations + with: + release_name: process_manager_dbmigrations + project_file: source/ProcessManager.DatabaseMigration/ProcessManager.DatabaseMigration.csproj + + ci_run_tests: + needs: changes + uses: ./.github/workflows/ci-dotnet-runtests.yml + name: Run tests + with: + affected_changes: ${{ needs.changes.outputs.affected_changes }} # # Branch policy status check @@ -53,8 +91,12 @@ jobs: needs: [ ci_base, - ci_dotnet, - ci_processmanager_nuget, + changes, + ci_nuget, + ci_core, + ci_orchestrations, + ci_dbmigrations, + ci_run_tests ] if: | always() diff --git a/.github/workflows/detect-changes.yml b/.github/workflows/detect-changes.yml index 7e121d55..34e123f4 100644 --- a/.github/workflows/detect-changes.yml +++ b/.github/workflows/detect-changes.yml @@ -22,53 +22,60 @@ name: Detect changes on: workflow_call: + inputs: + solution_file: + required: true + type: string + hostnames: + required: true + type: string + print_debug_output: + required: false + type: string outputs: - dotnet: - value: ${{ jobs.changes.outputs.dotnet }} - db_migrations: - value: ${{ jobs.changes.outputs.db_migrations }} - processmanager_nuget: - value: ${{ jobs.changes.outputs.processmanager_nuget }} - render_c4model_views: - value: ${{ jobs.changes.outputs.render_c4model_views }} + nuget_packages: + value: ${{ jobs.changes.outputs.nuget_packages }} + affected_changes: + value: ${{ jobs.changes.outputs.affected_changes }} + job_context: + value: ${{ jobs.changes.outputs.job_context }} jobs: changes: - name: Determine relevant jobs + name: Detect changes runs-on: ubuntu-latest - # Set job outputs to values from filter step outputs: - dotnet: ${{ steps.filter.outputs.dotnet }} - db_migrations: ${{ steps.filter.outputs.db_migrations }} - processmanager_nuget: ${{ steps.filter.outputs.processmanager_nuget }} - render_c4model_views: ${{ steps.filter.outputs.render_c4model_views }} + nuget_packages: ${{ steps.filter_nuget.outputs.nuget_packages }} + affected_changes: ${{ steps.filter.outputs.affected_changes }} + job_context: ${{ steps.filter.outputs.job_context }} steps: - # For pull requests it's not necessary to checkout the code because GitHub REST API is used to determine changes - - name: Checkout repository - if: ${{ github.event_name != 'pull_request' }} - uses: actions/checkout@v4 + - uses: actions/checkout@v4 + with: + fetch-depth: 0 # Fetch all history so that we can determine the base commit - - name: Detect file changes - uses: dorny/paths-filter@v3 + - uses: nrwl/nx-set-shas@v4 + id: set_shas + + - name: Run dotnet-affected + uses: ./.github/actions/dotnet-affected id: filter + with: + solution_file: ${{ inputs.solution_file }} + workspace_path: ${{ github.workspace }} + from_sha: ${{ steps.set_shas.outputs.base }} + to_sha: ${{ steps.set_shas.outputs.head }} + host_names: ${{ inputs.hostnames }} + print_debug_output: ${{ inputs.print_debug_output }} + + - name: Detect Nuget changes + uses: dorny/paths-filter@v3 + id: filter_nuget with: filters: | - dotnet: - - '.github/actions/dotnet-*/**' - - '.github/workflows/**' - - 'source/**' - - 'source/!(DatabaseMigration/**)**' - - 'source/!(ProcessManager.Client/**)**' - db_migrations: - - 'source/DatabaseMigration/**' - processmanager_nuget: + nuget_packages: - 'docs/ProcessManager.Client/**' - 'docs/ProcessManager.Orchestrations.Abstractions/**' - 'source/ProcessManager.Client*/**' - 'source/ProcessManager.Abstractions*/**' - 'source/ProcessManager.Orchestrations.Abstractions*/**' - '.github/workflows/processmanager-client-bundle-publish.yml' - render_c4model_views: - - 'docs/diagrams/c4-model/views.dsl' - - 'docs/diagrams/c4-model/views.json' - - 'docs/diagrams/c4-model/model.dsl' diff --git a/.github/workflows/processmanager-client-bundle-publish.yml b/.github/workflows/processmanager-client-bundle-publish.yml index 8a5cd29b..850b9f85 100644 --- a/.github/workflows/processmanager-client-bundle-publish.yml +++ b/.github/workflows/processmanager-client-bundle-publish.yml @@ -156,22 +156,3 @@ jobs: content_changed: ${{ steps.changed-content-orchestrations.outputs.any_changed }} nuget_token: ${{ secrets.nuget_token }} nupkg_recurse_path: source/ProcessManager.Orchestrations.Abstractions - - # - # Branch policy status check - # - - allow_merge: - runs-on: ubuntu-latest - needs: [build_and_publish] - if: | - always() - steps: - - name: Verify if merge is allowed - run: | - echo "${{ toJSON(needs) }}" - - if [[ ${{ contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled') }} = true ]]; then - echo "Failed" - exit 1 - fi diff --git a/docs/ProcessManager.Client/ReleaseNotes/ReleaseNotes.md b/docs/ProcessManager.Client/ReleaseNotes/ReleaseNotes.md index eb861d3a..95030b63 100644 --- a/docs/ProcessManager.Client/ReleaseNotes/ReleaseNotes.md +++ b/docs/ProcessManager.Client/ReleaseNotes/ReleaseNotes.md @@ -1,5 +1,9 @@ # ProcessManager.Client Release Notes +## Version 0.14.2 + +- No functional change + ## Version 0.14.1 - Rename service bus client options diff --git a/docs/ProcessManager.Orchestrations.Abstractions/ReleaseNotes/ReleaseNotes.md b/docs/ProcessManager.Orchestrations.Abstractions/ReleaseNotes/ReleaseNotes.md index fc0e6798..2fc7bf02 100644 --- a/docs/ProcessManager.Orchestrations.Abstractions/ReleaseNotes/ReleaseNotes.md +++ b/docs/ProcessManager.Orchestrations.Abstractions/ReleaseNotes/ReleaseNotes.md @@ -1,5 +1,9 @@ # ProcessManager.Orchestrations.Abstractions Release Notes +## Version 0.2.3 + +- No functional change + ## Version 0.2.2 - Change `StartForwardMeteredDataCommandV1` to a `MessageCommand` diff --git a/source/ProcessManager.Abstractions/ProcessManager.Abstractions.csproj b/source/ProcessManager.Abstractions/ProcessManager.Abstractions.csproj index 216ba19c..b0e0ef6e 100644 --- a/source/ProcessManager.Abstractions/ProcessManager.Abstractions.csproj +++ b/source/ProcessManager.Abstractions/ProcessManager.Abstractions.csproj @@ -7,7 +7,7 @@ Energinet.DataHub.ProcessManager.Abstractions - 0.14.1$(VersionSuffix) + 0.14.2$(VersionSuffix) DH3 Process Manager Abstractions library Energinet-DataHub Energinet-DataHub diff --git a/source/ProcessManager.Client/ProcessManager.Client.csproj b/source/ProcessManager.Client/ProcessManager.Client.csproj index ff01460c..699ab84c 100644 --- a/source/ProcessManager.Client/ProcessManager.Client.csproj +++ b/source/ProcessManager.Client/ProcessManager.Client.csproj @@ -7,7 +7,7 @@ Energinet.DataHub.ProcessManager.Client - 0.14.1$(VersionSuffix) + 0.14.2$(VersionSuffix) DH3 Process Manager Client library Energinet-DataHub Energinet-DataHub diff --git a/source/ProcessManager.DatabaseMigration/DbUpgrader.cs b/source/ProcessManager.DatabaseMigration/DbUpgrader.cs index f9b5e320..d088bd83 100644 --- a/source/ProcessManager.DatabaseMigration/DbUpgrader.cs +++ b/source/ProcessManager.DatabaseMigration/DbUpgrader.cs @@ -27,7 +27,7 @@ public static DatabaseUpgradeResult DatabaseUpgrade(string connectionString) EnsureDatabase.For.SqlDatabase(connectionString); // We create the schema in code to ensure we can create the 'SchemaVersions' - // table within the schema. + // table within the schema var schemaName = "pm"; CreateSchema(connectionString, schemaName); diff --git a/source/ProcessManager.Orchestrations.Abstractions/ProcessManager.Orchestrations.Abstractions.csproj b/source/ProcessManager.Orchestrations.Abstractions/ProcessManager.Orchestrations.Abstractions.csproj index e336ae8d..e8442efd 100644 --- a/source/ProcessManager.Orchestrations.Abstractions/ProcessManager.Orchestrations.Abstractions.csproj +++ b/source/ProcessManager.Orchestrations.Abstractions/ProcessManager.Orchestrations.Abstractions.csproj @@ -7,7 +7,7 @@ Energinet.DataHub.ProcessManager.Orchestrations.Abstractions - 0.2.2$(VersionSuffix) + 0.2.3$(VersionSuffix) DH3 Process Manager Orchestrations Abstractions library Energinet-DataHub Energinet-DataHub