From ef38fef7a88121288279de3858321b80f1ef509d Mon Sep 17 00:00:00 2001
From: Gregor Dostal <10714600+Gh0stWalk3r@users.noreply.github.com>
Date: Sat, 2 Dec 2023 19:09:29 +0100
Subject: [PATCH 1/8] Update .gitignore
---
.gitignore | 480 ++++++++++++++++++++++++++++++++++++++++-------------
1 file changed, 363 insertions(+), 117 deletions(-)
diff --git a/.gitignore b/.gitignore
index 104b544..f79f92b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,13 +1,11 @@
+# Created by https://www.toptal.com/developers/gitignore/api/git,linux,macos,csharp,fsharp,windows,aspnetcore,dotnetcore,jetbrains+all,visualstudiocode
+# Edit at https://www.toptal.com/developers/gitignore?templates=git,linux,macos,csharp,fsharp,windows,aspnetcore,dotnetcore,jetbrains+all,visualstudiocode
+
+### ASPNETCore ###
## Ignore Visual Studio temporary files, build results, and
## files generated by popular Visual Studio add-ons.
-##
-## Get latest from `dotnet new gitignore`
-
-# dotenv files
-.env
# User-specific files
-*.rsuser
*.suo
*.user
*.userosscache
@@ -16,9 +14,6 @@
# User-specific files (MonoDevelop/Xamarin Studio)
*.userprefs
-# Mono auto generated files
-mono_crash.*
-
# Build results
[Dd]ebug/
[Dd]ebugPublic/
@@ -26,65 +21,42 @@ mono_crash.*
[Rr]eleases/
x64/
x86/
-[Ww][Ii][Nn]32/
-[Aa][Rr][Mm]/
-[Aa][Rr][Mm]64/
bld/
[Bb]in/
[Oo]bj/
[Ll]og/
-[Ll]ogs/
-# Visual Studio 2015/2017 cache/options directory
+# Visual Studio 2015 cache/options directory
.vs/
# Uncomment if you have tasks that create the project's static files in wwwroot
#wwwroot/
-# Visual Studio 2017 auto generated files
-Generated\ Files/
-
# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
-# NUnit
+# NUNIT
*.VisualState.xml
TestResult.xml
-nunit-*.xml
# Build Results of an ATL Project
[Dd]ebugPS/
[Rr]eleasePS/
dlldata.c
-# Benchmark Results
-BenchmarkDotNet.Artifacts/
-
-# .NET
+# DNX
project.lock.json
project.fragment.lock.json
artifacts/
-# Tye
-.tye/
-
-# ASP.NET Scaffolding
-ScaffoldingReadMe.txt
-
-# StyleCop
-StyleCopReport.xml
-
-# Files built by Visual Studio
*_i.c
*_p.c
-*_h.h
+*_i.h
*.ilk
*.meta
*.obj
-*.iobj
*.pch
*.pdb
-*.ipdb
*.pgc
*.pgd
*.rsp
@@ -94,9 +66,7 @@ StyleCopReport.xml
*.tlh
*.tmp
*.tmp_proj
-*_wpftmp.csproj
*.log
-*.tlog
*.vspscc
*.vssscc
.builds
@@ -124,9 +94,6 @@ ipch/
*.vspx
*.sap
-# Visual Studio Trace Files
-*.e2e
-
# TFS 2012 Local Workspace
$tf/
@@ -138,21 +105,15 @@ _ReSharper*/
*.[Rr]e[Ss]harper
*.DotSettings.user
+# JustCode is a .NET coding add-in
+.JustCode
+
# TeamCity is a build add-in
_TeamCity*
# DotCover is a Code Coverage Tool
*.dotCover
-# AxoCover is a Code Coverage Tool
-.axoCover/*
-!.axoCover/settings.json
-
-# Coverlet is a free, cross platform Code Coverage Tool
-coverage*.json
-coverage*.xml
-coverage*.info
-
# Visual Studio code coverage results
*.coverage
*.coveragexml
@@ -188,7 +149,7 @@ publish/
# Publish Web Output
*.[Pp]ublish.xml
*.azurePubxml
-# Note: Comment the next line if you want to checkin your web deploy settings,
+# TODO: Comment the next line if you want to checkin your web deploy settings
# but database connection strings (with potential passwords) will be unencrypted
*.pubxml
*.publishproj
@@ -200,15 +161,13 @@ PublishScripts/
# NuGet Packages
*.nupkg
-# NuGet Symbol Packages
-*.snupkg
# The packages folder can be ignored because of Package Restore
-**/[Pp]ackages/*
+**/packages/*
# except build/, which is used as an MSBuild target.
-!**/[Pp]ackages/build/
+!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
-#!**/[Pp]ackages/repositories.config
-# NuGet v3's project.json files produces more ignorable files
+#!**/packages/repositories.config
+# NuGet v3's project.json files produces more ignoreable files
*.nuget.props
*.nuget.targets
@@ -225,15 +184,12 @@ AppPackages/
BundleArtifacts/
Package.StoreAssociation.xml
_pkginfo.txt
-*.appx
-*.appxbundle
-*.appxupload
# Visual Studio cache files
# files ending in .cache can be ignored
*.[Cc]ache
# but keep track of directories ending in .cache
-!?*.[Cc]ache/
+!*.[Cc]ache/
# Others
ClientBin/
@@ -244,12 +200,9 @@ ClientBin/
*.jfm
*.pfx
*.publishsettings
+node_modules/
orleans.codegen.cs
-# Including strong name files can present a security risk
-# (https://github.com/github/gitignore/pull/2483#issue-259490424)
-#*.snk
-
# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
#bower_components/
@@ -264,22 +217,15 @@ _UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
UpgradeLog*.htm
-ServiceFabricBackup/
-*.rptproj.bak
# SQL Server files
*.mdf
*.ldf
-*.ndf
# Business Intelligence projects
*.rdl.data
*.bim.layout
*.bim_*.settings
-*.rptproj.rsuser
-*- [Bb]ackup.rdl
-*- [Bb]ackup ([0-9]).rdl
-*- [Bb]ackup ([0-9][0-9]).rdl
# Microsoft Fakes
FakesAssemblies/
@@ -289,7 +235,6 @@ FakesAssemblies/
# Node.js Tools for Visual Studio
.ntvs_analysis.dat
-node_modules/
# Visual Studio 6 build log
*.plg
@@ -297,6 +242,195 @@ node_modules/
# Visual Studio 6 workspace options file
*.opt
+# Visual Studio LightSwitch build output
+**/*.HTMLClient/GeneratedArtifacts
+**/*.DesktopClient/GeneratedArtifacts
+**/*.DesktopClient/ModelManifest.xml
+**/*.Server/GeneratedArtifacts
+**/*.Server/ModelManifest.xml
+_Pvt_Extensions
+
+# Paket dependency manager
+.paket/paket.exe
+paket-files/
+
+# FAKE - F# Make
+.fake/
+
+# JetBrains Rider
+.idea/
+*.sln.iml
+
+# CodeRush
+.cr/
+
+# Python Tools for Visual Studio (PTVS)
+__pycache__/
+*.pyc
+
+# Cake - Uncomment if you are using it
+# tools/
+
+### Csharp ###
+##
+## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore
+
+# User-specific files
+*.rsuser
+
+# User-specific files (MonoDevelop/Xamarin Studio)
+
+# Mono auto generated files
+mono_crash.*
+
+# Build results
+[Ww][Ii][Nn]32/
+[Aa][Rr][Mm]/
+[Aa][Rr][Mm]64/
+[Ll]ogs/
+
+# Visual Studio 2015/2017 cache/options directory
+# Uncomment if you have tasks that create the project's static files in wwwroot
+
+# Visual Studio 2017 auto generated files
+Generated\ Files/
+
+# MSTest test Results
+
+# NUnit
+nunit-*.xml
+
+# Build Results of an ATL Project
+
+# Benchmark Results
+BenchmarkDotNet.Artifacts/
+
+# .NET Core
+
+# ASP.NET Scaffolding
+ScaffoldingReadMe.txt
+
+# StyleCop
+StyleCopReport.xml
+
+# Files built by Visual Studio
+*_h.h
+*.iobj
+*.ipdb
+*_wpftmp.csproj
+*.tlog
+
+# Chutzpah Test files
+
+# Visual C++ cache files
+
+# Visual Studio profiler
+
+# Visual Studio Trace Files
+*.e2e
+
+# TFS 2012 Local Workspace
+
+# Guidance Automation Toolkit
+
+# ReSharper is a .NET coding add-in
+
+# TeamCity is a build add-in
+
+# DotCover is a Code Coverage Tool
+
+# AxoCover is a Code Coverage Tool
+.axoCover/*
+!.axoCover/settings.json
+
+# Coverlet is a free, cross platform Code Coverage Tool
+coverage*.json
+coverage*.xml
+coverage*.info
+
+# Visual Studio code coverage results
+
+# NCrunch
+
+# MightyMoose
+
+# Web workbench (sass)
+
+# Installshield output folder
+
+# DocProject is a documentation generator add-in
+
+# Click-Once directory
+
+# Publish Web Output
+# Note: Comment the next line if you want to checkin your web deploy settings,
+# but database connection strings (with potential passwords) will be unencrypted
+
+# Microsoft Azure Web App publish settings. Comment the next line if you want to
+# checkin your Azure Web App publish settings, but sensitive information contained
+# in these scripts will be unencrypted
+
+# NuGet Packages
+# NuGet Symbol Packages
+*.snupkg
+# The packages folder can be ignored because of Package Restore
+**/[Pp]ackages/*
+# except build/, which is used as an MSBuild target.
+!**/[Pp]ackages/build/
+# Uncomment if necessary however generally it will be regenerated when needed
+#!**/[Pp]ackages/repositories.config
+# NuGet v3's project.json files produces more ignorable files
+
+# Microsoft Azure Build Output
+
+# Microsoft Azure Emulator
+
+# Windows Store app package directories and files
+*.appx
+*.appxbundle
+*.appxupload
+
+# Visual Studio cache files
+# files ending in .cache can be ignored
+# but keep track of directories ending in .cache
+!?*.[Cc]ache/
+
+# Others
+
+# Including strong name files can present a security risk
+# (https://github.com/github/gitignore/pull/2483#issue-259490424)
+#*.snk
+
+# Since there are multiple workflows, uncomment next line to ignore bower_components
+# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
+
+# RIA/Silverlight projects
+
+# Backup & report files from converting an old project file
+# to a newer Visual Studio version. Backup files are not needed,
+# because we have git ;-)
+ServiceFabricBackup/
+*.rptproj.bak
+
+# SQL Server files
+*.ndf
+
+# Business Intelligence projects
+*.rptproj.rsuser
+*- [Bb]ackup.rdl
+*- [Bb]ackup ([0-9]).rdl
+*- [Bb]ackup ([0-9][0-9]).rdl
+
+# Microsoft Fakes
+
+# GhostDoc plugin setting file
+
+# Node.js Tools for Visual Studio
+
+# Visual Studio 6 build log
+
+# Visual Studio 6 workspace options file
+
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.)
*.vbw
@@ -308,30 +442,17 @@ node_modules/
*.dsp
# Visual Studio 6 technical files
-*.ncb
-*.aps
# Visual Studio LightSwitch build output
-**/*.HTMLClient/GeneratedArtifacts
-**/*.DesktopClient/GeneratedArtifacts
-**/*.DesktopClient/ModelManifest.xml
-**/*.Server/GeneratedArtifacts
-**/*.Server/ModelManifest.xml
-_Pvt_Extensions
# Paket dependency manager
-.paket/paket.exe
-paket-files/
# FAKE - F# Make
-.fake/
# CodeRush personal settings
.cr/personal
# Python Tools for Visual Studio (PTVS)
-__pycache__/
-*.pyc
# Cake - Uncomment if you are using it
# tools/**
@@ -401,32 +522,145 @@ FodyWeavers.xsd
*.msp
# JetBrains Rider
-*.sln.iml
-.idea
-##
-## Visual studio for Mac
-##
+### DotnetCore ###
+# .NET Core build folders
+bin/
+obj/
+
+# Common node modules locations
+/node_modules
+/wwwroot/node_modules
+
+### fsharp ###
+lib/debug
+lib/release
+Debug
+obj
+bin
+/build/
+*.exe
+!.paket/paket.bootstrapper.exe
+.fake
+
+### Git ###
+# Created by git for backups. To disable backups in Git:
+# $ git config --global mergetool.keepBackup false
+*.orig
+
+# Created by git when using merge tools for conflicts
+*.BACKUP.*
+*.BASE.*
+*.LOCAL.*
+*.REMOTE.*
+*_BACKUP_*.txt
+*_BASE_*.txt
+*_LOCAL_*.txt
+*_REMOTE_*.txt
+
+### JetBrains+all ###
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+
+# User-specific stuff
+.idea/**/workspace.xml
+.idea/**/tasks.xml
+.idea/**/usage.statistics.xml
+.idea/**/dictionaries
+.idea/**/shelf
+
+# AWS User-specific
+.idea/**/aws.xml
+
+# Generated files
+.idea/**/contentModel.xml
+
+# Sensitive or high-churn files
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+.idea/**/dbnavigator.xml
+
+# Gradle
+.idea/**/gradle.xml
+.idea/**/libraries
+
+# Gradle and Maven with auto-import
+# When using Gradle or Maven with auto-import, you should exclude module files,
+# since they will be recreated, and may cause churn. Uncomment if using
+# auto-import.
+# .idea/artifacts
+# .idea/compiler.xml
+# .idea/jarRepositories.xml
+# .idea/modules.xml
+# .idea/*.iml
+# .idea/modules
+# *.iml
+# *.ipr
+
+# CMake
+cmake-build-*/
+
+# Mongo Explorer plugin
+.idea/**/mongoSettings.xml
+
+# File-based project format
+*.iws
+
+# IntelliJ
+out/
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Cursive Clojure plugin
+.idea/replstate.xml
+
+# SonarLint plugin
+.idea/sonarlint/
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
+
+# Editor-based Rest Client
+.idea/httpRequests
+
+# Android studio 3.1+ serialized cache file
+.idea/caches/build_file_checksums.ser
+
+### JetBrains+all Patch ###
+# Ignore everything but code style settings and run configurations
+# that are supposed to be shared within teams.
+
+.idea/*
+!.idea/codeStyles
+!.idea/runConfigurations
+
+### Linux ###
-# globs
-Makefile.in
-*.userprefs
-*.usertasks
-config.make
-config.status
-aclocal.m4
-install-sh
-autom4te.cache/
-*.tar.gz
-tarballs/
-test-results/
-
-# Mac bundle stuff
-*.dmg
-*.app
-
-# content below from: https://github.com/github/gitignore/blob/master/Global/macOS.gitignore
+# temporary files which can be created if a process still has a handle open of a deleted file
+.fuse_hidden*
+
+# KDE directory preferences
+.directory
+
+# Linux trash folder which might appear on any partition or disk
+.Trash-*
+
+# .nfs files are created when an open file is removed but is still being accessed
+.nfs*
+
+### macOS ###
# General
.DS_Store
.AppleDouble
@@ -455,9 +689,27 @@ Network Trash Folder
Temporary Items
.apdisk
-# content below from: https://github.com/github/gitignore/blob/master/Global/Windows.gitignore
+### macOS Patch ###
+# iCloud generated files
+*.icloud
+
+### VisualStudioCode ###
+!.vscode/*.code-snippets
+
+# Local History for Visual Studio Code
+
+# Built Visual Studio Code Extensions
+*.vsix
+
+### VisualStudioCode Patch ###
+# Ignore all local history of files
+.history
+.ionide
+
+### Windows ###
# Windows thumbnail cache files
Thumbs.db
+Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db
@@ -471,14 +723,8 @@ ehthumbs_vista.db
$RECYCLE.BIN/
# Windows Installer files
-*.cab
-*.msi
-*.msix
-*.msm
-*.msp
# Windows shortcuts
*.lnk
-# Vim temporary swap files
-*.swp
+# End of https://www.toptal.com/developers/gitignore/api/git,linux,macos,csharp,fsharp,windows,aspnetcore,dotnetcore,jetbrains+all,visualstudiocode
From 72e1029386dff694f8ca29c8b128326a63573093 Mon Sep 17 00:00:00 2001
From: Gregor Dostal <10714600+Gh0stWalk3r@users.noreply.github.com>
Date: Sat, 2 Dec 2023 22:40:32 +0100
Subject: [PATCH 2/8] Add ci.yml
Add CI pipeline
Add code coverage
Add stryker
---
.config/dotnet-tools.json | 12 +++
.github/workflows/ci.yml | 129 +++++++++++++++++++++++++++++++
source/Directory.Build.props | 4 +
source/FlashOWare.Generators.sln | 42 ++++++++++
source/gen/stryker-config.yaml | 8 ++
5 files changed, 195 insertions(+)
create mode 100644 .config/dotnet-tools.json
create mode 100644 .github/workflows/ci.yml
create mode 100644 source/gen/stryker-config.yaml
diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
new file mode 100644
index 0000000..8cfcb61
--- /dev/null
+++ b/.config/dotnet-tools.json
@@ -0,0 +1,12 @@
+{
+ "version": 1,
+ "isRoot": true,
+ "tools": {
+ "dotnet-stryker": {
+ "version": "3.12.0",
+ "commands": [
+ "dotnet-stryker"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..0663563
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,129 @@
+# This workflow will build a .NET project
+# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net
+
+name: CI
+
+on:
+ pull_request:
+ push:
+ branches:
+ - main
+ workflow_dispatch:
+
+permissions:
+ pull-requests: write
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref || github.run_id }}
+ cancel-in-progress: true
+
+env:
+ DOTNET_CLI_PERF_LOG: false
+ DOTNET_CLI_TELEMETRY_OPTOUT: true
+ DOTNET_GENERATE_ASPNET_CERTIFICATE: false
+ DOTNET_NOLOGO: true
+ SuppressNETCoreSdkPreviewMessage: true
+ SLN_PATH: source/FlashOWare.Generators.sln
+
+jobs:
+ build:
+ name: Restore & Build & Test
+ continue-on-error: false
+ strategy:
+ fail-fast: false
+ matrix:
+ os: [macos-latest, ubuntu-latest, windows-latest]
+ configuration: [Debug, Release]
+ runs-on: ${{ matrix.os }}
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 1
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v3
+ with:
+ global-json-file: global.json
+ - name: Restore dependencies
+ run: dotnet restore ${{ env.SLN_PATH }} --configfile nuget.config --no-cache
+ - name: Build
+ run: dotnet build ${{ env.SLN_PATH }} --configuration ${{ matrix.configuration }} --no-restore
+ - name: Test
+ run: dotnet test ${{ env.SLN_PATH }} --configuration ${{ matrix.configuration }} --no-build
+ codeCoverage:
+ name: Collect Code Coverage
+ needs:
+ - build
+ runs-on: ubuntu-latest
+ env:
+ COVERAGE_OUTPUT_PATH: artifacts/coverage
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 1
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v3
+ with:
+ global-json-file: global.json
+ - name: Restore dependencies
+ run: dotnet restore ${{ env.SLN_PATH }} --configfile nuget.config --no-cache
+ - name: Build
+ run: dotnet build ${{ env.SLN_PATH }} --configuration Release --no-restore
+ - name: Test
+ run: dotnet test ${{ env.SLN_PATH }} --configuration Release --no-build --collect:"XPlat Code Coverage" --logger trx --results-directory ${{ env.COVERAGE_OUTPUT_PATH }}
+ - name: Code Coverage Summary Report
+ uses: irongut/CodeCoverageSummary@v1.3.0
+ with:
+ filename: '${{ env.COVERAGE_OUTPUT_PATH }}/*/coverage.cobertura.xml'
+ badge: true
+ format: 'markdown'
+ output: 'both'
+ - name: Add Coverage PR Comment
+ uses: marocchino/sticky-pull-request-comment@v2
+ if: github.event_name == 'pull_request'
+ with:
+ header: Code Coverage
+ recreate: true
+ path: code-coverage-results.md
+ - name: Write to Job Summary
+ run: cat code-coverage-results.md >> $GITHUB_STEP_SUMMARY
+ mutationTesting:
+ name: Mutation Testing
+ needs:
+ - build
+ env:
+ STRYKER_OUTPUT_PATH: ${{ github.workspace }}/artifacts/stryker
+ runs-on: ubuntu-latest
+ steps:
+ - name: Setup Variables
+ # https://stryker-mutator.io/docs/stryker-net/reporters/#markdown-summary-reporter
+ run: echo "STRYKER_REPORT_PATH=${{ env.STRYKER_OUTPUT_PATH }}/reports/mutation-report.md" >> $GITHUB_ENV
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 1
+ - name: Setup .NET
+ uses: actions/setup-dotnet@v3
+ with:
+ global-json-file: global.json
+ - name: Restore tools
+ run: dotnet tool restore --configfile nuget.config --tool-manifest .config/dotnet-tools.json --no-cache
+ - name: Restore dependencies
+ run: dotnet restore ${{ env.SLN_PATH }} --configfile nuget.config --no-cache
+ - name: Build
+ # Although Stryker states that restore/build is not needed, I got a warning that sources could not be found.
+ # Therefore always restore/build!
+ run: dotnet build ${{ env.SLN_PATH }} --configuration Debug --no-restore
+ - name: Run dotnet-stryker
+ run: dotnet stryker --config-file stryker-config.yaml --output ${{ env.STRYKER_OUTPUT_PATH }}
+ working-directory: source/gen
+ - name: Add Mutation Test PR Comment
+ uses: marocchino/sticky-pull-request-comment@v2
+ if: github.event_name == 'pull_request'
+ with:
+ header: Mutation Test
+ recreate: true
+ path: ${{ env.STRYKER_REPORT_PATH }}
+ - name: Write to Job Summary
+ run: cat ${{ env.STRYKER_REPORT_PATH }} >> $GITHUB_STEP_SUMMARY
diff --git a/source/Directory.Build.props b/source/Directory.Build.props
index 22fa39c..2bf38e2 100644
--- a/source/Directory.Build.props
+++ b/source/Directory.Build.props
@@ -26,4 +26,8 @@
$(WarningsNotAsErrors);CS0612;CS0618;CS1030
+
+
+
+
diff --git a/source/FlashOWare.Generators.sln b/source/FlashOWare.Generators.sln
index 8737d3a..02734f8 100644
--- a/source/FlashOWare.Generators.sln
+++ b/source/FlashOWare.Generators.sln
@@ -4,33 +4,73 @@ Microsoft Visual Studio Solution File, Format Version 12.00
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "examples", "examples", "{68723E45-536E-4638-9751-87CCA07814DA}"
+ ProjectSection(SolutionItems) = preProject
+ examples\Directory.Build.props = examples\Directory.Build.props
+ EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FlashOWare.Generators.Example", "examples\FlashOWare.Generators.Example\FlashOWare.Generators.Example.csproj", "{F57E367D-E386-4F5B-8E3B-61FB26D7E441}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "gen", "gen", "{3FA455A7-9AB9-43AA-AE32-20F50F4BCF5C}"
+ ProjectSection(SolutionItems) = preProject
+ gen\Directory.Build.props = gen\Directory.Build.props
+ gen\stryker-config.yaml = gen\stryker-config.yaml
+ EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FlashOWare.Generators", "gen\FlashOWare.Generators\FlashOWare.Generators.csproj", "{8B7C094D-BD6C-4378-B9B1-C032B862E5D9}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "lib", "lib", "{4E4E7766-31AB-4486-A9B9-C27DEF55A1FA}"
+ ProjectSection(SolutionItems) = preProject
+ lib\Directory.Build.props = lib\Directory.Build.props
+ EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FlashOWare.Generators.Attributes", "lib\FlashOWare.Generators.Attributes\FlashOWare.Generators.Attributes.csproj", "{25FEEDC6-727D-49AE-89B7-73CB7DE5D4BF}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "package", "package", "{44AC5637-7B29-48C4-BD22-A611BBEDB0E3}"
+ ProjectSection(SolutionItems) = preProject
+ package\Directory.Build.props = package\Directory.Build.props
+ EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FlashOWare.Generators.Package", "package\FlashOWare.Generators.Package\FlashOWare.Generators.Package.csproj", "{0C437E75-0681-4166-8ADC-525087CE444F}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "perf", "perf", "{FD3F39BB-5A2F-4CB8-AA06-0DD65E161B4C}"
+ ProjectSection(SolutionItems) = preProject
+ perf\Directory.Build.props = perf\Directory.Build.props
+ EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FlashOWare.Generated.Benchmarks", "perf\FlashOWare.Generated.Benchmarks\FlashOWare.Generated.Benchmarks.csproj", "{169547E5-6BDA-4E0F-8D44-2F06FB4E7A0C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FlashOWare.Generators.Benchmarks", "perf\FlashOWare.Generators.Benchmarks\FlashOWare.Generators.Benchmarks.csproj", "{BE4DBAD4-613F-474C-93C4-248A073F5016}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{CC256320-312F-49E0-B3BE-C0E5E596B8C1}"
+ ProjectSection(SolutionItems) = preProject
+ tests\Directory.Build.props = tests\Directory.Build.props
+ EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FlashOWare.Generated.Tests", "tests\FlashOWare.Generated.Tests\FlashOWare.Generated.Tests.csproj", "{422D58CF-5DD4-408E-8D35-48C187311FE5}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FlashOWare.Generators.Tests", "tests\FlashOWare.Generators.Tests\FlashOWare.Generators.Tests.csproj", "{998580C9-1518-43A8-A91B-B4C3D6B25B18}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_solution items", "_solution items", "{04634A03-F288-4A1B-9F81-258F23537516}"
+ ProjectSection(SolutionItems) = preProject
+ ..\global.json = ..\global.json
+ ..\nuget.config = ..\nuget.config
+ Version.props = Version.props
+ Directory.Build.targets = Directory.Build.targets
+ Directory.Build.props = Directory.Build.props
+ ..\.gitignore = ..\.gitignore
+ ..\.gitattributes = ..\.gitattributes
+ ..\.editorconfig = ..\.editorconfig
+ ..\LICENSE = ..\LICENSE
+ ..\README.md = ..\README.md
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{AB36FB60-1828-4E44-AEB5-A856ABC2DFBB}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{31CB57D9-89FB-4857-A0DE-738DCD87140A}"
+ ProjectSection(SolutionItems) = preProject
+ ..\.github\workflows\ci.yml = ..\.github\workflows\ci.yml
+ EndProjectSection
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -82,6 +122,8 @@ Global
{BE4DBAD4-613F-474C-93C4-248A073F5016} = {FD3F39BB-5A2F-4CB8-AA06-0DD65E161B4C}
{422D58CF-5DD4-408E-8D35-48C187311FE5} = {CC256320-312F-49E0-B3BE-C0E5E596B8C1}
{998580C9-1518-43A8-A91B-B4C3D6B25B18} = {CC256320-312F-49E0-B3BE-C0E5E596B8C1}
+ {AB36FB60-1828-4E44-AEB5-A856ABC2DFBB} = {04634A03-F288-4A1B-9F81-258F23537516}
+ {31CB57D9-89FB-4857-A0DE-738DCD87140A} = {AB36FB60-1828-4E44-AEB5-A856ABC2DFBB}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {46EE281F-3A08-4E42-B0B0-809B895E15C0}
diff --git a/source/gen/stryker-config.yaml b/source/gen/stryker-config.yaml
new file mode 100644
index 0000000..63cb10d
--- /dev/null
+++ b/source/gen/stryker-config.yaml
@@ -0,0 +1,8 @@
+ stryker-config:
+ solution: '../FlashOWare.Generators.sln'
+ project: 'FlashOWare.Generators/FlashOWare.Generators.csproj'
+ test-projects:
+ - '../tests/FlashOWare.Generated.Tests/FlashOWare.Generated.Tests.csproj'
+ - '../tests/FlashOWare.Generators.Tests/FlashOWare.Generators.Tests.csproj'
+ reporters:
+ - 'markdown'
From 4c18d696ffa13d7fe221346b17c39b524aa257df Mon Sep 17 00:00:00 2001
From: Gregor Dostal <10714600+Gh0stWalk3r@users.noreply.github.com>
Date: Mon, 18 Dec 2023 09:56:46 +0100
Subject: [PATCH 3/8] Pin OS version
---
.github/workflows/ci.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 0663563..1b8389d 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -32,7 +32,7 @@ jobs:
strategy:
fail-fast: false
matrix:
- os: [macos-latest, ubuntu-latest, windows-latest]
+ os: [macos-12, ubuntu-22.04, windows-2022]
configuration: [Debug, Release]
runs-on: ${{ matrix.os }}
steps:
From 6fc57c30c7467bd56e7c9cb888b4612953e533f4 Mon Sep 17 00:00:00 2001
From: Gregor Dostal <10714600+Gh0stWalk3r@users.noreply.github.com>
Date: Mon, 18 Dec 2023 09:58:17 +0100
Subject: [PATCH 4/8] Remove comment
---
.github/workflows/ci.yml | 3 ---
1 file changed, 3 deletions(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 1b8389d..a284f1c 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -1,6 +1,3 @@
-# This workflow will build a .NET project
-# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-net
-
name: CI
on:
From 5386412542228821f813a4d6857b1616b28c1d6a Mon Sep 17 00:00:00 2001
From: Gregor Dostal <10714600+Gh0stWalk3r@users.noreply.github.com>
Date: Mon, 18 Dec 2023 10:08:13 +0100
Subject: [PATCH 5/8] Append new line
---
.config/dotnet-tools.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index 8cfcb61..95df29c 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -9,4 +9,4 @@
]
}
}
-}
\ No newline at end of file
+}
From ff63a2d064183bc09200e392e3e2452fabba3dd3 Mon Sep 17 00:00:00 2001
From: Gregor Dostal <10714600+Gh0stWalk3r@users.noreply.github.com>
Date: Mon, 18 Dec 2023 10:10:00 +0100
Subject: [PATCH 6/8] Pin all OS versions
---
.github/workflows/ci.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index a284f1c..8e1c0de 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -51,7 +51,7 @@ jobs:
name: Collect Code Coverage
needs:
- build
- runs-on: ubuntu-latest
+ runs-on: ubuntu-22.04
env:
COVERAGE_OUTPUT_PATH: artifacts/coverage
steps:
@@ -91,7 +91,7 @@ jobs:
- build
env:
STRYKER_OUTPUT_PATH: ${{ github.workspace }}/artifacts/stryker
- runs-on: ubuntu-latest
+ runs-on: ubuntu-22.04
steps:
- name: Setup Variables
# https://stryker-mutator.io/docs/stryker-net/reporters/#markdown-summary-reporter
From e331d4b4e7477ec30ed91421975610160ceef44d Mon Sep 17 00:00:00 2001
From: Gregor Dostal <10714600+Gh0stWalk3r@users.noreply.github.com>
Date: Mon, 18 Dec 2023 10:44:45 +0100
Subject: [PATCH 7/8] Collect code coverage for Debug build
---
.github/workflows/ci.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 8e1c0de..2cf2aaf 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -66,9 +66,9 @@ jobs:
- name: Restore dependencies
run: dotnet restore ${{ env.SLN_PATH }} --configfile nuget.config --no-cache
- name: Build
- run: dotnet build ${{ env.SLN_PATH }} --configuration Release --no-restore
+ run: dotnet build ${{ env.SLN_PATH }} --configuration Debug --no-restore
- name: Test
- run: dotnet test ${{ env.SLN_PATH }} --configuration Release --no-build --collect:"XPlat Code Coverage" --logger trx --results-directory ${{ env.COVERAGE_OUTPUT_PATH }}
+ run: dotnet test ${{ env.SLN_PATH }} --configuration Debug --no-build --collect:"XPlat Code Coverage" --logger trx --results-directory ${{ env.COVERAGE_OUTPUT_PATH }}
- name: Code Coverage Summary Report
uses: irongut/CodeCoverageSummary@v1.3.0
with:
From cd78d28b2214cc50a5f3ceddcf50741c88c578ae Mon Sep 17 00:00:00 2001
From: Gregor Dostal <10714600+Gh0stWalk3r@users.noreply.github.com>
Date: Mon, 18 Dec 2023 14:22:49 +0100
Subject: [PATCH 8/8] Fix style
---
source/Directory.Build.props | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/Directory.Build.props b/source/Directory.Build.props
index 2bf38e2..851a337 100644
--- a/source/Directory.Build.props
+++ b/source/Directory.Build.props
@@ -27,7 +27,7 @@
-
+