diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000..6ffd8213 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,148 @@ +name: Verification Build + +on: + push: + branches: + - develop + pull_request: + types: [opened, synchronize, reopened] + +env: + solution: 'MinoriEditorShell.sln' + buildPlatform: Any CPU + buildConfiguration: Release + +jobs: + build: + name: Build + runs-on: windows-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis + + # if trying to build locally, make sure you have dotnet 3.1, 5.0 installed + # this container should have them pre-installed + + # Needed for sonar analysis, even though java is installed + # sonar will not pick up version 11, so state specifically + # adopt is in tool cache so install should be quidker with it. + - name: Set up JDK 18 + uses: actions/setup-java@v2 + with: + distribution: 'adopt-hotspot' # Cached java + java-version: '18' + + # Install GitVersion + # Requires .NET Core 3.1 + # https://github.com/marketplace/actions/gittools + - name: 'Install GitVersion' + uses: gittools/actions/gitversion/setup@v0 + with: + versionSpec: '5.x' + + - name: Determine Version + id: gitversion + uses: gittools/actions/gitversion/execute@v0 + with: + useConfigFile: true + + - name: Setup MSBuild + uses: microsoft/setup-msbuild@v1 + + - name: Use NuGet > 5.0.0 + uses: nuget/setup-nuget@v1 + + - name: Restore dependencies + run: dotnet restore ${{env.solution}} + + - name: Cache SonarCloud packages + uses: actions/cache@v1 + with: + path: ~\sonar\cache + key: ${{runner.os}}-sonar + restore-keys: ${{runner.os}}-sonar + + - name: Cache SonarCloud scanner + id: cache-sonar-scanner + uses: actions/cache@v1 + with: + path: .\.sonar\scanner + key: ${{runner.os}}-sonar-scanner + restore-keys: ${{runner.os}}-sonar-scanner + + - name: Install SonarCloud scanner + if: steps.cache-sonar-scanner.outputs.cache-hit != 'true' + shell: powershell + run: | + New-Item -Path .\.sonar\scanner -ItemType Directory + dotnet tool update dotnet-sonarscanner --tool-path .\.sonar\scanner + + - name: Prepare Scanner + env: + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} # Needed to get PR information, if any + SONAR_TOKEN: ${{secrets.SONAR_TOKEN}} + shell: powershell + run: > + .\.sonar\scanner\dotnet-sonarscanner + begin /k:"mkromis_MinoriEditorShell" /o:"mkromis" + /d:sonar.token="${{ secrets.SONAR_TOKEN }}" /d:sonar.host.url="https://sonarcloud.io" + /d:sonar.cs.opencover.reportsPaths=**/coverage.opencover.xml + /v:${{steps.gitversion.outputs.semVer}} + + # projects uses GitVersion.MsBuild, so don't neeed to pass version + - name: Build + run: > + dotnet build ${{env.solution}} + --configuration ${{env.buildConfiguration}} --no-restore + -p:Version=${{steps.gitversion.outputs.FullSemVer}} + -p:FileVersion=${{steps.gitversion.outputs.AssemblySemFileVer}} + -p:InformationalVersion=${{steps.gitversion.outputs.InformationalVersion}} + + - name: Create Artifacts + run: | + # Get list of all nupkgs + $nupkgs = Get-ChildItem -Path .\Modules -Filter *.nupkg -Recurse + + $basedir = 'MinoriEditorSystem-' + $env:GitVersion_NuGetVersion + + # Move each item into artifacts + # rm Artifacts -Recurse -Force + mkdir Artifacts\$basedir\Nugets + + # Copy nugets to nuget folder + foreach ($nupkg in $nupkgs) { + $leaf = Split-Path $nupkg -Leaf + $outFile = "Artifacts\$basedir\Nugets\$leaf" + echo $nupkg.FullName ' -> ' $outFile + Copy-Item $nupkg.FullName $outFile + } + + # Copy Demo Folder + #mkdir Artifacts\$basedir\Demos + cp Demos\SimpleDemo\SimpleDemo.WPF\bin\Release\net6.0-windows Artifacts\$basedir\Demos\SimpleDemo.WPF -Recurse + cp Demos\SimpleDemo\SimpleDemo.RibbonWPF\bin\Release\net6.0-windows Artifacts\$basedir\Demos\SimpleDemo.RibbonWPF -Recurse + cp Demos\MinoriDemo\MinoriDemo.WPF\bin\Release\net6.0-windows Artifacts\$basedir\Demos\MinoriDemo.WPF -Recurse + cp Demos\MinoriDemo\MinoriDemo.RibbonWPF\bin\Release\net6.0-windows Artifacts\$basedir\Demos\MinoriDemo.RibbonWPF -Recurse + + # Compress folder into 7z file + cd Artifacts + 7z a "$basedir.7z" $basedir + cd .. + + - name: Test + run: dotnet test ${{env.solution}} --collect:"XPlat Code Coverage" --settings coverlet.runsettings + + - name: Analyze build + env: + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} # Needed to get PR information, if any + SONAR_TOKEN: ${{secrets.SONAR_TOKEN}} + shell: powershell + run: .\.sonar\scanner\dotnet-sonarscanner end /d:sonar.login="${{secrets.SONAR_TOKEN}}" + + - name: Upload Artifact + uses: actions/upload-artifact@v2 + with: + name: MinoriEditorShell + path: Artifacts/*.7z + if-no-files-found: error diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 00000000..aa80e8f7 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,74 @@ +#Note: This is a third party action and currently only supports Linux: https://github.com/marketplace/actions/create-zip-file + +name: ${{ env.GitVersion.NuGetVersion }} + +env: + solution: '**/MinoriEditorShell.sln' + buildPlatform: Any CPU + buildConfiguration: Release + +on: + push: + branches: + - stable +jobs: + build: + runs-on: windows-latest + steps: + - uses: actions/checkout@v2 + - uses: microsoft/setup-msbuild@v1.0.2 + - name: Install GitVersion + uses: gittools/actions/gitversion/setup@v0.9.7 + with: + versionSpec: 5.x + - name: Use NuGet > 5.0.0 + uses: nuget/setup-nuget@v1 + - name: GitVersion + uses: gittools/actions/gitversion/execute@v0.9.7 + with: + updateAssemblyInfo: true + - run: nuget restore ${{env.solution}} + - run: msbuild '${{ env.solution }}' /p:configuration='${{ env.buildConfiguration }}' /p:platform='${{ env.buildPlatform }}' + - name: Copy Nugets to demo folder + run: Copy '${{ env.agent.builddirectory }}/**/*.nupkg' '${{ env.Build.BinariesDirectory }}\Minori-${{ env.GitVersion.NuGetVersion }}\Nugets' + - name: Copy Nuget Files to artifacts + run: Copy '${{ env.agent.builddirectory }}/**/*.nupkg' '${{ github.workspace }}' + + - name: Copy SimpleDemo.WPF Files + run: | + Copy 'Demos/SimpleDemo/SimpleDemo.Wpf/bin/Release/*.exe + *.dll + *\*.dll + ' '${{ env.Build.BinariesDirectory }}/Minori-${{ env.GitVersion.NuGetVersion }}/Demos/SimpleDemo' + + - name: Copy SimpleDemo.RibbonWPF Files + run: | + Copy 'Demos/SimpleDemo/SimpleDemo.RibbonWpf/bin/Release/*.exe + *.dll + */*.dll + ' '${{ env.Build.BinariesDirectory }}/Minori-${{ env.GitVersion.NuGetVersion }}/Demos/SimpleDemo' + + - name: Copy MinoriDemo.WPF Files + run: | + Copy 'Demos/MinoriDemo/MinoriDemo.Wpf/bin/Release/*.exe + *.dll + */*.dll + ' '${{ env.Build.BinariesDirectory }}/Minori-${{ env.GitVersion.NuGetVersion }}/Demos/MinoriDemo' + + - name: Copy MinoriEditorShell.RibbonWPF Files + run: | + Copy 'Demos/MinoriDemo/MinoriDemo.RibbonWpf/bin/Release/*.exe + *.dll + */*.dll + ' '${{ env.Build.BinariesDirectory }}/Minori-${{ env.GitVersion.NuGetVersion }}/Demos/MinoriDemo' + + - # 'Note: This is a third party action and currently only supports Linux: https://github.com/marketplace/actions/create-zip-file' + uses: montudor/action-zip@v0.1.0 + with: + args: zip -qq -r ${{ github.workspace }}/Minori-${{ env.GitVersion.NuGetVersion }}.7z ${{ env.Build.BinariesDirectory }}\Minori-${{ env.GitVersion.NuGetVersion }} + + - uses: actions/upload-artifact@v2 + with: + path: ${{ github.workspace }} + name: drop + \ No newline at end of file diff --git a/.sonarlint/MinoriEditorShell.slconfig b/.sonarlint/MinoriEditorShell.slconfig index 4e0f1215..edbf02e2 100644 --- a/.sonarlint/MinoriEditorShell.slconfig +++ b/.sonarlint/MinoriEditorShell.slconfig @@ -1,12 +1,15 @@ { - "ServerUri": "http://localhost:9000", - "Organization": null, - "ProjectKey": "MinoriEditorShell", + "ServerUri": "https://sonarcloud.io/", + "Organization": { + "Key": "torisankitsune", + "Name": "Mark Kromis" + }, + "ProjectKey": "TorisanKitsune_MinoriEditorShell", "ProjectName": "MinoriEditorShell", "Profiles": { "CSharp": { - "ProfileKey": "AXJr3KqQtbcUywwuo8zS", - "ProfileTimestamp": "2020-05-31T17:52:03Z" + "ProfileKey": "AXHDDFLUVHc24qBALL5K", + "ProfileTimestamp": "2021-05-05T07:40:20Z" } } } \ No newline at end of file diff --git a/.sonarlint/minorieditorshell/CSharp/SonarLint.xml b/.sonarlint/torisankitsune_minorieditorshell/CSharp/SonarLint.xml similarity index 100% rename from .sonarlint/minorieditorshell/CSharp/SonarLint.xml rename to .sonarlint/torisankitsune_minorieditorshell/CSharp/SonarLint.xml diff --git a/.sonarlint/minorieditorshellcsharp.ruleset b/.sonarlint/torisankitsune_minorieditorshellcsharp.ruleset similarity index 96% rename from .sonarlint/minorieditorshellcsharp.ruleset rename to .sonarlint/torisankitsune_minorieditorshellcsharp.ruleset index 64d3f453..f9145a58 100644 --- a/.sonarlint/minorieditorshellcsharp.ruleset +++ b/.sonarlint/torisankitsune_minorieditorshellcsharp.ruleset @@ -1,5 +1,5 @@ - + @@ -26,12 +26,11 @@ - + - @@ -72,7 +71,6 @@ - @@ -88,8 +86,9 @@ - + + @@ -110,7 +109,6 @@ - @@ -118,7 +116,7 @@ - + @@ -153,7 +151,6 @@ - @@ -170,6 +167,7 @@ + @@ -201,6 +199,7 @@ + @@ -239,7 +238,6 @@ - @@ -270,7 +268,7 @@ - + @@ -294,7 +292,7 @@ - + @@ -321,7 +319,6 @@ - @@ -339,9 +336,9 @@ + - @@ -355,9 +352,11 @@ + + diff --git a/Demos/MinoriDemo/MinoriDemo.Core/MinoriDemo.Core.csproj b/Demos/MinoriDemo/MinoriDemo.Core/MinoriDemo.Core.csproj index c0ea1d84..4d2df4d7 100644 --- a/Demos/MinoriDemo/MinoriDemo.Core/MinoriDemo.Core.csproj +++ b/Demos/MinoriDemo/MinoriDemo.Core/MinoriDemo.Core.csproj @@ -1,8 +1,9 @@  - netstandard2.0 - ..\..\..\.sonarlint\minorieditorshellcsharp.ruleset + net6.0 + MinoriDemo.Core.ruleset + latest @@ -12,17 +13,13 @@ - + - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + diff --git a/Demos/MinoriDemo/MinoriDemo.Core/MinoriDemo.Core.ruleset b/Demos/MinoriDemo/MinoriDemo.Core/MinoriDemo.Core.ruleset new file mode 100644 index 00000000..45b67821 --- /dev/null +++ b/Demos/MinoriDemo/MinoriDemo.Core/MinoriDemo.Core.ruleset @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWPF/MinoriDemo.RibbonWPF.csproj b/Demos/MinoriDemo/MinoriDemo.RibbonWPF/MinoriDemo.RibbonWPF.csproj index 9cec42a7..24d6f60e 100644 --- a/Demos/MinoriDemo/MinoriDemo.RibbonWPF/MinoriDemo.RibbonWPF.csproj +++ b/Demos/MinoriDemo/MinoriDemo.RibbonWPF/MinoriDemo.RibbonWPF.csproj @@ -1,39 +1,36 @@  - - WinExe - net5.0-windows - true - ..\..\..\.sonarlint\minorieditorshellcsharp.ruleset - + + WinExe + net6.0-windows + latest + true + MinoriDemo.RibbonWpf.ruleset + - - - + + + - - - + + + - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + + - - - - - - - - + + + + + + + + - - - + + + \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWPF/MinoriDemo.RibbonWpf.ruleset b/Demos/MinoriDemo/MinoriDemo.RibbonWPF/MinoriDemo.RibbonWpf.ruleset new file mode 100644 index 00000000..45b67821 --- /dev/null +++ b/Demos/MinoriDemo/MinoriDemo.RibbonWPF/MinoriDemo.RibbonWpf.ruleset @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.RibbonWpf/MinoriDemo.RibbonWpf.csproj b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/MinoriDemo.RibbonWpf.csproj index 9cec42a7..24d6f60e 100644 --- a/Demos/MinoriDemo/MinoriDemo.RibbonWpf/MinoriDemo.RibbonWpf.csproj +++ b/Demos/MinoriDemo/MinoriDemo.RibbonWpf/MinoriDemo.RibbonWpf.csproj @@ -1,39 +1,36 @@  - - WinExe - net5.0-windows - true - ..\..\..\.sonarlint\minorieditorshellcsharp.ruleset - + + WinExe + net6.0-windows + latest + true + MinoriDemo.RibbonWpf.ruleset + - - - + + + - - - + + + - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + + - - - - - - - - + + + + + + + + - - - + + + \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.WPF/MinoriDemo.WPF.csproj b/Demos/MinoriDemo/MinoriDemo.WPF/MinoriDemo.WPF.csproj index 3e6fd5da..8c72c05b 100644 --- a/Demos/MinoriDemo/MinoriDemo.WPF/MinoriDemo.WPF.csproj +++ b/Demos/MinoriDemo/MinoriDemo.WPF/MinoriDemo.WPF.csproj @@ -1,28 +1,25 @@  - - WinExe - net5.0-windows - true - ..\..\..\.sonarlint\minorieditorshellcsharp.ruleset - + + WinExe + net6.0-windows + latest + true + MinoriDemo.Wpf.ruleset + - - - + + + - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + - - - - - - + + + + + + \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.WPF/MinoriDemo.Wpf.ruleset b/Demos/MinoriDemo/MinoriDemo.WPF/MinoriDemo.Wpf.ruleset new file mode 100644 index 00000000..45b67821 --- /dev/null +++ b/Demos/MinoriDemo/MinoriDemo.WPF/MinoriDemo.Wpf.ruleset @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Demos/MinoriDemo/MinoriDemo.Wpf/MinoriDemo.Wpf.csproj b/Demos/MinoriDemo/MinoriDemo.Wpf/MinoriDemo.Wpf.csproj index 3e6fd5da..8c72c05b 100644 --- a/Demos/MinoriDemo/MinoriDemo.Wpf/MinoriDemo.Wpf.csproj +++ b/Demos/MinoriDemo/MinoriDemo.Wpf/MinoriDemo.Wpf.csproj @@ -1,28 +1,25 @@  - - WinExe - net5.0-windows - true - ..\..\..\.sonarlint\minorieditorshellcsharp.ruleset - + + WinExe + net6.0-windows + latest + true + MinoriDemo.Wpf.ruleset + - - - + + + - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + - - - - - - + + + + + + \ No newline at end of file diff --git a/Demos/SimpleDemo/SimpleDemo.Core/SimpleDemo.Core.csproj b/Demos/SimpleDemo/SimpleDemo.Core/SimpleDemo.Core.csproj index 89c6a581..2f344bdd 100644 --- a/Demos/SimpleDemo/SimpleDemo.Core/SimpleDemo.Core.csproj +++ b/Demos/SimpleDemo/SimpleDemo.Core/SimpleDemo.Core.csproj @@ -1,21 +1,18 @@  - netstandard2.0 - ..\..\..\.sonarlint\minorieditorshellcsharp.ruleset + net6.0 + SimpleDemo.Core.ruleset + latest - + - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + diff --git a/Demos/SimpleDemo/SimpleDemo.Core/SimpleDemo.Core.ruleset b/Demos/SimpleDemo/SimpleDemo.Core/SimpleDemo.Core.ruleset new file mode 100644 index 00000000..45b67821 --- /dev/null +++ b/Demos/SimpleDemo/SimpleDemo.Core/SimpleDemo.Core.ruleset @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Demos/SimpleDemo/SimpleDemo.RibbonWPF/SimpleDemo.RibbonWPF.csproj b/Demos/SimpleDemo/SimpleDemo.RibbonWPF/SimpleDemo.RibbonWPF.csproj index eb29cbfc..45a3d36b 100644 --- a/Demos/SimpleDemo/SimpleDemo.RibbonWPF/SimpleDemo.RibbonWPF.csproj +++ b/Demos/SimpleDemo/SimpleDemo.RibbonWPF/SimpleDemo.RibbonWPF.csproj @@ -1,27 +1,24 @@  - - WinExe - net5.0-windows - true - ..\..\..\.sonarlint\minorieditorshellcsharp.ruleset - + + WinExe + net6.0-windows + latest + true + SimpleDemo.RibbonWpf.ruleset + - - - + + + - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + - - - - - + + + + + \ No newline at end of file diff --git a/Demos/SimpleDemo/SimpleDemo.RibbonWPF/SimpleDemo.RibbonWpf.ruleset b/Demos/SimpleDemo/SimpleDemo.RibbonWPF/SimpleDemo.RibbonWpf.ruleset new file mode 100644 index 00000000..45b67821 --- /dev/null +++ b/Demos/SimpleDemo/SimpleDemo.RibbonWPF/SimpleDemo.RibbonWpf.ruleset @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Demos/SimpleDemo/SimpleDemo.RibbonWpf/SimpleDemo.RibbonWpf.csproj b/Demos/SimpleDemo/SimpleDemo.RibbonWpf/SimpleDemo.RibbonWpf.csproj index eb29cbfc..45a3d36b 100644 --- a/Demos/SimpleDemo/SimpleDemo.RibbonWpf/SimpleDemo.RibbonWpf.csproj +++ b/Demos/SimpleDemo/SimpleDemo.RibbonWpf/SimpleDemo.RibbonWpf.csproj @@ -1,27 +1,24 @@  - - WinExe - net5.0-windows - true - ..\..\..\.sonarlint\minorieditorshellcsharp.ruleset - + + WinExe + net6.0-windows + latest + true + SimpleDemo.RibbonWpf.ruleset + - - - + + + - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + - - - - - + + + + + \ No newline at end of file diff --git a/Demos/SimpleDemo/SimpleDemo.WPF/SimpleDemo.WPF.csproj b/Demos/SimpleDemo/SimpleDemo.WPF/SimpleDemo.WPF.csproj index e1475bf0..bb43d4b6 100644 --- a/Demos/SimpleDemo/SimpleDemo.WPF/SimpleDemo.WPF.csproj +++ b/Demos/SimpleDemo/SimpleDemo.WPF/SimpleDemo.WPF.csproj @@ -1,23 +1,23 @@  - - WinExe - net5.0-windows - true - - - + + WinExe + net6.0-windows + latest + true + ..\..\..\.sonarlint\torisankitsune_minorieditorshellcsharp.ruleset + + + + + - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + - - - - + + + + \ No newline at end of file diff --git a/Demos/SimpleDemo/SimpleDemo.Wpf/SimpleDemo.Wpf.csproj b/Demos/SimpleDemo/SimpleDemo.Wpf/SimpleDemo.Wpf.csproj index e1475bf0..bb43d4b6 100644 --- a/Demos/SimpleDemo/SimpleDemo.Wpf/SimpleDemo.Wpf.csproj +++ b/Demos/SimpleDemo/SimpleDemo.Wpf/SimpleDemo.Wpf.csproj @@ -1,23 +1,23 @@  - - WinExe - net5.0-windows - true - - - + + WinExe + net6.0-windows + latest + true + ..\..\..\.sonarlint\torisankitsune_minorieditorshellcsharp.ruleset + + + + + - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + - - - - + + + + \ No newline at end of file diff --git a/GitVersion.yml b/GitVersion.yml index db85eb37..57f3137c 100644 --- a/GitVersion.yml +++ b/GitVersion.yml @@ -1,4 +1,4 @@ -next-version: 0.4.0 +next-version: 0.9.0 assembly-versioning-scheme: MajorMinorPatch assembly-file-versioning-scheme: MajorMinorPatchTag mode: ContinuousDeployment diff --git a/MinoriEditorShell.sln b/MinoriEditorShell.sln index 46e13fdb..46f2a563 100644 --- a/MinoriEditorShell.sln +++ b/MinoriEditorShell.sln @@ -1,13 +1,15 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.28803.202 +# Visual Studio Version 17 +VisualStudioVersion = 17.8.34511.84 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "!Solution Items", "!Solution Items", "{748FD7C1-877B-451D-809A-68E032C39B34}" ProjectSection(SolutionItems) = preProject .editorconfig = .editorconfig - azure-pipelines.yml = azure-pipelines.yml + .github\workflows\build.yml = .github\workflows\build.yml CHANGELOG.md = CHANGELOG.md + coverlet.runsettings = coverlet.runsettings + .github\workflows\deploy.yml = .github\workflows\deploy.yml GitVersion.yml = GitVersion.yml LICENCE.txt = LICENCE.txt README.md = README.md diff --git a/Modules/MinoriEditorShell.Command/MinoriEditorShell.Command.csproj b/Modules/MinoriEditorShell.Command/MinoriEditorShell.Command.csproj index c99f6ebd..de189530 100644 --- a/Modules/MinoriEditorShell.Command/MinoriEditorShell.Command.csproj +++ b/Modules/MinoriEditorShell.Command/MinoriEditorShell.Command.csproj @@ -30,9 +30,9 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + @@ -53,7 +53,6 @@ - diff --git a/Modules/MinoriEditorShell.History/MinoriEditorShell.History.csproj b/Modules/MinoriEditorShell.History/MinoriEditorShell.History.csproj index c6cb2eed..8fe06cef 100644 --- a/Modules/MinoriEditorShell.History/MinoriEditorShell.History.csproj +++ b/Modules/MinoriEditorShell.History/MinoriEditorShell.History.csproj @@ -30,9 +30,9 @@ runtime; build; native; contentfiles; analyzers; buildtransitive - - - + + + @@ -53,7 +53,6 @@ - diff --git a/Modules/MinoriEditorShell.Platforms.Wpf/MinoriEditorShell.Platforms.Wpf.csproj b/Modules/MinoriEditorShell.Platforms.Wpf/MinoriEditorShell.Platforms.Wpf.csproj index 7d504844..52167986 100644 --- a/Modules/MinoriEditorShell.Platforms.Wpf/MinoriEditorShell.Platforms.Wpf.csproj +++ b/Modules/MinoriEditorShell.Platforms.Wpf/MinoriEditorShell.Platforms.Wpf.csproj @@ -1,54 +1,51 @@  - - netcoreapp3.1;net461 - - MinoriEditorStudio is an application shell similar in concept to the Visual Studio Shell. - This uses AvalonDock and has an MVVM architecture based on MvvmCross. - - Copyright 2019 - https://github.com/TorisanKitsune/MinoriEditorShell - https://github.com/TorisanKitsune/MinoriEditorShell - - git - .net40 netcoreapp WPF MvvmCross AvalonDock Visual Studio IDE Shell - true - Mark Kromis - Mark Kromis - Library - bin\MinoriEditorShell.xml - true - ..\..\.sonarlint\minorieditorshellcsharp.ruleset - + + net6.0-windows + + MinoriEditorStudio is an application shell similar in concept to the Visual Studio Shell. + This uses AvalonDock and has an MVVM architecture based on MvvmCross. + + latest + Copyright 2019-2024 + https://github.com/TorisanKitsune/MinoriEditorShell + https://github.com/TorisanKitsune/MinoriEditorShell + + git + .net40 netcoreapp WPF MvvmCross AvalonDock Visual Studio IDE Shell + true + Mark Kromis + Mark Kromis + Library + bin\MinoriEditorShell.xml + true + MinoriEditorShell.Platforms.Wpf.ruleset + - - - - - - + + + + + + - - - + + + - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - + + - - - - - - + + + + + + - - - - - + + + + + \ No newline at end of file diff --git a/Modules/MinoriEditorShell.Platforms.Wpf/MinoriEditorShell.Platforms.Wpf.ruleset b/Modules/MinoriEditorShell.Platforms.Wpf/MinoriEditorShell.Platforms.Wpf.ruleset new file mode 100644 index 00000000..888ec29a --- /dev/null +++ b/Modules/MinoriEditorShell.Platforms.Wpf/MinoriEditorShell.Platforms.Wpf.ruleset @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Modules/MinoriEditorShell.Ribbon/MinoriEditorShell.Ribbon.csproj b/Modules/MinoriEditorShell.Ribbon/MinoriEditorShell.Ribbon.csproj index 6cd878bc..d63b5750 100644 --- a/Modules/MinoriEditorShell.Ribbon/MinoriEditorShell.Ribbon.csproj +++ b/Modules/MinoriEditorShell.Ribbon/MinoriEditorShell.Ribbon.csproj @@ -1,34 +1,31 @@  - - netcoreapp3.1;net461 - true - Mark Kromis - Mark Kromis - Use a Mahapp.Metro window with Fluent.Ribbon easy - https://github.com/TorisanKitsune/MinoriEditorShell - https://github.com/TorisanKitsune/MinoriEditorShell - Git - Ribbon Mahapp IDE - true - ..\..\.sonarlint\minorieditorshellcsharp.ruleset - + + net6.0-windows + true + Mark Kromis + Mark Kromis + latest + Copyright 2019-2024 + Use a Mahapp.Metro window with Fluent.Ribbon easy + https://github.com/TorisanKitsune/MinoriEditorShell + https://github.com/TorisanKitsune/MinoriEditorShell + Git + Ribbon Mahapp IDE + true + MinoriEditorShell.Ribbon.ruleset + - - - + + + - - - + + + - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + \ No newline at end of file diff --git a/Modules/MinoriEditorShell.Ribbon/MinoriEditorShell.Ribbon.ruleset b/Modules/MinoriEditorShell.Ribbon/MinoriEditorShell.Ribbon.ruleset new file mode 100644 index 00000000..888ec29a --- /dev/null +++ b/Modules/MinoriEditorShell.Ribbon/MinoriEditorShell.Ribbon.ruleset @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Modules/MinoriEditorShell.VirtualCanvas.Platforms.Wpf/MinoriEditorShell.VirtualCanvas.Platforms.Wpf.csproj b/Modules/MinoriEditorShell.VirtualCanvas.Platforms.Wpf/MinoriEditorShell.VirtualCanvas.Platforms.Wpf.csproj index 57651bba..13521a67 100644 --- a/Modules/MinoriEditorShell.VirtualCanvas.Platforms.Wpf/MinoriEditorShell.VirtualCanvas.Platforms.Wpf.csproj +++ b/Modules/MinoriEditorShell.VirtualCanvas.Platforms.Wpf/MinoriEditorShell.VirtualCanvas.Platforms.Wpf.csproj @@ -1,32 +1,30 @@  - - netcoreapp3.1;net461 - true - Mark Kromis - Mark Kromis - Easy Virtual Canvas with zoom - https://github.com/TorisanKitsune/MinoriEditorShell - https://github.com/TorisanKitsune/MinoriEditorShell - Git - IDE VirtualCanvas Module - true - bin\MinoriEditorStudio.VirtualCanvas.xml - true - ..\..\.sonarlint\minorieditorshellcsharp.ruleset - + + net6.0-windows + true + Mark Kromis + Mark Kromis + Copyright 2019-2024 + Easy Virtual Canvas with zoom + https://github.com/TorisanKitsune/MinoriEditorShell + https://github.com/TorisanKitsune/MinoriEditorShell + Git + IDE VirtualCanvas Module + true + bin\MinoriEditorStudio.VirtualCanvas.xml + latest + true + MinoriEditorShell.VirtualCanvas.Platforms.Wpf.ruleset + - - - + + + - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - + + + + + \ No newline at end of file diff --git a/Modules/MinoriEditorShell.VirtualCanvas.Platforms.Wpf/MinoriEditorShell.VirtualCanvas.Platforms.Wpf.ruleset b/Modules/MinoriEditorShell.VirtualCanvas.Platforms.Wpf/MinoriEditorShell.VirtualCanvas.Platforms.Wpf.ruleset new file mode 100644 index 00000000..888ec29a --- /dev/null +++ b/Modules/MinoriEditorShell.VirtualCanvas.Platforms.Wpf/MinoriEditorShell.VirtualCanvas.Platforms.Wpf.ruleset @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Modules/MinoriEditorShell.VirtualCanvas/MinoriEditorShell.VirtualCanvas.csproj b/Modules/MinoriEditorShell.VirtualCanvas/MinoriEditorShell.VirtualCanvas.csproj index 98b697c1..72d22c4d 100644 --- a/Modules/MinoriEditorShell.VirtualCanvas/MinoriEditorShell.VirtualCanvas.csproj +++ b/Modules/MinoriEditorShell.VirtualCanvas/MinoriEditorShell.VirtualCanvas.csproj @@ -1,33 +1,27 @@  - - netstandard2.0 - true - Mark Kromis - Mark Kromis - Easy Virtual Canvas with zoom - https://github.com/TorisanKitsune/MinoriEditorShell - https://github.com/TorisanKitsune/MinoriEditorShell - Git - IDE VirtualCanvas Module - true - bin\MinoriEditorStudio.VirtualCanvas.xml - ..\..\.sonarlint\minorieditorshellcsharp.ruleset - + + net6.0 + true + Mark Kromis + Mark Kromis + latest + Copyright 2019-2024 + Easy Virtual Canvas with zoom + https://github.com/TorisanKitsune/MinoriEditorShell + https://github.com/TorisanKitsune/MinoriEditorShell + Git + IDE VirtualCanvas Module + true + bin\MinoriEditorStudio.VirtualCanvas.xml + MinoriEditorShell.VirtualCanvas.ruleset + - - - + + + - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - + + + \ No newline at end of file diff --git a/Modules/MinoriEditorShell.VirtualCanvas/MinoriEditorShell.VirtualCanvas.ruleset b/Modules/MinoriEditorShell.VirtualCanvas/MinoriEditorShell.VirtualCanvas.ruleset new file mode 100644 index 00000000..888ec29a --- /dev/null +++ b/Modules/MinoriEditorShell.VirtualCanvas/MinoriEditorShell.VirtualCanvas.ruleset @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/Modules/MinoriEditorShell/MinoriEditorShell.csproj b/Modules/MinoriEditorShell/MinoriEditorShell.csproj index dcac1974..c61cf1bd 100644 --- a/Modules/MinoriEditorShell/MinoriEditorShell.csproj +++ b/Modules/MinoriEditorShell/MinoriEditorShell.csproj @@ -1,76 +1,72 @@  - - netstandard2.0 - - MinoriEditorStudio is an application shell similar in concept to the Visual Studio Shell. - This uses AvalonDock and has an MVVM architecture based on MvvmCross. - - Copyright 2019 - https://github.com/TorisanKitsune/MinoriEditorShell - https://github.com/TorisanKitsune/MinoriEditorShell - - git - .net40 WPF MvvmCross AvalonDock Visual Studio IDE Shell - true - Mark Kromis - Mark Kromis - bin\MinoriEditorShell.xml - ..\..\.sonarlint\minorieditorshellcsharp.ruleset - + + net6.0 + + MinoriEditorStudio is an application shell similar in concept to the Visual Studio Shell. + This uses AvalonDock and has an MVVM architecture based on MvvmCross. + + latest + Copyright 2019 - 2024 + https://github.com/TorisanKitsune/MinoriEditorShell + https://github.com/TorisanKitsune/MinoriEditorShell + + git + .net40 WPF MvvmCross AvalonDock Visual Studio IDE Shell + true + Mark Kromis + Mark Kromis + bin\MinoriEditorShell.xml + MinoriEditorShell.ruleset + - - - + + + - + - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - + + + + + + + - - - - - - - + + + PublicSettingsSingleFileGenerator + Settings.Designer.cs + + + True + True + Settings.settings + + - - - PublicSettingsSingleFileGenerator - Settings.Designer.cs - - - True - True - Settings.settings - - - - - - True - True - Resources.resx - - - ResXFileCodeGenerator - - - ResXFileCodeGenerator - - - PublicResXFileCodeGenerator - Resources.Designer.cs - - - ResXFileCodeGenerator - - - ResXFileCodeGenerator - - + + + True + True + Resources.resx + + + ResXFileCodeGenerator + + + ResXFileCodeGenerator + + + PublicResXFileCodeGenerator + Resources.Designer.cs + + + ResXFileCodeGenerator + + + ResXFileCodeGenerator + + \ No newline at end of file diff --git a/Modules/MinoriEditorShell/MinoriEditorShell.ruleset b/Modules/MinoriEditorShell/MinoriEditorShell.ruleset new file mode 100644 index 00000000..888ec29a --- /dev/null +++ b/Modules/MinoriEditorShell/MinoriEditorShell.ruleset @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/README.md b/README.md index 6aee6599..6ef793a9 100644 --- a/README.md +++ b/README.md @@ -5,10 +5,9 @@ [![Join the chat at https://gitter.im/MinoriEditorShell/community](https://badges.gitter.im/MinoriEditorShell/community.svg)](https://gitter.im/MinoriEditorShell/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) ## Status - -[![Build Status](https://dev.azure.com/TorisanKitsune/MinoriEditorShell/_apis/build/status/TorisanKitsune.MinoriEditorShell?branchName=develop)](https://dev.azure.com/TorisanKitsune/MinoriEditorShell/_build/latest?definitionId=4&branchName=develop) -[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FTorisanKitsune%2FMinoriEditorShell.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2FTorisanKitsune%2FMinoriEditorShell?ref=badge_shield) -[![CodeFactor](https://www.codefactor.io/repository/github/torisankitsune/minorieditorshell/badge/develop)](https://www.codefactor.io/repository/github/torisankitsune/minorieditorshell/overview/develop) +[![Verification Build](https://github.com/TorisanKitsune/MinoriEditorShell/actions/workflows/build.yml/badge.svg)](https://github.com/TorisanKitsune/MinoriEditorShell/actions/workflows/build.yml) +[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=TorisanKitsune_MinoriEditorShell&metric=alert_status)](https://sonarcloud.io/dashboard?id=TorisanKitsune_MinoriEditorShell) +[![Build Coverage](https://img.shields.io/sonar/coverage/TorisanKitsune_MinoriEditorShell?server=https%3A%2F%2Fsonarcloud.io)](https://sonarcloud.io/dashboard?id=TorisanKitsune_MinoriEditorShell) [![Downloads](https://img.shields.io/nuget/dt/MinoriEditorShell.svg)](https://www.nuget.org/packages/MinoriEditorShell/) [![Open Issues](https://img.shields.io/github/issues-raw/TorisanKitsune/MinoriEditorShell.svg)](https://github.com/TorisanKitsune/MinoriEditorShell/issues) @@ -20,25 +19,26 @@ Dual-Licensed with either [![Apache](https://img.shields.io/badge/license-Apache-blue.svg)](https://github.com/TorisanKitsune/MinoriEditorShell/blob/master/LICENCE.txt) or [![MS-PL](https://img.shields.io/badge/license-MsPL-blue.svg)](https://github.com/TorisanKitsune/MinoriEditorShell/blob/master/LICENCE.txt) -## MvvmCross 8 troubleshooting / Known Issues +## MvvmCross 9 troubleshooting / Known Issues +* dot net v6 or greater to be compatable with dependencies. * If view does not showing add `[MvxContentPresentation]` for MesDocuments or Main Content view .i.e. MainView. * Add`[MvxWindowPresentation]` for windows. * If using logging you only need `ILoggerFactory`, otherwise return null. ## Breaking Changes (For Develop pre-release -The goal is to minimize the main library into a more consice library. Thus the following changes will/have been made. +The goal is to minimize the main library into a more concise library. Thus the following changes will/have been made. * Command interface was moved to MinoriEditorShell.Command -- This is currently un-tested and no nuget yet. * Undo - Redo interface was moved to MinoriEditorShell.History -- This is currently un-tested and no nuget yet. * IMesManager renamed to IMesDocumentManager to clarify what the manager does, manages documents/persistant documents and tools. * IMesSettings is for custom setting view models in the settings manager, (Still need to have a view for them in platform target). -* IMesSettingsManger is for managaing all of the settings view models. +* IMesSettingsManger is for managing all of the settings view models. -## Build environmant +## Build environment -For windows this is currently being ran on Visual Studio 2019 Community edition with **.Net Core cross platfom development**, and **.Net Desktop Envirionment** +For windows this is currently being ran on Visual Studio 2019 Community edition with **.Net Core cross platform development**, and **.Net Desktop Environment** This project depends on netstandard library for its core build. Future plans involves targeting other platforms. ## What is this @@ -69,7 +69,7 @@ way of separating out the code for each part of your application. ## More Documentation -Doumentation can be found on the github [wiki](https://github.com/TorisanKitsune/MinoriEditorShell/wiki/) +Documentation can be found on the github [wiki](https://github.com/TorisanKitsune/MinoriEditorShell/wiki/) ## Acknowledgements diff --git a/Tests/MinoriEditorShell.Platforms.WpfTests/MinoriEditorShell.Platforms.WpfTests.csproj b/Tests/MinoriEditorShell.Platforms.WpfTests/MinoriEditorShell.Platforms.WpfTests.csproj index 6ba82550..4e08880b 100644 --- a/Tests/MinoriEditorShell.Platforms.WpfTests/MinoriEditorShell.Platforms.WpfTests.csproj +++ b/Tests/MinoriEditorShell.Platforms.WpfTests/MinoriEditorShell.Platforms.WpfTests.csproj @@ -1,26 +1,26 @@  - - net461;netcoreapp3.1;net5.0-windows + + net6.0-windows + latest + false + - false - + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + - - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - - - - - - + + + + \ No newline at end of file diff --git a/Tests/MinoriEditorShell.RibbonTests/MinoriEditorShell.RibbonTests.csproj b/Tests/MinoriEditorShell.RibbonTests/MinoriEditorShell.RibbonTests.csproj index cdc5fd80..a453c3cc 100644 --- a/Tests/MinoriEditorShell.RibbonTests/MinoriEditorShell.RibbonTests.csproj +++ b/Tests/MinoriEditorShell.RibbonTests/MinoriEditorShell.RibbonTests.csproj @@ -1,31 +1,31 @@  - - net461;net5.0-windows + + net6.0-windows + latest + false + - false - + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + - - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + + - - - - - - - - - + + + \ No newline at end of file diff --git a/Tests/MinoriEditorShellTests/MinoriEditorShellTests.csproj b/Tests/MinoriEditorShellTests/MinoriEditorShellTests.csproj index 908f69ee..f414073d 100644 --- a/Tests/MinoriEditorShellTests/MinoriEditorShellTests.csproj +++ b/Tests/MinoriEditorShellTests/MinoriEditorShellTests.csproj @@ -1,22 +1,21 @@ - + - net5.0 - + net6.0-windows + latest false - MinoriEditorShell - - - - + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index b89ac3d8..00000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,126 +0,0 @@ -# .NET Desktop -# Build and run tests for .NET Desktop or Windows classic desktop solutions. -# Add steps that publish symbols, save build artifacts, and more: -# https://docs.microsoft.com/azure/devops/pipelines/apps/windows/dot-net - -name: $(GitVersion.NuGetVersion) - -variables: - solution: '**/*.sln' - buildPlatform: 'Any CPU' - buildConfiguration: 'Release' - -pool: - vmImage: 'windows-latest' - -steps: - - task: NuGetToolInstaller@1 - displayName: 'Use NuGet > 5.0.0' - inputs: - versionSpec: '> 5.0.0' - checkLatest: true - - - task: GitVersion@5 - displayName: GitVersion - inputs: - updateAssemblyInfo: true - preferBundledVersion: false - - - task: NuGetCommand@2 - inputs: - restoreSolution: '$(solution)' - - - task: VSBuild@1 - inputs: - solution: '$(solution)' - platform: '$(buildPlatform)' - configuration: '$(buildConfiguration)' - - - task: DotNetCoreCLI@2 - inputs: - command: 'test' - arguments: '--collect "XPlat Code Coverage"' - - # copy the Nuget to compression folder - - task: CopyFiles@2 - displayName: 'Copy Nugets to demo folder' - inputs: - SourceFolder: '$(agent.builddirectory)' - Contents: '**/*.nupkg' - TargetFolder: '$(Build.BinariesDirectory)\Minori-$(GitVersion.NuGetVersion)\Nugets' - flattenFolders: true - - # and to artifacts - - task: CopyFiles@2 - displayName: 'Copy Nuget Files to artifacts' - inputs: - SourceFolder: '$(agent.builddirectory)' - Contents: '**/*.nupkg' - TargetFolder: '$(Build.ArtifactStagingDirectory)' - flattenFolders: true - - # https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/copy-files?view=azure-devops&tabs=yaml - - task: CopyFiles@2 - displayName: 'Copy SimpleDemo.WPF Files' - inputs: - sourceFolder: Demos/SimpleDemo/SimpleDemo.Wpf/bin/Release - Contents: | - *.exe - *.dll - *\*.dll - TargetFolder: '$(Build.BinariesDirectory)/Minori-$(GitVersion.NuGetVersion)/Demos/SimpleDemo' - - - task: CopyFiles@2 - displayName: 'Copy SimpleDemo.RibbonWPF Files' - inputs: - sourceFolder: Demos/SimpleDemo/SimpleDemo.RibbonWpf/bin/Release - Contents: | - *.exe - *.dll - */*.dll - TargetFolder: '$(Build.BinariesDirectory)/Minori-$(GitVersion.NuGetVersion)/Demos/SimpleDemo' - OverWrite: true - - - task: CopyFiles@2 - displayName: 'Copy MinoriDemo.WPF Files' - inputs: - sourceFolder: Demos/MinoriDemo/MinoriDemo.Wpf/bin/Release - Contents: | - *.exe - *.dll - */*.dll - TargetFolder: '$(Build.BinariesDirectory)/Minori-$(GitVersion.NuGetVersion)/Demos/MinoriDemo' - - - task: CopyFiles@2 - displayName: 'Copy MinoriEditorShell.RibbonWPF Files' - inputs: - sourceFolder: Demos/MinoriDemo/MinoriDemo.RibbonWpf/bin/Release - Contents: | - *.exe - *.dll - */*.dll - TargetFolder: '$(Build.BinariesDirectory)/Minori-$(GitVersion.NuGetVersion)/Demos/MinoriDemo' - OverWrite: true - - # create demo archive for github - # Archive files using compression formats such as .7z, .rar, .tar.gz, and .zip. - # https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/archive-files?view=azure-devops - - task: ArchiveFiles@2 - inputs: - rootFolderOrFile: '$(Build.BinariesDirectory)\Minori-$(GitVersion.NuGetVersion)' - includeRootFolder: true - archiveType: '7z' # Options: zip, 7z, tar, wim - archiveFile: '$(Build.ArtifactStagingDirectory)/Minori-$(GitVersion.NuGetVersion).7z' - #verbose: # Optional - #quiet: # Optional - - # publish staging container - # https://docs.microsoft.com/en-us/azure/devops/pipelines/build/artifacts?view=vsts - - task: PublishBuildArtifacts@1 - inputs: - pathtoPublish: '$(Build.ArtifactStagingDirectory)' - artifactName: 'drop' - #publishLocation: 'Container' # Options: container, filePath - #targetPath: # Required when publishLocation == FilePath - #parallel: false # Optional - #parallelCount: # Optional diff --git a/coverlet.runsettings b/coverlet.runsettings new file mode 100644 index 00000000..287b4277 --- /dev/null +++ b/coverlet.runsettings @@ -0,0 +1,25 @@ + + + + + + + opencover + + + + + Obsolete,GeneratedCodeAttribute,CompilerGeneratedAttribute + + + + false + true + true + true + false + + + + + \ No newline at end of file