From a85199ed30a1def038c211e821acb91187ee885d Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sat, 30 Nov 2019 19:14:09 +0200 Subject: [PATCH 01/70] :tada: Initial commit --- .editorconfig | 1 + .gitignore | 1 + 2 files changed, 2 insertions(+) create mode 120000 .editorconfig create mode 120000 .gitignore diff --git a/.editorconfig b/.editorconfig new file mode 120000 index 0000000..6773984 --- /dev/null +++ b/.editorconfig @@ -0,0 +1 @@ +.config/.editorconfig \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 120000 index 0000000..0b35e65 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.config/.gitignore \ No newline at end of file From 7b5f026bf2bf678812a9c142676b87f136719139 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sat, 30 Nov 2019 19:15:23 +0200 Subject: [PATCH 02/70] :wrench: Adds configuration submodule --- .config | 1 + .gitmodules | 3 +++ 2 files changed, 4 insertions(+) create mode 160000 .config create mode 100644 .gitmodules diff --git a/.config b/.config new file mode 160000 index 0000000..9b9cc35 --- /dev/null +++ b/.config @@ -0,0 +1 @@ +Subproject commit 9b9cc35843015349a3033a0f28d9084b30c0e42c diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..54300f4 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule ".config"] + path = .config + url = https://github.com/kritikos-io/.config From 621aab6229a539202a3514864df2bf5578fdc741 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sat, 30 Nov 2019 19:15:41 +0200 Subject: [PATCH 03/70] :green_heart: Adds basic CI configuration --- azure-pipelines.yml | 157 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 azure-pipelines.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 0000000..8a9c46c --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,157 @@ +resources: + repositories: + - repository: self + checkoutOptions: + submodules: true + lfs: true +trigger: + branches: + include: + - master + - develop + - feature/* + - bugfix/* + paths: + include: + - src/* + - tests/* +variables: + - group: Environment + +jobs: +- job: Setup + pool: + vmImage: windows-latest + steps: + - powershell: | + dotnet tool install --tool-path .. gitversion.tool + displayName: Installing Dotnet Tools + + - powershell: | + $git = $(../dotnet-gitversion /output json /showvariable NugetVersion) + echo "##vso[task.setvariable variable=gitVersion;isOutput=true]$(../dotnet-gitversion /output json /showvariable NugetVersion)" + name: versioning + displayName: Setting version from git + + - powershell: | + echo "Current version: $(versioning.gitVersion)" + displayName: Shows currently compiling version + +- job: Building + pool: + vmImage: ubuntu-latest + dependsOn: + - Setup + variables: + Version: $[ dependencies.Setup.outputs['versioning.gitVersion'] ] + steps: + - checkout: self + fetchDepth: 1 + + - task: DotNetCoreCLI@2 + displayName: Restoring nugets + inputs: + command: 'restore' + arguments: -Project2ProjectTimeOut 20 + verbosityRestore: Normal + + - task: DotNetCoreCLI@2 + displayName: Building Projects + inputs: + command: build + projects: src/*/*.csproj + configuration: $(BuildConfiguration) + arguments: -o $(build.artifactStagingDirectory)/build + versioningScheme: byEnvVar + versionEnvVar: Version + + - task: PublishBuildArtifacts@1 + displayName: Publish build artifacts + inputs: + PathtoPublish: $(build.artifactStagingDirectory)/build + ArtifactName: 'drop' + + - task: DotNetCoreCLI@2 + displayName: Packing as Nugets + inputs: + command: pack + searchPatternPack: 'src/*/*.csproj' + configuration: $(BuildConfiguration) + versioningScheme: byEnvVar + versionEnvVar: Version + verbosityPack: normal + packDirectory: $(build.artifactStagingDirectory)/nuget + + - task: PublishBuildArtifacts@1 + name: publishNuget + displayName: Publish nugets + inputs: + PathtoPublish: $(build.artifactStagingDirectory)/nuget + ArtifactName: 'nuget' + +- job: Testing + pool: + vmImage: ubuntu-latest + dependsOn: + - Setup + variables: + Version: $[ dependencies.Setup.outputs['versioning.gitVersion'] ] + steps: + - checkout: self + fetchDepth: 1 + + - task: DotNetCoreCLI@2 + name: dotnetRestore + displayName: Restoring nugets + inputs: + command: 'restore' + arguments: -Project2ProjectTimeOut 20 --packages "$(Build.BinariesDirectory)/.nuget) + verbosityRestore: Normal + + - task: DotNetCoreCLI@2 + name: dotnetBuild + displayName: Building Projects + inputs: + command: build + projects: src/*/*.*proj + configuration: $(BuildConfiguration) + versioningScheme: byEnvVar + versionEnvVar: Version + + - task: DotNetCoreCLI@2 + name: dotnetTest + displayName: Testing implementations + inputs: + command: test + projects: 'tests/*/*.*proj' + configuration: 'Debug' + testRunTitle: 'Running tests' + +- job: Publishing + pool: + vmImage: ubuntu-latest + dependsOn: + - Setup + - Building + - Testing + variables: + Version: $[ dependencies.Setup.outputs['versioning.gitVersion'] ] + steps: + - checkout: none + + - task: DownloadPipelineArtifact@2 + displayName: Downloading artifact + inputs: + artifactName: 'nuget' + targetPath: $(build.artifactStagingDirectory)/nuget + + - task: DotNetCoreCLI@2 + displayName: Pushing to nuget server + inputs: + workingDirectory: $(build.artifactStagingDirectory)/nuget + command: 'custom' + custom: nuget + arguments: > + push *.nupkg + -s $(KritikosNuget) + -k $(KritikosApiKey) From a6a6f9d618b6a33e318d2485a5cdba5caa7b96a3 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sat, 30 Nov 2019 19:38:56 +0200 Subject: [PATCH 04/70] :pushpin: Adds common nuget configuration --- Directory.Build.props | 1 + Directory.Build.targets | 1 + 2 files changed, 2 insertions(+) create mode 120000 Directory.Build.props create mode 120000 Directory.Build.targets diff --git a/Directory.Build.props b/Directory.Build.props new file mode 120000 index 0000000..ecfbb11 --- /dev/null +++ b/Directory.Build.props @@ -0,0 +1 @@ +.config/Directory.Build.props \ No newline at end of file diff --git a/Directory.Build.targets b/Directory.Build.targets new file mode 120000 index 0000000..2252747 --- /dev/null +++ b/Directory.Build.targets @@ -0,0 +1 @@ +.config/Directory.Build.targets \ No newline at end of file From 536bf8b90f2257d104feeb6f20e035369825abfa Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sat, 30 Nov 2019 19:40:55 +0200 Subject: [PATCH 05/70] :page_facing_up: Adds license file (Apache 2.0) --- LICENSE.md | 197 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 197 insertions(+) create mode 100644 LICENSE.md diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..e99f770 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,197 @@ +# Apache License + +Version 2.0, January 2004 + + + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +## 1. Definitions + +"License" shall mean the terms and conditions for use, reproduction, and +distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright +owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities +that control, are controlled by, or are under common control with that entity. +For the purposes of this definition, "control" means (i) the power, direct or +indirect, to cause the direction or management of such entity, whether by +contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the +outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising +permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including +but not limited to software source code, documentation source, and configuration +files. + +"Object" form shall mean any form resulting from mechanical transformation or +translation of a Source form, including but not limited to compiled object code, +generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made +available under the License, as indicated by a copyright notice that is included +in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that +is based on (or derived from) the Work and for which the editorial revisions, +annotations, elaborations, or other modifications represent, as a whole, an +original work of authorship. For the purposes of this License, Derivative Works +shall not include works that remain separable from, or merely link (or bind by +name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version +of the Work and any modifications or additions to that Work or Derivative Works +thereof, that is intentionally submitted to Licensor for inclusion in the Work +by the copyright owner or by an individual or Legal Entity authorized to submit +on behalf of the copyright owner. For the purposes of this definition, +"submitted" means any form of electronic, verbal, or written communication sent +to the Licensor or its representatives, including but not limited to +communication on electronic mailing lists, source code control systems, and +issue tracking systems that are managed by, or on behalf of, the Licensor for +the purpose of discussing and improving the Work, but excluding communication +that is conspicuously marked or otherwise designated in writing by the copyright +owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf +of whom a Contribution has been received by Licensor and subsequently +incorporated within the Work. + +## 2. Grant of Copyright License + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable copyright license to reproduce, prepare Derivative Works of, +publicly display, publicly perform, sublicense, and distribute the Work and such +Derivative Works in Source or Object form. + +## 3. Grant of Patent License + +Subject to the terms and conditions of this License, each Contributor hereby +grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, +irrevocable (except as stated in this section) patent license to make, have +made, use, offer to sell, sell, import, and otherwise transfer the Work, where +such license applies only to those patent claims licensable by such Contributor +that are necessarily infringed by their Contribution(s) alone or by combination +of their Contribution(s) with the Work to which such Contribution(s) was +submitted. If You institute patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Work or a +Contribution incorporated within the Work constitutes direct or contributory +patent infringement, then any patent licenses granted to You under this License +for that Work shall terminate as of the date such litigation is filed. + +## 4. Redistribution + +You may reproduce and distribute copies of the Work or Derivative Works thereof +in any medium, with or without modifications, and in Source or Object form, +provided that You meet the following conditions: + +1. You must give any other recipients of the Work or Derivative Works a copy of + this License; and + +1. You must cause any modified files to carry prominent notices stating that + You changed the files; and + +1. You must retain, in the Source form of any Derivative Works that You + distribute, all copyright, patent, trademark, and attribution notices from + the Source form of the Work, excluding those notices that do not pertain to + any part of the Derivative Works; and + +1. If the Work includes a "NOTICE" text file as part of its distribution, then + any Derivative Works that You distribute must include a readable copy of the + attribution notices contained within such NOTICE file, excluding those + notices that do not pertain to any part of the Derivative Works, in at least + one of the following places: within a NOTICE text file distributed as part + of the Derivative Works; within the Source form or documentation, if + provided along with the Derivative Works; or, within a display generated by + the Derivative Works, if and wherever such third-party notices normally + appear. The contents of the NOTICE file are for informational purposes only + and do not modify the License. You may add Your own attribution notices + within Derivative Works that You distribute, alongside or as an addendum to + the NOTICE text from the Work, provided that such additional attribution + notices cannot be construed as modifying the License. + +You may add Your own copyright statement to Your modifications and may provide +additional or different license terms and conditions for use, reproduction, or +distribution of Your modifications, or for any such Derivative Works as a whole, +provided Your use, reproduction, and distribution of the Work otherwise complies +with the conditions stated in this License. + +## 5. Submission of Contributions + +Unless You explicitly state otherwise, any Contribution intentionally submitted +for inclusion in the Work by You to the Licensor shall be under the terms and +conditions of this License, without any additional terms or conditions. +Notwithstanding the above, nothing herein shall supersede or modify the terms of +any separate license agreement you may have executed with Licensor regarding +such Contributions. + +## 6. Trademarks + +This License does not grant permission to use the trade names, trademarks, +service marks, or product names of the Licensor, except as required for +reasonable and customary use in describing the origin of the Work and +reproducing the content of the NOTICE file. + +## 7. Disclaimer of Warranty + +Unless required by applicable law or agreed to in writing, Licensor provides the +Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, +including, without limitation, any warranties or conditions of TITLE, NON- +INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are +solely responsible for determining the appropriateness of using or +redistributing the Work and assume any risks associated with Your exercise of +permissions under this License. + +## 8. Limitation of Liability + +In no event and under no legal theory, whether in tort (including negligence), +contract, or otherwise, unless required by applicable law (such as deliberate +and grossly negligent acts) or agreed to in writing, shall any Contributor be +liable to You for damages, including any direct, indirect, special, incidental, +or consequential damages of any character arising as a result of this License or +out of the use or inability to use the Work (including but not limited to +damages for loss of goodwill, work stoppage, computer failure or malfunction, or +any and all other commercial damages or losses), even if such Contributor has +been advised of the possibility of such damages. + +## 9. Accepting Warranty or Additional Liability + +While redistributing the Work or Derivative Works thereof, You may choose to +offer, and charge a fee for, acceptance of support, warranty, indemnity, or +other liability obligations and/or rights consistent with this License. However, +in accepting such obligations, You may act only on Your own behalf and on Your +sole responsibility, not on behalf of any other Contributor, and only if You +agree to indemnify, defend, and hold each Contributor harmless for any liability +incurred by, or claims asserted against, such Contributor by reason of your +accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +## APPENDIX: How to apply the Apache License to your work + +To apply the Apache License to your work, attach the following boilerplate +notice, with the fields enclosed by brackets "{}" replaced with your own +identifying information. (Don't include the brackets!) The text should be +enclosed in the appropriate comment syntax for the file format. We also +recommend that a file or class name and description of purpose be included on +the same "printed page" as the copyright notice for easier identification within +third-party archives. + + Copyright 2017 @akritikos + + Licensed under the Apache License, Version 2.0 (the "License"); 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. From 015933e906b58eb1355b7821a136e5b9937c4a6a Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sat, 30 Nov 2019 19:41:37 +0200 Subject: [PATCH 06/70] :wrench: Adds Visual Studio Code configuration files --- .vscode | 1 + Dotnet.code-workspace | 1 + 2 files changed, 2 insertions(+) create mode 120000 .vscode create mode 120000 Dotnet.code-workspace diff --git a/.vscode b/.vscode new file mode 120000 index 0000000..f10b680 --- /dev/null +++ b/.vscode @@ -0,0 +1 @@ +.config/.vscode \ No newline at end of file diff --git a/Dotnet.code-workspace b/Dotnet.code-workspace new file mode 120000 index 0000000..faea5b2 --- /dev/null +++ b/Dotnet.code-workspace @@ -0,0 +1 @@ +.config/Dotnet.code-workspace \ No newline at end of file From 9fe93d5f8cb0a70b2f9dda4343e7f34afadd2be0 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sat, 30 Nov 2019 19:44:01 +0200 Subject: [PATCH 07/70] :wrench: Implements shared Resharper configuration --- Resharper.sln.DotSettings | 1 + 1 file changed, 1 insertion(+) create mode 120000 Resharper.sln.DotSettings diff --git a/Resharper.sln.DotSettings b/Resharper.sln.DotSettings new file mode 120000 index 0000000..d5ff3a1 --- /dev/null +++ b/Resharper.sln.DotSettings @@ -0,0 +1 @@ +.config/Resharper.sln.DotSettings \ No newline at end of file From 827f44ac054c2b0e9e4549a056110a0b55cfbd9a Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sat, 30 Nov 2019 20:09:16 +0200 Subject: [PATCH 08/70] :wrench: Adds gulp tasks for minification and sass compiling --- gulpfile.js | 1 + 1 file changed, 1 insertion(+) create mode 120000 gulpfile.js diff --git a/gulpfile.js b/gulpfile.js new file mode 120000 index 0000000..14eda9b --- /dev/null +++ b/gulpfile.js @@ -0,0 +1 @@ +.config/gulpfile.js \ No newline at end of file From 412d6c58c0f1cb08d291bed6c276904f691e8729 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sat, 30 Nov 2019 20:09:58 +0200 Subject: [PATCH 09/70] :speech_balloon: Adds github templates --- .github/CODEOWNERS | 1 + .github/CODE_OF_CONDUCT.md | 76 +++++++++++++++++++++++ .github/ISSUE_TEMPLATE/BUG_REPORT.md | 39 ++++++++++++ .github/ISSUE_TEMPLATE/FEATURE_REQUEST.md | 24 +++++++ .github/ISSUE_TEMPLATE/config.yml | 1 + .github/PULL_REQUEST_TEMPLATE.md | 20 ++++++ 6 files changed, 161 insertions(+) create mode 100644 .github/CODEOWNERS create mode 100644 .github/CODE_OF_CONDUCT.md create mode 100644 .github/ISSUE_TEMPLATE/BUG_REPORT.md create mode 100644 .github/ISSUE_TEMPLATE/FEATURE_REQUEST.md create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/PULL_REQUEST_TEMPLATE.md diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..b4d7ad6 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +*.cs @akritikos diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..38a724e --- /dev/null +++ b/.github/CODE_OF_CONDUCT.md @@ -0,0 +1,76 @@ +# Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, sex characteristics, gender identity and expression, +level of experience, education, socio-economic status, nationality, personal +appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or + advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at [akritikos@nessos.gr](mailto:akritikos@nessos.gr). All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at [https://www.contributor-covenant.org/version/1/4/code-of-conduct.html](https://www.contributor-covenant.org/version/1/4/code-of-conduct.html) + +[homepage]: https://www.contributor-covenant.org + +For answers to common questions about this code of conduct, see +[https://www.contributor-covenant.org/faq](https://www.contributor-covenant.org/faq) diff --git a/.github/ISSUE_TEMPLATE/BUG_REPORT.md b/.github/ISSUE_TEMPLATE/BUG_REPORT.md new file mode 100644 index 0000000..df7ec41 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/BUG_REPORT.md @@ -0,0 +1,39 @@ +--- +name: "\U0001F41B Bug Report" +about: "If something isn't working as expected." +title: '' +labels: 'i: bug, i: needs triage' +assignees: 'akritikos' +--- + +## Bug Report + +Clean up this template after reading it and provide relevant information about the bug you're reporting! + +## Prerequisites + +* [ ] Can you reproduce the problem in a deterministic way? +* [ ] Are you running the latest version? +* [ ] Are you reporting to the correct repository? +* [ ] Did you perform a cursory search? + +## Current Behavior + +A clear and concise description of the behavior. + +## Expected behavior/code + +A clear and concise description of what you expected to happen (or code). + +### Environment + +* Operating System +* .NET core version + +### Possible Solution + +`Only if you have suggestions on a fix for the bug` + +### Additional context/Screenshots + +Add any other context about the problem here. If applicable, add screenshots to help explain. diff --git a/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md b/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md new file mode 100644 index 0000000..248505f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md @@ -0,0 +1,24 @@ +--- +name: "\U0001F680 Feature Request" +about: "I have a suggestion (and may want to implement it)!" +title: '' +labels: 'i: enhancement, i: needs triage' +assignees: 'akritikos' +--- + +## Feature Request + +Clean up this template after reading it and provide relevant information about the bug you're requesting! + +## Is your feature request related to a problem? + +A clear and concise description of what the problem is. +`I have an issue when [...]` + +## Describe the feature you'd like + +A clear and concise description of what you want to happen. Add any considered drawbacks. + +## Describe alternatives you've considered + +A clear and concise description of any alternative solutions or features you've considered. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..3ba13e0 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..530a56d --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,20 @@ +# Pull Request Template + +Clean up this template and provide relevant information about your pull request! + +## All Submissions + +* [ ] Have you followed the guidelines in our [Contributing](../.github/CONTRIBUTING.md) document? +* [ ] Have you checked to ensure there aren't other open [Pull Requests](../../../pulls) for the same update/change? +* [ ] Does your pull request target an open issue? + +### New Feature Submissions + +* [ ] Does your submission pass tests? +* [ ] Have you lint your code locally prior to submission? + +### Changes to Core Features + +* [ ] Have you added an explanation of what your changes do and why you'd like us to include them? +* [ ] Have you written new tests for your core changes, as applicable? +* [ ] Have you successfully ran tests with your changes locally? From 1c52c71e054f72ba1300ee990537367e04fb637f Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sat, 30 Nov 2019 20:10:40 +0200 Subject: [PATCH 10/70] :clown_face: Adds initial solution --- Dotnet.sln | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 Dotnet.sln diff --git a/Dotnet.sln b/Dotnet.sln new file mode 100644 index 0000000..308be35 --- /dev/null +++ b/Dotnet.sln @@ -0,0 +1,37 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29509.3 +MinimumVisualStudioVersion = 15.0.26124.0 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Configuration", "Configuration", "{0577A3E6-642A-4865-90E7-70103A1B0880}" + ProjectSection(SolutionItems) = preProject + .config\.editorconfig = .config\.editorconfig + .config\.gitignore = .config\.gitignore + azure-pipelines.yml = azure-pipelines.yml + .config\Directory.Build.props = .config\Directory.Build.props + .config\Directory.Build.targets = .config\Directory.Build.targets + .config\dotnet.ruleset = .config\dotnet.ruleset + .config\gulpfile.js = .config\gulpfile.js + .config\stylecop.json = .config\stylecop.json + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{52270E06-D3BB-4B8E-A261-377E460B5FD5}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{4FAAB5E4-2D81-4062-90D2-6F68DF746BD2}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {51F9BF65-6DFB-4A56-AC1C-EA87B6678C8B} + EndGlobalSection +EndGlobal From 08b0461f2ef85e4b03d905128e4dcc5b3bf849fe Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sat, 30 Nov 2019 20:10:56 +0200 Subject: [PATCH 11/70] :pencil: Adds documentation --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..76d424d --- /dev/null +++ b/README.md @@ -0,0 +1,8 @@ +# Templates - Dotnet + +A simple template leveraging [.Config][1] dotfiles submodule for rapid project deployment. Simply rename Solution.{code-workspace,sln,sln.DotSettings} to your project name and get started! Afterwards, replace this readme with the actual documentation of your project. + +Additionally, until GitHub properly supports submodule definitions from template repositories, after cloning you should run +```git submodule add https://github.com/kritikos-io/.config``` from the repository root. You can replace the submodule with a compatible fork (to preserve your own default namespace etc) **provided it keeps file naming intact** since most files are appearing as symlinks. + +[1]: https://github.com/kritikos-io/.config From 412e2aab45072f0d95feaec0b9ac8337d9113e8c Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sat, 7 Dec 2019 14:12:48 +0200 Subject: [PATCH 12/70] :recycle: Renames resharper settings for consistency --- Resharper.sln.DotSettings => Dotnet.sln.DotSettings | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Resharper.sln.DotSettings => Dotnet.sln.DotSettings (100%) diff --git a/Resharper.sln.DotSettings b/Dotnet.sln.DotSettings similarity index 100% rename from Resharper.sln.DotSettings rename to Dotnet.sln.DotSettings From c79860e1a9a35ab25bee60c1fd7e76751241e149 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sat, 7 Dec 2019 14:13:23 +0200 Subject: [PATCH 13/70] :wrench: Exposes Semantic Versioning configuration --- GitVersion.yml | 1 + 1 file changed, 1 insertion(+) create mode 120000 GitVersion.yml diff --git a/GitVersion.yml b/GitVersion.yml new file mode 120000 index 0000000..3d6f888 --- /dev/null +++ b/GitVersion.yml @@ -0,0 +1 @@ +.config/GitVersion.yml \ No newline at end of file From 4a640e4ec67f39dbbef3a442d28a1d4422753582 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sat, 7 Dec 2019 23:56:25 +0200 Subject: [PATCH 14/70] :green_heart: Updates CI configuration --- azure-pipelines.yml | 175 +++++++++++++++++++++++--------------------- 1 file changed, 90 insertions(+), 85 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 8a9c46c..5d5d17d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -5,152 +5,157 @@ resources: submodules: true lfs: true trigger: + batch: true branches: include: - master - develop - feature/* - bugfix/* + - release/* paths: include: + - azure-pipelines.yml - src/* - tests/* variables: - group: Environment - + - group: ApiKeys + - name: SONAR_PROJECT + value: REPLACE_ME jobs: -- job: Setup +- job: Version pool: - vmImage: windows-latest + vmImage: ubuntu-latest steps: - - powershell: | - dotnet tool install --tool-path .. gitversion.tool - displayName: Installing Dotnet Tools - - - powershell: | - $git = $(../dotnet-gitversion /output json /showvariable NugetVersion) - echo "##vso[task.setvariable variable=gitVersion;isOutput=true]$(../dotnet-gitversion /output json /showvariable NugetVersion)" - name: versioning - displayName: Setting version from git - - - powershell: | - echo "Current version: $(versioning.gitVersion)" - displayName: Shows currently compiling version - -- job: Building + - pwsh: dotnet tool install --tool-path .. gitversion.tool + displayName: Install GitVersion + - pwsh: | + echo "##vso[task.setvariable variable=gitVersion;isOutput=true]$(../dotnet-gitversion /output json /showvariable SemVer)" + "Current version: $(../dotnet-gitversion /output json /showvariable SemVer)" + displayName: Sets SemVer + name: versioning +- job: Build pool: vmImage: ubuntu-latest dependsOn: - - Setup + - Version variables: - Version: $[ dependencies.Setup.outputs['versioning.gitVersion'] ] + Version: $[ dependencies.Version.outputs['versioning.gitVersion'] ] steps: - checkout: self fetchDepth: 1 - - task: DotNetCoreCLI@2 - displayName: Restoring nugets + displayName: Build Solution inputs: - command: 'restore' - arguments: -Project2ProjectTimeOut 20 - verbosityRestore: Normal - - - task: DotNetCoreCLI@2 - displayName: Building Projects - inputs: - command: build - projects: src/*/*.csproj + command: 'build' configuration: $(BuildConfiguration) - arguments: -o $(build.artifactStagingDirectory)/build + arguments: '-o $(build.artifactStagingDirectory)/build' versioningScheme: byEnvVar versionEnvVar: Version - + verbosityRestore: Minimal - task: PublishBuildArtifacts@1 - displayName: Publish build artifacts + displayName: Publish Build inputs: PathtoPublish: $(build.artifactStagingDirectory)/build ArtifactName: 'drop' - + publishLocation: 'Container' - task: DotNetCoreCLI@2 - displayName: Packing as Nugets + displayName: Pack Nugets inputs: - command: pack - searchPatternPack: 'src/*/*.csproj' + command: 'pack' + packagesToPack: 'src/*/*.csproj' + packDirectory: '$(build.artifactStagingDirectory)/nuget' configuration: $(BuildConfiguration) versioningScheme: byEnvVar versionEnvVar: Version - verbosityPack: normal - packDirectory: $(build.artifactStagingDirectory)/nuget - + verbosityRestore: Minimal + verbosityPack: Minimal - task: PublishBuildArtifacts@1 - name: publishNuget - displayName: Publish nugets + displayName: Publish Nugets inputs: - PathtoPublish: $(build.artifactStagingDirectory)/nuget + PathtoPublish: '$(build.artifactStagingDirectory)/nuget' ArtifactName: 'nuget' - -- job: Testing + publishLocation: 'Container' +- job: Test pool: vmImage: ubuntu-latest dependsOn: - - Setup + - Version variables: - Version: $[ dependencies.Setup.outputs['versioning.gitVersion'] ] + Version: $[ dependencies.Version.outputs['versioning.gitVersion'] ] + GITHUB_KEY: $(GitHubApiKey) + SONAR_ORG: $(SonarCloudOrganization) + SONAR_KEY: $(SonarCloudApiKey) + SONAR_URL: $(SonarCloudHost) + CODECOV_KEY: $(CodeCovApiKey) + COVERALLS_KEY: $(CoverallsApiKey) steps: - checkout: self - fetchDepth: 1 - + - pwsh: | + dotnet tool install --tool-path .. dotnet-sonarscanner + dotnet tool install --tool-path .. coveralls.net + dotnet tool install --tool-path .. Codecov.Tool + displayName: Install Tools + - pwsh: | + ../dotnet-sonarscanner begin /k:"$(SONAR_PROJECT)" /v:"$(Version)" /o:"$(SONAR_ORG)" /d:sonar.host.url="$(SONAR_URL)" /d:sonar.login="$(SONAR_KEY)" /d:sonar.cs.opencover.reportsPaths="$(build.artifactStagingDirectory)/coverage/coverage.opencover.xml" /d:sonar.branch.name="$(Build.SourceBranchName)" /d:sonar.github.repository="$(Build.Repository.Name)" /d:sonar.github.oauth=$(GITHUB_KEY) + condition: ne(variables['Build.Reason'], 'PullRequest') + displayName: SonarCloud (commit) + - pwsh: | + ../dotnet-sonarscanner begin /k:"$(SONAR_PROJECT)" /v:"$(Version)" /o:"$(SONAR_ORG)" /d:sonar.host.url="$(SONAR_URL)" /d:sonar.login="$(SONAR_KEY)" /d:sonar.cs.opencover.reportsPaths="$(build.artifactStagingDirectory)/coverage/coverage.opencover.xml" /d:sonar.github.repository="$(Build.Repository.Name)" /d:sonar.github.oauth=$(GITHUB_KEY) /d:sonar.pullrequest.key="$(System.PullRequest.PullRequestNumber)" /d:sonar.pullrequest.branch="$(Build.SourceBranchName)" /d:sonar.pullrequest.provider="github" + condition: eq(variables['Build.Reason'], 'PullRequest') + displayName: SonarCloud (PR) - task: DotNetCoreCLI@2 - name: dotnetRestore - displayName: Restoring nugets + displayName: Test Solution inputs: - command: 'restore' - arguments: -Project2ProjectTimeOut 20 --packages "$(Build.BinariesDirectory)/.nuget) - verbosityRestore: Normal - - - task: DotNetCoreCLI@2 - name: dotnetBuild - displayName: Building Projects - inputs: - command: build - projects: src/*/*.*proj - configuration: $(BuildConfiguration) - versioningScheme: byEnvVar - versionEnvVar: Version - - - task: DotNetCoreCLI@2 - name: dotnetTest - displayName: Testing implementations - inputs: - command: test - projects: 'tests/*/*.*proj' + command: 'test' configuration: 'Debug' - testRunTitle: 'Running tests' - -- job: Publishing + arguments: '--logger trx /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:CoverletOutput=$(build.artifactStagingDirectory)/coverage/ /p:MergeWith=$(build.artifactStagingDirectory)/coverage/coverage.json' + publishTestResults: true + verbosityPack: Minimal + verbosityRestore: Minimal + testRunTitle: 'Unit Tests' + - pwsh: | + ../dotnet-sonarscanner end /d:sonar.login="$(SONAR_KEY)" + displayName: Publish SonarCloud + - task: PublishBuildArtifacts@1 + displayName: Publish Test Coverage + inputs: + PathtoPublish: $(build.artifactStagingDirectory)/coverage + ArtifactName: 'coverage' + publishLocation: 'Container' + - pwsh: | + ../csmacnz.Coveralls --repoToken "$(COVERALLS_KEY)" --opencover -i $(build.artifactStagingDirectory)/coverage/coverage.opencover.xml --useRelativePaths --commitId "$(Build.SourceVersion)" --commitBranch "$(Build.SourceBranchName)" --commitAuthor "$(Build.RequestedFor)" --commitEmail "$(Build.RequestedForEmail)" --commitMessage "$(Build.SourceVersionMessage)" --jobId "$(Build.BuildId)" + ../codecov --token "$(CodeCovApiKey)" --file $(build.artifactStagingDirectory)/coverage/coverage.opencover.xml --branch "$(Build.SourceBranchName)" --sha "$(Build.SourceVersion)" + condition: ne(variables['Build.Reason'], 'PullRequest') + displayName: Push Coverage (commit) + - pwsh: | + ../csmacnz.Coveralls --repoToken "$(COVERALLS_KEY)" --opencover -i $(build.artifactStagingDirectory)/coverage/coverage.opencover.xml --useRelativePaths --commitId "$(Build.SourceVersion)" --commitBranch "$(Build.SourceBranchName)" --commitAuthor "$(Build.RequestedFor)" --commitEmail "$(Build.RequestedForEmail)" --commitMessage "$(Build.SourceVersionMessage)" --jobId "$(Build.BuildId)" --pullRequest "$(System.PullRequest.PullRequestNumber)" + ../codecov --token "$(CodeCovApiKey)" --file $(build.artifactStagingDirectory)/coverage/coverage.opencover.xml --branch "$(Build.SourceBranchName)" --sha "$(Build.SourceVersion)" --pr "$(System.PullRequest.PullRequestNumber)" + condition: eq(variables['Build.Reason'], 'PullRequest') + displayName: Push Coverage (PR) +- job: Publish pool: vmImage: ubuntu-latest dependsOn: - - Setup - - Building - - Testing - variables: - Version: $[ dependencies.Setup.outputs['versioning.gitVersion'] ] + - Version + - Build + - Test steps: - checkout: none - - task: DownloadPipelineArtifact@2 - displayName: Downloading artifact + displayName: Fetch nugets inputs: + buildType: 'current' artifactName: 'nuget' targetPath: $(build.artifactStagingDirectory)/nuget - - task: DotNetCoreCLI@2 - displayName: Pushing to nuget server + condition: ne(variables['Build.Reason'], 'PullRequest') + displayName: Push Nugets inputs: workingDirectory: $(build.artifactStagingDirectory)/nuget command: 'custom' - custom: nuget + custom: 'nuget' arguments: > push *.nupkg -s $(KritikosNuget) From cc8551f9f7d1512adae943e0a83527e2ca6a9241 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sat, 19 Jun 2021 16:37:47 +0300 Subject: [PATCH 15/70] =?UTF-8?q?=F0=9F=94=A7=20Properly=20implements=20co?= =?UTF-8?q?nfiguration=20submodule?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .config | 2 +- .gitignore | 2 +- .vscode | 1 - .vscode/tasks.json | 1 + Dotnet.code-workspace | 2 +- Dotnet.sln.DotSettings | 2 +- README.md | 2 ++ gulpfile.js | 1 - 8 files changed, 7 insertions(+), 6 deletions(-) delete mode 120000 .vscode create mode 120000 .vscode/tasks.json delete mode 120000 gulpfile.js diff --git a/.config b/.config index 9b9cc35..a7d38f3 160000 --- a/.config +++ b/.config @@ -1 +1 @@ -Subproject commit 9b9cc35843015349a3033a0f28d9084b30c0e42c +Subproject commit a7d38f3c6c34168ec05935f8bb4898d77bc114d9 diff --git a/.gitignore b/.gitignore index 0b35e65..e6ab0ae 120000 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -.config/.gitignore \ No newline at end of file +.config/.gitignore-dotnet \ No newline at end of file diff --git a/.vscode b/.vscode deleted file mode 120000 index f10b680..0000000 --- a/.vscode +++ /dev/null @@ -1 +0,0 @@ -.config/.vscode \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 120000 index 0000000..a46957e --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1 @@ +../.config/.vscode/tasks-dotnet.json \ No newline at end of file diff --git a/Dotnet.code-workspace b/Dotnet.code-workspace index faea5b2..45c482d 120000 --- a/Dotnet.code-workspace +++ b/Dotnet.code-workspace @@ -1 +1 @@ -.config/Dotnet.code-workspace \ No newline at end of file +.config/Sample.code-workspace \ No newline at end of file diff --git a/Dotnet.sln.DotSettings b/Dotnet.sln.DotSettings index d5ff3a1..920203b 120000 --- a/Dotnet.sln.DotSettings +++ b/Dotnet.sln.DotSettings @@ -1 +1 @@ -.config/Resharper.sln.DotSettings \ No newline at end of file +.config/Sample.sln.DotSettings \ No newline at end of file diff --git a/README.md b/README.md index 76d424d..810361c 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ A simple template leveraging [.Config][1] dotfiles submodule for rapid project deployment. Simply rename Solution.{code-workspace,sln,sln.DotSettings} to your project name and get started! Afterwards, replace this readme with the actual documentation of your project. +Additionally, change the Project & Repository urls on [src/Directory.Build.props](src/Directory.Build.props). + Additionally, until GitHub properly supports submodule definitions from template repositories, after cloning you should run ```git submodule add https://github.com/kritikos-io/.config``` from the repository root. You can replace the submodule with a compatible fork (to preserve your own default namespace etc) **provided it keeps file naming intact** since most files are appearing as symlinks. diff --git a/gulpfile.js b/gulpfile.js deleted file mode 120000 index 14eda9b..0000000 --- a/gulpfile.js +++ /dev/null @@ -1 +0,0 @@ -.config/gulpfile.js \ No newline at end of file From 1b19576225bc99c8e62090ffac05f8838750965f Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sat, 19 Jun 2021 16:47:14 +0300 Subject: [PATCH 16/70] =?UTF-8?q?=F0=9F=94=A7=20Adds=20handling=20for=20sa?= =?UTF-8?q?mples=20&=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .config | 2 +- samples/Directory.Build.props | 1 + src/Directory.build.props | 10 ++++++++++ tests/Directory.Build.props | 1 + 4 files changed, 13 insertions(+), 1 deletion(-) create mode 120000 samples/Directory.Build.props create mode 100644 src/Directory.build.props create mode 120000 tests/Directory.Build.props diff --git a/.config b/.config index a7d38f3..0da22b3 160000 --- a/.config +++ b/.config @@ -1 +1 @@ -Subproject commit a7d38f3c6c34168ec05935f8bb4898d77bc114d9 +Subproject commit 0da22b3059abfc03db8a2eb584f8d10328fc353f diff --git a/samples/Directory.Build.props b/samples/Directory.Build.props new file mode 120000 index 0000000..dac8906 --- /dev/null +++ b/samples/Directory.Build.props @@ -0,0 +1 @@ +../.config/Extras.Directory.Build.props \ No newline at end of file diff --git a/src/Directory.build.props b/src/Directory.build.props new file mode 100644 index 0000000..24a2d2f --- /dev/null +++ b/src/Directory.build.props @@ -0,0 +1,10 @@ + + + + + + + http://localhost + http://localhost + + diff --git a/tests/Directory.Build.props b/tests/Directory.Build.props new file mode 120000 index 0000000..92b9d7a --- /dev/null +++ b/tests/Directory.Build.props @@ -0,0 +1 @@ +../.config/Tests.Directory.Build.props \ No newline at end of file From 2045af18ab589f22b908382a5faa114208f6befc Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sat, 19 Jun 2021 16:47:37 +0300 Subject: [PATCH 17/70] =?UTF-8?q?=F0=9F=94=A7=20Implements=20missing=20con?= =?UTF-8?q?figuration=20files?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dotnet.ruleset | 1 + stylecop.json | 1 + xunit.runner.json | 1 + 3 files changed, 3 insertions(+) create mode 120000 dotnet.ruleset create mode 120000 stylecop.json create mode 120000 xunit.runner.json diff --git a/dotnet.ruleset b/dotnet.ruleset new file mode 120000 index 0000000..acdfd2d --- /dev/null +++ b/dotnet.ruleset @@ -0,0 +1 @@ +.config/dotnet.ruleset \ No newline at end of file diff --git a/stylecop.json b/stylecop.json new file mode 120000 index 0000000..68f7168 --- /dev/null +++ b/stylecop.json @@ -0,0 +1 @@ +.config/stylecop.json \ No newline at end of file diff --git a/xunit.runner.json b/xunit.runner.json new file mode 120000 index 0000000..fc25a87 --- /dev/null +++ b/xunit.runner.json @@ -0,0 +1 @@ +.config/xunit.runner.json \ No newline at end of file From 97d0b50fa700e2766f3b7f2ed5821d9e2ab5ff58 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sat, 19 Jun 2021 16:52:04 +0300 Subject: [PATCH 18/70] =?UTF-8?q?=F0=9F=9A=9A=20Ensures=20required=20folde?= =?UTF-8?q?rs=20exist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/.gitkeep | 1 + upload/.gitkeep | 1 + 2 files changed, 2 insertions(+) create mode 120000 packages/.gitkeep create mode 120000 upload/.gitkeep diff --git a/packages/.gitkeep b/packages/.gitkeep new file mode 120000 index 0000000..98ae275 --- /dev/null +++ b/packages/.gitkeep @@ -0,0 +1 @@ +../.config/.gitkeep \ No newline at end of file diff --git a/upload/.gitkeep b/upload/.gitkeep new file mode 120000 index 0000000..98ae275 --- /dev/null +++ b/upload/.gitkeep @@ -0,0 +1 @@ +../.config/.gitkeep \ No newline at end of file From f99d41d948f9eb158d1407b3891ea6a54ce3a45f Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sun, 20 Jun 2021 18:53:16 +0300 Subject: [PATCH 19/70] =?UTF-8?q?=F0=9F=9A=9A=20Renames=20Dotnet=20to=20So?= =?UTF-8?q?lution?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dotnet.code-workspace => Solution.code-workspace | 0 Dotnet.sln => Solution.sln | 2 ++ Dotnet.sln.DotSettings => Solution.sln.DotSettings | 0 3 files changed, 2 insertions(+) rename Dotnet.code-workspace => Solution.code-workspace (100%) rename Dotnet.sln => Solution.sln (92%) rename Dotnet.sln.DotSettings => Solution.sln.DotSettings (100%) diff --git a/Dotnet.code-workspace b/Solution.code-workspace similarity index 100% rename from Dotnet.code-workspace rename to Solution.code-workspace diff --git a/Dotnet.sln b/Solution.sln similarity index 92% rename from Dotnet.sln rename to Solution.sln index 308be35..9daa88f 100644 --- a/Dotnet.sln +++ b/Solution.sln @@ -19,6 +19,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{52270E06-D3B EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{4FAAB5E4-2D81-4062-90D2-6F68DF746BD2}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{95906F8E-04C3-49F0-96D5-D6B78A8FF9C9}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU diff --git a/Dotnet.sln.DotSettings b/Solution.sln.DotSettings similarity index 100% rename from Dotnet.sln.DotSettings rename to Solution.sln.DotSettings From f215b286781062920f82646ed8f0a90b7c52ec43 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sun, 20 Jun 2021 18:57:36 +0300 Subject: [PATCH 20/70] =?UTF-8?q?=F0=9F=94=A7=20Updates=20configuration=20?= =?UTF-8?q?submodule?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config b/.config index 0da22b3..dd8e83e 160000 --- a/.config +++ b/.config @@ -1 +1 @@ -Subproject commit 0da22b3059abfc03db8a2eb584f8d10328fc353f +Subproject commit dd8e83e3bf78511d896b7a33a89c2302ab51fbd1 From a71461fd29456287e0f0833785dcfc615884651f Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sun, 20 Jun 2021 19:07:21 +0300 Subject: [PATCH 21/70] =?UTF-8?q?=F0=9F=94=A7=20Sets=20submodule=20branch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitmodules | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index 54300f4..3aa7677 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,4 @@ [submodule ".config"] path = .config - url = https://github.com/kritikos-io/.config + url = https://github.com/kritikos-io/.configbranch = master + branch = master From a5a5163803a18d3a7c30b5db2f32cbaa3887d11d Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sun, 20 Jun 2021 19:09:29 +0300 Subject: [PATCH 22/70] =?UTF-8?q?=E2=9C=8F=EF=B8=8F=20Sets=20proper=20subm?= =?UTF-8?q?odule=20url?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index 3aa7677..49ce403 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule ".config"] path = .config - url = https://github.com/kritikos-io/.configbranch = master + url = https://github.com/kritikos-io/.config branch = master From d140b10bc206a72ff5a0d5444a5b1299d9987c8e Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sun, 20 Jun 2021 20:02:46 +0300 Subject: [PATCH 23/70] =?UTF-8?q?=F0=9F=8D=B1=20Adds=20nuget=20icon?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- icon.png | 1 + 1 file changed, 1 insertion(+) create mode 120000 icon.png diff --git a/icon.png b/icon.png new file mode 120000 index 0000000..11896e5 --- /dev/null +++ b/icon.png @@ -0,0 +1 @@ +.config/assets/nuget.png \ No newline at end of file From fc4e0d061e8f58a74c0cf6018390989e968d63d1 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Mon, 16 Aug 2021 17:14:26 +0300 Subject: [PATCH 24/70] =?UTF-8?q?=F0=9F=94=A7=20Uses=20latest=20configurat?= =?UTF-8?q?ion=20files?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .config | 2 +- Solution.sln | 27 +++++++++++++++------------ samples/.gitkeep | 1 + 3 files changed, 17 insertions(+), 13 deletions(-) create mode 120000 samples/.gitkeep diff --git a/.config b/.config index dd8e83e..f63882f 160000 --- a/.config +++ b/.config @@ -1 +1 @@ -Subproject commit dd8e83e3bf78511d896b7a33a89c2302ab51fbd1 +Subproject commit f63882fa4db0936576a6daf5c9f558fdf44ea3cb diff --git a/Solution.sln b/Solution.sln index 9daa88f..a83c4eb 100644 --- a/Solution.sln +++ b/Solution.sln @@ -1,35 +1,38 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29509.3 +# Visual Studio Version 17 +VisualStudioVersion = 17.0.31512.422 MinimumVisualStudioVersion = 15.0.26124.0 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Configuration", "Configuration", "{0577A3E6-642A-4865-90E7-70103A1B0880}" ProjectSection(SolutionItems) = preProject .config\.editorconfig = .config\.editorconfig - .config\.gitignore = .config\.gitignore + .config\.gitignore-dotnet = .config\.gitignore-dotnet azure-pipelines.yml = azure-pipelines.yml .config\Directory.Build.props = .config\Directory.Build.props .config\Directory.Build.targets = .config\Directory.Build.targets .config\dotnet.ruleset = .config\dotnet.ruleset - .config\gulpfile.js = .config\gulpfile.js + .config\GitVersion.yml = .config\GitVersion.yml + LICENSE.md = LICENSE.md .config\stylecop.json = .config\stylecop.json + .config\xunit.runner.json = .config\xunit.runner.json EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{52270E06-D3BB-4B8E-A261-377E460B5FD5}" + ProjectSection(SolutionItems) = preProject + src\Directory.build.props = src\Directory.build.props + EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{4FAAB5E4-2D81-4062-90D2-6F68DF746BD2}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{95906F8E-04C3-49F0-96D5-D6B78A8FF9C9}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Assets", "Assets", "{C78AC8C6-8CE2-4C77-9493-3E6F22D4F82B}" + ProjectSection(SolutionItems) = preProject + .config\assets\nuget.png = .config\assets\nuget.png + README.md = README.md + EndProjectSection +EndProject Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x64 = Release|x64 - Release|x86 = Release|x86 - EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection diff --git a/samples/.gitkeep b/samples/.gitkeep new file mode 120000 index 0000000..98ae275 --- /dev/null +++ b/samples/.gitkeep @@ -0,0 +1 @@ +../.config/.gitkeep \ No newline at end of file From 40d7cefeed44cf1941c911ee6c5a8f3bc42286cf Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Thu, 19 Aug 2021 11:30:10 +0300 Subject: [PATCH 25/70] =?UTF-8?q?=F0=9F=92=9A=20Removes=20old=20CI=20sampl?= =?UTF-8?q?e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- azure-pipelines.yml | 162 -------------------------------------------- 1 file changed, 162 deletions(-) delete mode 100644 azure-pipelines.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index 5d5d17d..0000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,162 +0,0 @@ -resources: - repositories: - - repository: self - checkoutOptions: - submodules: true - lfs: true -trigger: - batch: true - branches: - include: - - master - - develop - - feature/* - - bugfix/* - - release/* - paths: - include: - - azure-pipelines.yml - - src/* - - tests/* -variables: - - group: Environment - - group: ApiKeys - - name: SONAR_PROJECT - value: REPLACE_ME -jobs: -- job: Version - pool: - vmImage: ubuntu-latest - steps: - - pwsh: dotnet tool install --tool-path .. gitversion.tool - displayName: Install GitVersion - - pwsh: | - echo "##vso[task.setvariable variable=gitVersion;isOutput=true]$(../dotnet-gitversion /output json /showvariable SemVer)" - "Current version: $(../dotnet-gitversion /output json /showvariable SemVer)" - displayName: Sets SemVer - name: versioning -- job: Build - pool: - vmImage: ubuntu-latest - dependsOn: - - Version - variables: - Version: $[ dependencies.Version.outputs['versioning.gitVersion'] ] - steps: - - checkout: self - fetchDepth: 1 - - task: DotNetCoreCLI@2 - displayName: Build Solution - inputs: - command: 'build' - configuration: $(BuildConfiguration) - arguments: '-o $(build.artifactStagingDirectory)/build' - versioningScheme: byEnvVar - versionEnvVar: Version - verbosityRestore: Minimal - - task: PublishBuildArtifacts@1 - displayName: Publish Build - inputs: - PathtoPublish: $(build.artifactStagingDirectory)/build - ArtifactName: 'drop' - publishLocation: 'Container' - - task: DotNetCoreCLI@2 - displayName: Pack Nugets - inputs: - command: 'pack' - packagesToPack: 'src/*/*.csproj' - packDirectory: '$(build.artifactStagingDirectory)/nuget' - configuration: $(BuildConfiguration) - versioningScheme: byEnvVar - versionEnvVar: Version - verbosityRestore: Minimal - verbosityPack: Minimal - - task: PublishBuildArtifacts@1 - displayName: Publish Nugets - inputs: - PathtoPublish: '$(build.artifactStagingDirectory)/nuget' - ArtifactName: 'nuget' - publishLocation: 'Container' -- job: Test - pool: - vmImage: ubuntu-latest - dependsOn: - - Version - variables: - Version: $[ dependencies.Version.outputs['versioning.gitVersion'] ] - GITHUB_KEY: $(GitHubApiKey) - SONAR_ORG: $(SonarCloudOrganization) - SONAR_KEY: $(SonarCloudApiKey) - SONAR_URL: $(SonarCloudHost) - CODECOV_KEY: $(CodeCovApiKey) - COVERALLS_KEY: $(CoverallsApiKey) - steps: - - checkout: self - - pwsh: | - dotnet tool install --tool-path .. dotnet-sonarscanner - dotnet tool install --tool-path .. coveralls.net - dotnet tool install --tool-path .. Codecov.Tool - displayName: Install Tools - - pwsh: | - ../dotnet-sonarscanner begin /k:"$(SONAR_PROJECT)" /v:"$(Version)" /o:"$(SONAR_ORG)" /d:sonar.host.url="$(SONAR_URL)" /d:sonar.login="$(SONAR_KEY)" /d:sonar.cs.opencover.reportsPaths="$(build.artifactStagingDirectory)/coverage/coverage.opencover.xml" /d:sonar.branch.name="$(Build.SourceBranchName)" /d:sonar.github.repository="$(Build.Repository.Name)" /d:sonar.github.oauth=$(GITHUB_KEY) - condition: ne(variables['Build.Reason'], 'PullRequest') - displayName: SonarCloud (commit) - - pwsh: | - ../dotnet-sonarscanner begin /k:"$(SONAR_PROJECT)" /v:"$(Version)" /o:"$(SONAR_ORG)" /d:sonar.host.url="$(SONAR_URL)" /d:sonar.login="$(SONAR_KEY)" /d:sonar.cs.opencover.reportsPaths="$(build.artifactStagingDirectory)/coverage/coverage.opencover.xml" /d:sonar.github.repository="$(Build.Repository.Name)" /d:sonar.github.oauth=$(GITHUB_KEY) /d:sonar.pullrequest.key="$(System.PullRequest.PullRequestNumber)" /d:sonar.pullrequest.branch="$(Build.SourceBranchName)" /d:sonar.pullrequest.provider="github" - condition: eq(variables['Build.Reason'], 'PullRequest') - displayName: SonarCloud (PR) - - task: DotNetCoreCLI@2 - displayName: Test Solution - inputs: - command: 'test' - configuration: 'Debug' - arguments: '--logger trx /p:CollectCoverage=true /p:CoverletOutputFormat=opencover /p:CoverletOutput=$(build.artifactStagingDirectory)/coverage/ /p:MergeWith=$(build.artifactStagingDirectory)/coverage/coverage.json' - publishTestResults: true - verbosityPack: Minimal - verbosityRestore: Minimal - testRunTitle: 'Unit Tests' - - pwsh: | - ../dotnet-sonarscanner end /d:sonar.login="$(SONAR_KEY)" - displayName: Publish SonarCloud - - task: PublishBuildArtifacts@1 - displayName: Publish Test Coverage - inputs: - PathtoPublish: $(build.artifactStagingDirectory)/coverage - ArtifactName: 'coverage' - publishLocation: 'Container' - - pwsh: | - ../csmacnz.Coveralls --repoToken "$(COVERALLS_KEY)" --opencover -i $(build.artifactStagingDirectory)/coverage/coverage.opencover.xml --useRelativePaths --commitId "$(Build.SourceVersion)" --commitBranch "$(Build.SourceBranchName)" --commitAuthor "$(Build.RequestedFor)" --commitEmail "$(Build.RequestedForEmail)" --commitMessage "$(Build.SourceVersionMessage)" --jobId "$(Build.BuildId)" - ../codecov --token "$(CodeCovApiKey)" --file $(build.artifactStagingDirectory)/coverage/coverage.opencover.xml --branch "$(Build.SourceBranchName)" --sha "$(Build.SourceVersion)" - condition: ne(variables['Build.Reason'], 'PullRequest') - displayName: Push Coverage (commit) - - pwsh: | - ../csmacnz.Coveralls --repoToken "$(COVERALLS_KEY)" --opencover -i $(build.artifactStagingDirectory)/coverage/coverage.opencover.xml --useRelativePaths --commitId "$(Build.SourceVersion)" --commitBranch "$(Build.SourceBranchName)" --commitAuthor "$(Build.RequestedFor)" --commitEmail "$(Build.RequestedForEmail)" --commitMessage "$(Build.SourceVersionMessage)" --jobId "$(Build.BuildId)" --pullRequest "$(System.PullRequest.PullRequestNumber)" - ../codecov --token "$(CodeCovApiKey)" --file $(build.artifactStagingDirectory)/coverage/coverage.opencover.xml --branch "$(Build.SourceBranchName)" --sha "$(Build.SourceVersion)" --pr "$(System.PullRequest.PullRequestNumber)" - condition: eq(variables['Build.Reason'], 'PullRequest') - displayName: Push Coverage (PR) -- job: Publish - pool: - vmImage: ubuntu-latest - dependsOn: - - Version - - Build - - Test - steps: - - checkout: none - - task: DownloadPipelineArtifact@2 - displayName: Fetch nugets - inputs: - buildType: 'current' - artifactName: 'nuget' - targetPath: $(build.artifactStagingDirectory)/nuget - - task: DotNetCoreCLI@2 - condition: ne(variables['Build.Reason'], 'PullRequest') - displayName: Push Nugets - inputs: - workingDirectory: $(build.artifactStagingDirectory)/nuget - command: 'custom' - custom: 'nuget' - arguments: > - push *.nupkg - -s $(KritikosNuget) - -k $(KritikosApiKey) From 5869c787fe056f465aa64dab1e87ffee51247c69 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Thu, 19 Aug 2021 11:30:27 +0300 Subject: [PATCH 26/70] =?UTF-8?q?=F0=9F=94=A5=20Removes=20redundant=20file?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- samples/.gitkeep | 1 - 1 file changed, 1 deletion(-) delete mode 120000 samples/.gitkeep diff --git a/samples/.gitkeep b/samples/.gitkeep deleted file mode 120000 index 98ae275..0000000 --- a/samples/.gitkeep +++ /dev/null @@ -1 +0,0 @@ -../.config/.gitkeep \ No newline at end of file From cfbf38e411386b78a90f154e46f72cc716d19acf Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Thu, 19 Aug 2021 11:30:47 +0300 Subject: [PATCH 27/70] =?UTF-8?q?=F0=9F=94=A7=20Updates=20configuration=20?= =?UTF-8?q?submodule?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config b/.config index f63882f..db8cb3e 160000 --- a/.config +++ b/.config @@ -1 +1 @@ -Subproject commit f63882fa4db0936576a6daf5c9f558fdf44ea3cb +Subproject commit db8cb3e9d6799c1c9f8b6f6720fe14a764d847de From 892a295650e9eb4cf1b86b71ac1957cb0e82dd98 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Thu, 28 Jul 2022 22:30:46 +0300 Subject: [PATCH 28/70] =?UTF-8?q?=F0=9F=94=A7=20Updates=20configuration=20?= =?UTF-8?q?submodule?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config b/.config index db8cb3e..6f9955e 160000 --- a/.config +++ b/.config @@ -1 +1 @@ -Subproject commit db8cb3e9d6799c1c9f8b6f6720fe14a764d847de +Subproject commit 6f9955e05a42f3e7ced712a37670b69872a076b5 From 6683d94f0b45dd463b3f1afecd751acb49210307 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Thu, 28 Jul 2022 22:32:27 +0300 Subject: [PATCH 29/70] =?UTF-8?q?=F0=9F=A7=91=E2=80=8D=F0=9F=92=BB=20Prefe?= =?UTF-8?q?rs=20local=20configuration=20files=20over=20submodule?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Solution.sln | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/Solution.sln b/Solution.sln index a83c4eb..f8e9e80 100644 --- a/Solution.sln +++ b/Solution.sln @@ -3,18 +3,25 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.0.31512.422 MinimumVisualStudioVersion = 15.0.26124.0 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Assets", "Assets", "{C78AC8C6-8CE2-4C77-9493-3E6F22D4F82B}" + ProjectSection(SolutionItems) = preProject + LICENSE.md = LICENSE.md + .config\assets\nuget.png = .config\assets\nuget.png + README.md = README.md + EndProjectSection +EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Configuration", "Configuration", "{0577A3E6-642A-4865-90E7-70103A1B0880}" ProjectSection(SolutionItems) = preProject - .config\.editorconfig = .config\.editorconfig - .config\.gitignore-dotnet = .config\.gitignore-dotnet - azure-pipelines.yml = azure-pipelines.yml - .config\Directory.Build.props = .config\Directory.Build.props - .config\Directory.Build.targets = .config\Directory.Build.targets - .config\dotnet.ruleset = .config\dotnet.ruleset - .config\GitVersion.yml = .config\GitVersion.yml - LICENSE.md = LICENSE.md - .config\stylecop.json = .config\stylecop.json - .config\xunit.runner.json = .config\xunit.runner.json + .editorconfig = .editorconfig + .gitignore = .gitignore + .globalconfig = .globalconfig + .runsettings = .runsettings + Directory.Build.props = Directory.Build.props + Directory.Build.targets = Directory.Build.targets + dotnet.ruleset = dotnet.ruleset + GitVersion.yml = GitVersion.yml + stylecop.json = stylecop.json + xunit.runner.json = xunit.runner.json EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{52270E06-D3BB-4B8E-A261-377E460B5FD5}" @@ -23,20 +30,17 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{52270E06-D3B EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{4FAAB5E4-2D81-4062-90D2-6F68DF746BD2}" + ProjectSection(SolutionItems) = preProject + tests\Directory.Build.props = tests\Directory.Build.props + EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{95906F8E-04C3-49F0-96D5-D6B78A8FF9C9}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Assets", "Assets", "{C78AC8C6-8CE2-4C77-9493-3E6F22D4F82B}" ProjectSection(SolutionItems) = preProject - .config\assets\nuget.png = .config\assets\nuget.png - README.md = README.md + samples\Directory.Build.props = samples\Directory.Build.props EndProjectSection EndProject Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {51F9BF65-6DFB-4A56-AC1C-EA87B6678C8B} - EndGlobalSection EndGlobal From 2c651f47394c616470f4080e08544b9820a3ae1a Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Wed, 7 Sep 2022 21:18:45 +0300 Subject: [PATCH 30/70] =?UTF-8?q?=F0=9F=9A=A8=20Moves=20editor=20conventio?= =?UTF-8?q?ns=20to=20seperate=20file?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .globalconfig | 1 + 1 file changed, 1 insertion(+) create mode 120000 .globalconfig diff --git a/.globalconfig b/.globalconfig new file mode 120000 index 0000000..41fd94b --- /dev/null +++ b/.globalconfig @@ -0,0 +1 @@ +.config/.globalconfig \ No newline at end of file From 1904910aed849fbf62e8cc59ea9eda23267dc0ee Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Wed, 7 Sep 2022 21:19:04 +0300 Subject: [PATCH 31/70] =?UTF-8?q?=F0=9F=A7=AA=20Adds=20test=20settings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .runsettings | 1 + 1 file changed, 1 insertion(+) create mode 120000 .runsettings diff --git a/.runsettings b/.runsettings new file mode 120000 index 0000000..6ba6cb7 --- /dev/null +++ b/.runsettings @@ -0,0 +1 @@ +.config/.runsettings \ No newline at end of file From c312e20e2c2f10ad51dfce3bfd4b3d814c41632d Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sun, 15 Jan 2023 03:48:14 +0200 Subject: [PATCH 32/70] =?UTF-8?q?=F0=9F=93=A6=20Enables=20Central=20Packag?= =?UTF-8?q?e=20Management?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Directory.Packages.props | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 Directory.Packages.props diff --git a/Directory.Packages.props b/Directory.Packages.props new file mode 100644 index 0000000..a5582ae --- /dev/null +++ b/Directory.Packages.props @@ -0,0 +1,13 @@ + + + + + + + + true + + + From 8c3aa2d7108f6ace50506b5a0194b564f32e4768 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sun, 15 Jan 2023 23:14:34 +0200 Subject: [PATCH 33/70] =?UTF-8?q?=F0=9F=93=A6=20Makes=20common=20nugets=20?= =?UTF-8?q?compatible=20with=20CPM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .config | 2 +- Directory.Packages.props | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/.config b/.config index 6f9955e..4fcdca8 160000 --- a/.config +++ b/.config @@ -1 +1 @@ -Subproject commit 6f9955e05a42f3e7ced712a37670b69872a076b5 +Subproject commit 4fcdca89f90cc56db685f1e66885517d2709f86e diff --git a/Directory.Packages.props b/Directory.Packages.props index a5582ae..7a571d6 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -5,9 +5,18 @@ Project="$([MSBuild]::GetPathOfFileAbove('Directory.Packages.props', '$(MSBuildThisFileDirectory)../'))" /> - - - true - + + + + + + + + + + + + + From eafb6958a8cb87624806340471daf802d5a628d3 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sun, 15 Jan 2023 23:17:41 +0200 Subject: [PATCH 34/70] =?UTF-8?q?=F0=9F=93=A6=20Exposes=20package=20versio?= =?UTF-8?q?ns=20to=20solution?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Solution.sln | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Solution.sln b/Solution.sln index f8e9e80..b9a1e81 100644 --- a/Solution.sln +++ b/Solution.sln @@ -18,6 +18,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Configuration", "Configurat .runsettings = .runsettings Directory.Build.props = Directory.Build.props Directory.Build.targets = Directory.Build.targets + Directory.Packages.props = Directory.Packages.props dotnet.ruleset = dotnet.ruleset GitVersion.yml = GitVersion.yml stylecop.json = stylecop.json @@ -30,7 +31,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{52270E06-D3B EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{4FAAB5E4-2D81-4062-90D2-6F68DF746BD2}" - ProjectSection(SolutionItems) = preProject + ProjectSection(SolutionItems) = preProject tests\Directory.Build.props = tests\Directory.Build.props EndProjectSection EndProject @@ -39,8 +40,16 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{9590 samples\Directory.Build.props = samples\Directory.Build.props EndProjectSection EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{18FB97B3-3321-4F9B-B3A1-12BC0DE1D000}" + ProjectSection(SolutionItems) = preProject + Directory.Packages.props = Directory.Packages.props + EndProjectSection +EndProject Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {732C3E99-FDF6-4748-A339-C3C162241038} + EndGlobalSection EndGlobal From 4256c93f20d18d305db735b277aa37eb4f0c7478 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Thu, 26 Jan 2023 14:26:06 +0200 Subject: [PATCH 35/70] =?UTF-8?q?=F0=9F=93=A6=20Moves=20packages=20to=20a?= =?UTF-8?q?=20single=20section?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Directory.Packages.props | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 7a571d6..455d67a 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -6,17 +6,14 @@ - - - - - - - + + + + From c6c1a45899f2068ee52c5a4038a6b00f7116366b Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Fri, 7 Apr 2023 15:46:04 +0300 Subject: [PATCH 36/70] =?UTF-8?q?=F0=9F=93=8C=20Moves=20Directory.Packages?= =?UTF-8?q?.props=20to=20proper=20solution=20folder?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Solution.sln | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Solution.sln b/Solution.sln index b9a1e81..a2d20d6 100644 --- a/Solution.sln +++ b/Solution.sln @@ -8,6 +8,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Assets", "Assets", "{C78AC8 LICENSE.md = LICENSE.md .config\assets\nuget.png = .config\assets\nuget.png README.md = README.md + Directory.Packages.props = Directory.Packages.props EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Configuration", "Configuration", "{0577A3E6-642A-4865-90E7-70103A1B0880}" @@ -40,11 +41,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{9590 samples\Directory.Build.props = samples\Directory.Build.props EndProjectSection EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{18FB97B3-3321-4F9B-B3A1-12BC0DE1D000}" - ProjectSection(SolutionItems) = preProject - Directory.Packages.props = Directory.Packages.props - EndProjectSection -EndProject Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From d2f0a7f57cd054418ddc34fa1a9fb324b64c0357 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Mon, 13 Nov 2023 00:02:20 +0200 Subject: [PATCH 37/70] =?UTF-8?q?=F0=9F=94=A7=20Fixes=20solution=20assets?= =?UTF-8?q?=20and=20common=20package=20versions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Directory.Packages.props | 16 +++++++++++++--- Solution.sln | 10 +++++++++- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 455d67a..8798058 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -4,16 +4,26 @@ - + + + + + + + - + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + - diff --git a/Solution.sln b/Solution.sln index a2d20d6..f74db9a 100644 --- a/Solution.sln +++ b/Solution.sln @@ -6,7 +6,7 @@ MinimumVisualStudioVersion = 15.0.26124.0 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Assets", "Assets", "{C78AC8C6-8CE2-4C77-9493-3E6F22D4F82B}" ProjectSection(SolutionItems) = preProject LICENSE.md = LICENSE.md - .config\assets\nuget.png = .config\assets\nuget.png + icon.png = icon.png README.md = README.md Directory.Packages.props = Directory.Packages.props EndProjectSection @@ -48,4 +48,12 @@ Global GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {732C3E99-FDF6-4748-A339-C3C162241038} EndGlobalSection + GlobalSection(NestedProjects) = preSolution + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + EndGlobalSection + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection EndGlobal From 266a795b32f612be548632b935c8b2458477fbcb Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Mon, 13 Nov 2023 00:02:47 +0200 Subject: [PATCH 38/70] =?UTF-8?q?=F0=9F=94=A7=20Adds=20VS=20Code=20setting?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/settings.json | 1 + 1 file changed, 1 insertion(+) create mode 120000 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 120000 index 0000000..1e08111 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1 @@ +../.config/.vscode/settings.json \ No newline at end of file From 8d4fe61f361734e1590b54887918b35817ffb711 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Tue, 14 Nov 2023 23:03:00 +0200 Subject: [PATCH 39/70] =?UTF-8?q?=F0=9F=94=96=20Removes=20RepositoryUrl=20?= =?UTF-8?q?since=20it=20is=20now=20autodiscovered=20by=20Source=20Link?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Directory.Packages.props | 4 ---- src/Directory.build.props | 1 - 2 files changed, 5 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 8798058..124c331 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -10,10 +10,6 @@ - - - - diff --git a/src/Directory.build.props b/src/Directory.build.props index 24a2d2f..08b5757 100644 --- a/src/Directory.build.props +++ b/src/Directory.build.props @@ -5,6 +5,5 @@ http://localhost - http://localhost From c55132f26d5b6d64462652f31be08be46c4db9bd Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Wed, 15 Nov 2023 00:19:29 +0200 Subject: [PATCH 40/70] =?UTF-8?q?=F0=9F=94=A7=20Updates=20configuration=20?= =?UTF-8?q?submodule?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .config | 2 +- Directory.Solution.targets | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 120000 Directory.Solution.targets diff --git a/.config b/.config index 4fcdca8..82be6a5 160000 --- a/.config +++ b/.config @@ -1 +1 @@ -Subproject commit 4fcdca89f90cc56db685f1e66885517d2709f86e +Subproject commit 82be6a59b8f5926178eb64679a6304ab81a91433 diff --git a/Directory.Solution.targets b/Directory.Solution.targets new file mode 120000 index 0000000..386a888 --- /dev/null +++ b/Directory.Solution.targets @@ -0,0 +1 @@ +.config/Directory.Solution.targets \ No newline at end of file From 6124dee0bd7215fb00ba31cb9eea6fe5c5a61213 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Wed, 15 Nov 2023 00:40:34 +0200 Subject: [PATCH 41/70] =?UTF-8?q?=F0=9F=9A=9A=20Renames=20case=20sensitive?= =?UTF-8?q?=20file,=20part=20#1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/{Directory.build.props => Directory.Bauild.props} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/{Directory.build.props => Directory.Bauild.props} (100%) diff --git a/src/Directory.build.props b/src/Directory.Bauild.props similarity index 100% rename from src/Directory.build.props rename to src/Directory.Bauild.props From 382a710039204ab70f0203557005986dc5190e98 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Wed, 15 Nov 2023 00:40:52 +0200 Subject: [PATCH 42/70] =?UTF-8?q?=F0=9F=9A=9A=20Renames=20case=20sensitive?= =?UTF-8?q?=20file,=20part=20#2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/{Directory.Bauild.props => Directory.Build.props} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/{Directory.Bauild.props => Directory.Build.props} (100%) diff --git a/src/Directory.Bauild.props b/src/Directory.Build.props similarity index 100% rename from src/Directory.Bauild.props rename to src/Directory.Build.props From e79b3f1f19a425568798fd02d55e34d188ce5d8a Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Wed, 15 Nov 2023 00:42:01 +0200 Subject: [PATCH 43/70] =?UTF-8?q?=F0=9F=9A=9A=20Follows=20file=20naming=20?= =?UTF-8?q?pattern=20inside=20solution?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Solution.sln | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/Solution.sln b/Solution.sln index f74db9a..f69e1b7 100644 --- a/Solution.sln +++ b/Solution.sln @@ -5,10 +5,9 @@ VisualStudioVersion = 17.0.31512.422 MinimumVisualStudioVersion = 15.0.26124.0 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Assets", "Assets", "{C78AC8C6-8CE2-4C77-9493-3E6F22D4F82B}" ProjectSection(SolutionItems) = preProject - LICENSE.md = LICENSE.md icon.png = icon.png + LICENSE.md = LICENSE.md README.md = README.md - Directory.Packages.props = Directory.Packages.props EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Configuration", "Configuration", "{0577A3E6-642A-4865-90E7-70103A1B0880}" @@ -42,18 +41,14 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{9590 EndProjectSection EndProject Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {732C3E99-FDF6-4748-A339-C3C162241038} EndGlobalSection - GlobalSection(NestedProjects) = preSolution - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - EndGlobalSection - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection EndGlobal From 5fbc3701c83404e7681be484b3b5bd74021076bd Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Wed, 15 Nov 2023 00:42:16 +0200 Subject: [PATCH 44/70] =?UTF-8?q?=F0=9F=94=A7=20Updates=20configuration=20?= =?UTF-8?q?submodule?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config b/.config index 82be6a5..4fe59c3 160000 --- a/.config +++ b/.config @@ -1 +1 @@ -Subproject commit 82be6a59b8f5926178eb64679a6304ab81a91433 +Subproject commit 4fe59c354380f01df20be2e0892129c3166dd1d8 From 85632262923ff1368f7fa5747c1f7fc61dd6ec42 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Wed, 15 Nov 2023 10:48:03 +0200 Subject: [PATCH 45/70] =?UTF-8?q?=F0=9F=99=88=20Saves=20artifact=20folder?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .config | 2 +- artifacts/.gitkeep | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 120000 artifacts/.gitkeep diff --git a/.config b/.config index 4fe59c3..cd2e174 160000 --- a/.config +++ b/.config @@ -1 +1 @@ -Subproject commit 4fe59c354380f01df20be2e0892129c3166dd1d8 +Subproject commit cd2e174a8756a7407a6f7d9c0da022019091a51f diff --git a/artifacts/.gitkeep b/artifacts/.gitkeep new file mode 120000 index 0000000..98ae275 --- /dev/null +++ b/artifacts/.gitkeep @@ -0,0 +1 @@ +../.config/.gitkeep \ No newline at end of file From d499b86af3d0f7312dc1c0e15c146606056ff213 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Wed, 15 Nov 2023 18:51:33 +0200 Subject: [PATCH 46/70] =?UTF-8?q?=F0=9F=93=9D=20Adds=20current=20informati?= =?UTF-8?q?on=20to=20README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .config | 2 +- README.md | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.config b/.config index cd2e174..8e588a3 160000 --- a/.config +++ b/.config @@ -1 +1 @@ -Subproject commit cd2e174a8756a7407a6f7d9c0da022019091a51f +Subproject commit 8e588a3712c098f3b5fef351b11dfde968120095 diff --git a/README.md b/README.md index 810361c..fb780dc 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,12 @@ # Templates - Dotnet -A simple template leveraging [.Config][1] dotfiles submodule for rapid project deployment. Simply rename Solution.{code-workspace,sln,sln.DotSettings} to your project name and get started! Afterwards, replace this readme with the actual documentation of your project. +A simple template leveraging [.Config][1] dotfiles submodule for rapid project deployment. Simply rename Solution.{code-workspace,sln,sln.DotSettings} to your project name and get started! To use: -Additionally, change the Project & Repository urls on [src/Directory.Build.props](src/Directory.Build.props). +- Make sure git symlinks are enabled in your system +- Rename Solution.sln, Solution.sln.DotSettings and Solution.code-workspace to your project name (replacing only "Solution" on the file names) +- Edit [src/Directory.Build.props](src/Directory.Build.props) and add your project site URL (or your repository, if no site available) +- Enter a terminal inside the folder you just cloned and run `git submodule update --init` -Additionally, until GitHub properly supports submodule definitions from template repositories, after cloning you should run -```git submodule add https://github.com/kritikos-io/.config``` from the repository root. You can replace the submodule with a compatible fork (to preserve your own default namespace etc) **provided it keeps file naming intact** since most files are appearing as symlinks. +You can replace the submodule with a compatible fork (to preserve your own default namespace etc) **provided it keeps file naming intact** since most files are appearing as symlinks. [1]: https://github.com/kritikos-io/.config From cbced3a990421b98b514888b41c9936cffb7505a Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Mon, 2 Dec 2024 19:10:50 +0200 Subject: [PATCH 47/70] =?UTF-8?q?=F0=9F=94=A7=20Upgrades=20configuration?= =?UTF-8?q?=20submodule?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.config b/.config index 8e588a3..ebd71c6 160000 --- a/.config +++ b/.config @@ -1 +1 @@ -Subproject commit 8e588a3712c098f3b5fef351b11dfde968120095 +Subproject commit ebd71c670b05712e15908e28aa7fe3cd4d78fc23 From 826a434a3cb2656810ec5477dcfe8b4651182010 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Mon, 2 Dec 2024 19:11:03 +0200 Subject: [PATCH 48/70] =?UTF-8?q?=F0=9F=94=A5=20Replaces=20solution=20file?= =?UTF-8?q?=20with=20new=20format?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Solution.sln | 54 --------------------------------------------------- Solution.slnx | 29 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 54 deletions(-) delete mode 100644 Solution.sln create mode 100644 Solution.slnx diff --git a/Solution.sln b/Solution.sln deleted file mode 100644 index f69e1b7..0000000 --- a/Solution.sln +++ /dev/null @@ -1,54 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.0.31512.422 -MinimumVisualStudioVersion = 15.0.26124.0 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Assets", "Assets", "{C78AC8C6-8CE2-4C77-9493-3E6F22D4F82B}" - ProjectSection(SolutionItems) = preProject - icon.png = icon.png - LICENSE.md = LICENSE.md - README.md = README.md - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Configuration", "Configuration", "{0577A3E6-642A-4865-90E7-70103A1B0880}" - ProjectSection(SolutionItems) = preProject - .editorconfig = .editorconfig - .gitignore = .gitignore - .globalconfig = .globalconfig - .runsettings = .runsettings - Directory.Build.props = Directory.Build.props - Directory.Build.targets = Directory.Build.targets - Directory.Packages.props = Directory.Packages.props - dotnet.ruleset = dotnet.ruleset - GitVersion.yml = GitVersion.yml - stylecop.json = stylecop.json - xunit.runner.json = xunit.runner.json - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{52270E06-D3BB-4B8E-A261-377E460B5FD5}" - ProjectSection(SolutionItems) = preProject - src\Directory.build.props = src\Directory.build.props - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{4FAAB5E4-2D81-4062-90D2-6F68DF746BD2}" - ProjectSection(SolutionItems) = preProject - tests\Directory.Build.props = tests\Directory.Build.props - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{95906F8E-04C3-49F0-96D5-D6B78A8FF9C9}" - ProjectSection(SolutionItems) = preProject - samples\Directory.Build.props = samples\Directory.Build.props - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {732C3E99-FDF6-4748-A339-C3C162241038} - EndGlobalSection -EndGlobal diff --git a/Solution.slnx b/Solution.slnx new file mode 100644 index 0000000..394921a --- /dev/null +++ b/Solution.slnx @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From b5fb12414510aa10002c85436d8ec8db62a4c63f Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Mon, 2 Dec 2024 19:14:04 +0200 Subject: [PATCH 49/70] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20Upgrades=20common=20?= =?UTF-8?q?package=20versions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Directory.Packages.props | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 124c331..6d82169 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -5,19 +5,19 @@ Project="$([MSBuild]::GetPathOfFileAbove('Directory.Packages.props', '$(MSBuildThisFileDirectory)../'))" /> - - - - - - - + + + + + + + - - - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive From 36ff8d61546ee25a779e94d2f673e45f00c8e301 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Fri, 6 Jun 2025 16:53:04 +0300 Subject: [PATCH 50/70] =?UTF-8?q?=F0=9F=94=A7=20Removes=20configuration=20?= =?UTF-8?q?submodule?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .config | 1 - .gitmodules | 4 ---- 2 files changed, 5 deletions(-) delete mode 160000 .config delete mode 100644 .gitmodules diff --git a/.config b/.config deleted file mode 160000 index ebd71c6..0000000 --- a/.config +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ebd71c670b05712e15908e28aa7fe3cd4d78fc23 diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 49ce403..0000000 --- a/.gitmodules +++ /dev/null @@ -1,4 +0,0 @@ -[submodule ".config"] - path = .config - url = https://github.com/kritikos-io/.config - branch = master From bd6dfda7b4ae17b4f140c469aa2e8f47b4fc249e Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Fri, 6 Jun 2025 17:06:12 +0300 Subject: [PATCH 51/70] =?UTF-8?q?=F0=9F=94=A5=20Removes=20all=20symbolic?= =?UTF-8?q?=20link=20files?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .editorconfig | 1 - .gitignore | 1 - .globalconfig | 1 - .runsettings | 1 - Directory.Build.props | 1 - Directory.Build.targets | 1 - Directory.Solution.targets | 1 - GitVersion.yml | 1 - Solution.code-workspace | 1 - Solution.sln.DotSettings | 1 - dotnet.ruleset | 1 - icon.png | 1 - stylecop.json | 1 - xunit.runner.json | 1 - 14 files changed, 14 deletions(-) delete mode 120000 .editorconfig delete mode 120000 .gitignore delete mode 120000 .globalconfig delete mode 120000 .runsettings delete mode 120000 Directory.Build.props delete mode 120000 Directory.Build.targets delete mode 120000 Directory.Solution.targets delete mode 120000 GitVersion.yml delete mode 120000 Solution.code-workspace delete mode 120000 Solution.sln.DotSettings delete mode 120000 dotnet.ruleset delete mode 120000 icon.png delete mode 120000 stylecop.json delete mode 120000 xunit.runner.json diff --git a/.editorconfig b/.editorconfig deleted file mode 120000 index 6773984..0000000 --- a/.editorconfig +++ /dev/null @@ -1 +0,0 @@ -.config/.editorconfig \ No newline at end of file diff --git a/.gitignore b/.gitignore deleted file mode 120000 index e6ab0ae..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.config/.gitignore-dotnet \ No newline at end of file diff --git a/.globalconfig b/.globalconfig deleted file mode 120000 index 41fd94b..0000000 --- a/.globalconfig +++ /dev/null @@ -1 +0,0 @@ -.config/.globalconfig \ No newline at end of file diff --git a/.runsettings b/.runsettings deleted file mode 120000 index 6ba6cb7..0000000 --- a/.runsettings +++ /dev/null @@ -1 +0,0 @@ -.config/.runsettings \ No newline at end of file diff --git a/Directory.Build.props b/Directory.Build.props deleted file mode 120000 index ecfbb11..0000000 --- a/Directory.Build.props +++ /dev/null @@ -1 +0,0 @@ -.config/Directory.Build.props \ No newline at end of file diff --git a/Directory.Build.targets b/Directory.Build.targets deleted file mode 120000 index 2252747..0000000 --- a/Directory.Build.targets +++ /dev/null @@ -1 +0,0 @@ -.config/Directory.Build.targets \ No newline at end of file diff --git a/Directory.Solution.targets b/Directory.Solution.targets deleted file mode 120000 index 386a888..0000000 --- a/Directory.Solution.targets +++ /dev/null @@ -1 +0,0 @@ -.config/Directory.Solution.targets \ No newline at end of file diff --git a/GitVersion.yml b/GitVersion.yml deleted file mode 120000 index 3d6f888..0000000 --- a/GitVersion.yml +++ /dev/null @@ -1 +0,0 @@ -.config/GitVersion.yml \ No newline at end of file diff --git a/Solution.code-workspace b/Solution.code-workspace deleted file mode 120000 index 45c482d..0000000 --- a/Solution.code-workspace +++ /dev/null @@ -1 +0,0 @@ -.config/Sample.code-workspace \ No newline at end of file diff --git a/Solution.sln.DotSettings b/Solution.sln.DotSettings deleted file mode 120000 index 920203b..0000000 --- a/Solution.sln.DotSettings +++ /dev/null @@ -1 +0,0 @@ -.config/Sample.sln.DotSettings \ No newline at end of file diff --git a/dotnet.ruleset b/dotnet.ruleset deleted file mode 120000 index acdfd2d..0000000 --- a/dotnet.ruleset +++ /dev/null @@ -1 +0,0 @@ -.config/dotnet.ruleset \ No newline at end of file diff --git a/icon.png b/icon.png deleted file mode 120000 index 11896e5..0000000 --- a/icon.png +++ /dev/null @@ -1 +0,0 @@ -.config/assets/nuget.png \ No newline at end of file diff --git a/stylecop.json b/stylecop.json deleted file mode 120000 index 68f7168..0000000 --- a/stylecop.json +++ /dev/null @@ -1 +0,0 @@ -.config/stylecop.json \ No newline at end of file diff --git a/xunit.runner.json b/xunit.runner.json deleted file mode 120000 index fc25a87..0000000 --- a/xunit.runner.json +++ /dev/null @@ -1 +0,0 @@ -.config/xunit.runner.json \ No newline at end of file From 4a6cdd49110b4f3629280ca13fb828a8c6db21b9 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Fri, 6 Jun 2025 17:07:07 +0300 Subject: [PATCH 52/70] =?UTF-8?q?=F0=9F=8E=A8=20Adds=20common=20editor=20s?= =?UTF-8?q?ettings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .editorconfig | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..245cf42 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,14 @@ +root = true + +[*] +indent_style = space +indent_size = 2 +charset = utf-8 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.sh] +end_of_line = lf + +[**/Migrations/*.cs] +generated_code = true From aabe5df5952a49469653da57b96ebd9c8b4a8bef Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Fri, 6 Jun 2025 17:07:55 +0300 Subject: [PATCH 53/70] =?UTF-8?q?=F0=9F=99=88=20Adds=20git=20&=20docker=20?= =?UTF-8?q?ignore=20files?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 22 + .gitignore | 1160 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1182 insertions(+) create mode 100644 .dockerignore create mode 100644 .gitignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..7f30de3 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,22 @@ +**/.dockerignore +**/.env +**/.gitignore +**/.project +**/.settings +**/.toolstarget +**/.vs +**/.vscode +**/.idea +**/*.*proj.user +**/*.dbmdl +**/*.jfm +**/azds.yaml +**/bin +**/charts +**/docker-compose* +**/Dockerfile* +**/node_modules +**/npm-debug.log +**/obj +**/secrets.dev.yaml +**/values.dev.yaml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b9d2469 --- /dev/null +++ b/.gitignore @@ -0,0 +1,1160 @@ +# Created by https://www.toptal.com/developers/gitignore/api/node,linux,macos,sonar,csharp,fsharp,windows,intellij,sonarqube,aspnetcore,dotnetcore,intellij+all,visualstudio,visualstudiocode +# Edit at https://www.toptal.com/developers/gitignore?templates=node,linux,macos,sonar,csharp,fsharp,windows,intellij,sonarqube,aspnetcore,dotnetcore,intellij+all,visualstudio,visualstudiocode + +### ASPNETCore ### +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# DNX +project.lock.json +project.fragment.lock.json +artifacts/ + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_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 + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# 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 + +# 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 +PublishScripts/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config +# NuGet v3's project.json files produces more ignoreable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +node_modules/ +orleans.codegen.cs + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat + +# Visual Studio 6 build log +*.plg + +# 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 + +# Visual Studio 6 auto-generated project file (contains which files were open etc.) +*.vbp + +# Visual Studio 6 workspace and project file (working project files containing files to include in project) +*.dsw +*.dsp + +# Visual Studio 6 technical files + +# Visual Studio LightSwitch build output + +# Paket dependency manager + +# FAKE - F# Make + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# Visual Studio History (VSHistory) files +.vshistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd + +# VS Code files for those working on multiple tools +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +*.code-workspace + +# Local History for Visual Studio Code +.history/ + +# Windows Installer files from build outputs +*.cab +*.msi +*.msix +*.msm +*.msp + +# JetBrains Rider + +### 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 + +### Intellij ### +# 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 + +### Intellij Patch ### +# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721 + +# *.iml +# modules.xml +# .idea/misc.xml +# *.ipr + +# Sonarlint plugin +# https://plugins.jetbrains.com/plugin/7973-sonarlint +.idea/**/sonarlint/ + +# SonarQube Plugin +# https://plugins.jetbrains.com/plugin/7238-sonarqube-community-plugin +.idea/**/sonarIssues.xml + +# Markdown Navigator plugin +# https://plugins.jetbrains.com/plugin/7896-markdown-navigator-enhanced +.idea/**/markdown-navigator.xml +.idea/**/markdown-navigator-enh.xml +.idea/**/markdown-navigator/ + +# Cache file creation bug +# See https://youtrack.jetbrains.com/issue/JBR-2257 +.idea/$CACHE_FILE$ + +# CodeStream plugin +# https://plugins.jetbrains.com/plugin/12206-codestream +.idea/codestream.xml + +# Azure Toolkit for IntelliJ plugin +# https://plugins.jetbrains.com/plugin/8053-azure-toolkit-for-intellij +.idea/**/azureSettings.xml + +### Intellij+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 + +# AWS User-specific + +# Generated files + +# Sensitive or high-churn files + +# Gradle + +# 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 + +# Mongo Explorer plugin + +# File-based project format + +# IntelliJ + +# mpeltonen/sbt-idea plugin + +# JIRA plugin + +# Cursive Clojure plugin + +# SonarLint plugin + +# Crashlytics plugin (for Android Studio and IntelliJ) + +# Editor-based Rest Client + +# Android studio 3.1+ serialized cache file + +### Intellij+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 ### + +# 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 +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### macOS Patch ### +# iCloud generated files +*.icloud + +### Node ### +# Logs +logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +.pnpm-debug.log* + +# Diagnostic reports (https://nodejs.org/api/report.html) +report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage +*.lcov + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# Bower dependency directory (https://bower.io/) +bower_components + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (https://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +jspm_packages/ + +# Snowpack dependency directory (https://snowpack.dev/) +web_modules/ + +# TypeScript cache +*.tsbuildinfo + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional stylelint cache +.stylelintcache + +# Microbundle cache +.rpt2_cache/ +.rts2_cache_cjs/ +.rts2_cache_es/ +.rts2_cache_umd/ + +# Optional REPL history +.node_repl_history + +# Output of 'npm pack' +*.tgz + +# Yarn Integrity file +.yarn-integrity + +# dotenv environment variable files +.env +.env.development.local +.env.test.local +.env.production.local +.env.local + +# parcel-bundler cache (https://parceljs.org/) +.cache +.parcel-cache + +# Next.js build output +.next +out + +# Nuxt.js build / generate output +.nuxt +dist + +# Gatsby files +.cache/ +# Comment in the public line in if your project uses Gatsby and not Next.js +# https://nextjs.org/blog/next-9-1#public-directory-support +# public + +# vuepress build output +.vuepress/dist + +# vuepress v2.x temp and cache directory +.temp + +# Docusaurus cache and generated files +.docusaurus + +# Serverless directories +.serverless/ + +# FuseBox cache +.fusebox/ + +# DynamoDB Local files +.dynamodb/ + +# TernJS port file +.tern-port + +# Stores VSCode versions used for testing VSCode extensions +.vscode-test + +# yarn v2 +.yarn/cache +.yarn/unplugged +.yarn/build-state.yml +.yarn/install-state.gz +.pnp.* + +### Node Patch ### +# Serverless Webpack directories +.webpack/ + +# Optional stylelint cache + +# SvelteKit build / generate output +.svelte-kit + +### Sonar ### +#Sonar generated dir +/.sonar/ + +### SonarQube ### +# SonarQube ignore files. +# +# https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner +# Sonar Scanner working directories +.sonar/ +.sonarqube/ +.scannerwork/ + +# http://www.sonarlint.org/commandline/ +# SonarLint working directories, configuration files (including credentials) +.sonarlint/ + +### 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 + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files + +# Windows shortcuts +*.lnk + +### VisualStudio ### + +# User-specific files + +# User-specific files (MonoDevelop/Xamarin Studio) + +# Mono auto generated files + +# Build results + +# 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 + +# MSTest test Results + +# NUnit + +# Build Results of an ATL Project + +# Benchmark Results + +# .NET Core + +# ASP.NET Scaffolding + +# StyleCop + +# Files built by Visual Studio + +# Chutzpah Test files + +# Visual C++ cache files + +# Visual Studio profiler + +# Visual Studio Trace Files + +# 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 + +# Coverlet is a free, cross platform Code Coverage Tool + +# 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 +# The packages folder can be ignored because of Package Restore +# except build/, which is used as an MSBuild target. +# Uncomment if necessary however generally it will be regenerated when needed +# NuGet v3's project.json files produces more ignorable files + +# Microsoft Azure Build Output + +# Microsoft Azure Emulator + +# Windows Store app package directories and files + +# Visual Studio cache files +# files ending in .cache can be ignored +# but keep track of directories ending in .cache + +# Others + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) + +# 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 ;-) + +# SQL Server files + +# Business Intelligence projects + +# 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.) + +# Visual Studio 6 auto-generated project file (contains which files were open etc.) + +# Visual Studio 6 workspace and project file (working project files containing files to include in project) + +# Visual Studio 6 technical files + +# Visual Studio LightSwitch build output + +# Paket dependency manager + +# FAKE - F# Make + +# CodeRush personal settings + +# Python Tools for Visual Studio (PTVS) + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio + +# Telerik's JustMock configuration file + +# BizTalk build output + +# OpenCover UI analysis results + +# Azure Stream Analytics local run output + +# MSBuild Binary and Structured Log + +# NVidia Nsight GPU debugger configuration file + +# MFractors (Xamarin productivity tool) working folder + +# Local History for Visual Studio + +# Visual Studio History (VSHistory) files + +# BeatPulse healthcheck temp database + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 + +# Ionide (cross platform F# VS Code tools) working folder + +# Fody - auto-generated XML schema + +# VS Code files for those working on multiple tools + +# Local History for Visual Studio Code + +# Windows Installer files from build outputs + +# JetBrains Rider + +### VisualStudio Patch ### +# Additional files built by Visual Studio + +# End of https://www.toptal.com/developers/gitignore/api/node,linux,macos,sonar,csharp,fsharp,windows,intellij,sonarqube,aspnetcore,dotnetcore,intellij+all,visualstudio,visualstudiocode + +# .NET Core +**/Properties/launchSettings.json +TestResults + +# Visual Studio Code +!*.code-workspace +!.vscode/tasks-*.json + +## Web Assets managed by libman +**/wwwroot/dist/* +## Web Assets compiled +**/wwwroot/assets/* + +## Coverage +*.coverage.xml + +## Public Assets +packages/* +upload/* +!upload/.gitkeep +!packages/.gitkeep +!artifacts/ +artifacts/* +!artifacts/.gitkeep +**/OpenApi/*.json From 8809cd3441f40f586423b541f8d9e8710d7ddfaf Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Fri, 6 Jun 2025 17:17:25 +0300 Subject: [PATCH 54/70] =?UTF-8?q?=F0=9F=93=9D=20Updates=20README=20with=20?= =?UTF-8?q?repo=20changes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index fb780dc..bc10e2a 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,27 @@ # Templates - Dotnet -A simple template leveraging [.Config][1] dotfiles submodule for rapid project deployment. Simply rename Solution.{code-workspace,sln,sln.DotSettings} to your project name and get started! To use: +A starting point for new .NET projects, based on opinionated rules. -- Make sure git symlinks are enabled in your system -- Rename Solution.sln, Solution.sln.DotSettings and Solution.code-workspace to your project name (replacing only "Solution" on the file names) -- Edit [src/Directory.Build.props](src/Directory.Build.props) and add your project site URL (or your repository, if no site available) -- Enter a terminal inside the folder you just cloned and run `git submodule update --init` +1. In order to be able to update your repository with the latest changes, you can use the following command **after creating** your repo: -You can replace the submodule with a compatible fork (to preserve your own default namespace etc) **provided it keeps file naming intact** since most files are appearing as symlinks. +```bash +git remote add template https://github.com/kritikos-io/templates-dotnet +git fetch --all +git merge template/main --allow-unrelated-histories +``` -[1]: https://github.com/kritikos-io/.config +2. Do this as soon as possible, as the unrelated histories flag will lead to a few conflicts that you will need to resolve manually. +3. Afterwards, you can pull future changes using + +```bash +git pull template main +``` + +4. Rename the solution and project files, replacing 'Solution' to match your project name. + 1. Solution.sln + 2. Solution.sln.DotSettings + 3. Solution.code-workspace + +> Keep in mind that until the dotnet toolset handles generating new projects correctly, you will need to edit new csproj files and remove Version attributes from PackageReference entries. For more details consult [Central Package Management]. + +[Central Package Management]: https://learn.microsoft.com/en-us/nuget/consume-packages/central-package-management From cbb7fa1f167347643b1eedb1872a1109cd2b6a05 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Fri, 6 Jun 2025 17:18:14 +0300 Subject: [PATCH 55/70] =?UTF-8?q?=F0=9F=94=A5=20Removes=20artifacts=20fold?= =?UTF-8?q?er=20as=20it=20may=20be=20overriden=20now?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- artifacts/.gitkeep | 1 - 1 file changed, 1 deletion(-) delete mode 120000 artifacts/.gitkeep diff --git a/artifacts/.gitkeep b/artifacts/.gitkeep deleted file mode 120000 index 98ae275..0000000 --- a/artifacts/.gitkeep +++ /dev/null @@ -1 +0,0 @@ -../.config/.gitkeep \ No newline at end of file From 65f3c1c41bc2de630d11fd96d7ce78d8ef196d99 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Fri, 6 Jun 2025 17:20:54 +0300 Subject: [PATCH 56/70] =?UTF-8?q?=F0=9F=93=9D=20Moves=20community=20guide?= =?UTF-8?q?=20files=20to=20platform-agnostic=20folder?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/ISSUE_TEMPLATE/BUG_REPORT.md | 39 ----------------------- .github/ISSUE_TEMPLATE/FEATURE_REQUEST.md | 24 -------------- .github/ISSUE_TEMPLATE/config.yml | 1 - .github/PULL_REQUEST_TEMPLATE.md | 20 ------------ {.github => docs}/CODEOWNERS | 0 {.github => docs}/CODE_OF_CONDUCT.md | 2 +- 6 files changed, 1 insertion(+), 85 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/BUG_REPORT.md delete mode 100644 .github/ISSUE_TEMPLATE/FEATURE_REQUEST.md delete mode 100644 .github/ISSUE_TEMPLATE/config.yml delete mode 100644 .github/PULL_REQUEST_TEMPLATE.md rename {.github => docs}/CODEOWNERS (100%) rename {.github => docs}/CODE_OF_CONDUCT.md (97%) diff --git a/.github/ISSUE_TEMPLATE/BUG_REPORT.md b/.github/ISSUE_TEMPLATE/BUG_REPORT.md deleted file mode 100644 index df7ec41..0000000 --- a/.github/ISSUE_TEMPLATE/BUG_REPORT.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -name: "\U0001F41B Bug Report" -about: "If something isn't working as expected." -title: '' -labels: 'i: bug, i: needs triage' -assignees: 'akritikos' ---- - -## Bug Report - -Clean up this template after reading it and provide relevant information about the bug you're reporting! - -## Prerequisites - -* [ ] Can you reproduce the problem in a deterministic way? -* [ ] Are you running the latest version? -* [ ] Are you reporting to the correct repository? -* [ ] Did you perform a cursory search? - -## Current Behavior - -A clear and concise description of the behavior. - -## Expected behavior/code - -A clear and concise description of what you expected to happen (or code). - -### Environment - -* Operating System -* .NET core version - -### Possible Solution - -`Only if you have suggestions on a fix for the bug` - -### Additional context/Screenshots - -Add any other context about the problem here. If applicable, add screenshots to help explain. diff --git a/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md b/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md deleted file mode 100644 index 248505f..0000000 --- a/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -name: "\U0001F680 Feature Request" -about: "I have a suggestion (and may want to implement it)!" -title: '' -labels: 'i: enhancement, i: needs triage' -assignees: 'akritikos' ---- - -## Feature Request - -Clean up this template after reading it and provide relevant information about the bug you're requesting! - -## Is your feature request related to a problem? - -A clear and concise description of what the problem is. -`I have an issue when [...]` - -## Describe the feature you'd like - -A clear and concise description of what you want to happen. Add any considered drawbacks. - -## Describe alternatives you've considered - -A clear and concise description of any alternative solutions or features you've considered. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml deleted file mode 100644 index 3ba13e0..0000000 --- a/.github/ISSUE_TEMPLATE/config.yml +++ /dev/null @@ -1 +0,0 @@ -blank_issues_enabled: false diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 530a56d..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,20 +0,0 @@ -# Pull Request Template - -Clean up this template and provide relevant information about your pull request! - -## All Submissions - -* [ ] Have you followed the guidelines in our [Contributing](../.github/CONTRIBUTING.md) document? -* [ ] Have you checked to ensure there aren't other open [Pull Requests](../../../pulls) for the same update/change? -* [ ] Does your pull request target an open issue? - -### New Feature Submissions - -* [ ] Does your submission pass tests? -* [ ] Have you lint your code locally prior to submission? - -### Changes to Core Features - -* [ ] Have you added an explanation of what your changes do and why you'd like us to include them? -* [ ] Have you written new tests for your core changes, as applicable? -* [ ] Have you successfully ran tests with your changes locally? diff --git a/.github/CODEOWNERS b/docs/CODEOWNERS similarity index 100% rename from .github/CODEOWNERS rename to docs/CODEOWNERS diff --git a/.github/CODE_OF_CONDUCT.md b/docs/CODE_OF_CONDUCT.md similarity index 97% rename from .github/CODE_OF_CONDUCT.md rename to docs/CODE_OF_CONDUCT.md index 38a724e..28852f6 100644 --- a/.github/CODE_OF_CONDUCT.md +++ b/docs/CODE_OF_CONDUCT.md @@ -55,7 +55,7 @@ further defined and clarified by project maintainers. ## Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at [akritikos@nessos.gr](mailto:akritikos@nessos.gr). All +reported by contacting the project team at [akritikos@outlook.com](mailto:akritikos@outlook.com). All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. From 419780df442a100fa4fe224ceabec953d8e40301 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Mon, 16 Jun 2025 22:35:21 +0300 Subject: [PATCH 57/70] Replaces configuration files and update project structure --- .editorconfig | 2 +- .globalconfig | 157 ++++++++++++++++++++++++++ .runsettings | 28 +++++ .vscode/settings.json | 1 - .vscode/tasks.json | 191 ++++++++++++++++++++++++++++++- Directory.Build.props | 204 ++++++++++++++++++++++++++++++++++ Directory.Build.targets | 68 ++++++++++++ Directory.Packages.props | 28 ++--- Directory.Solution.targets | 53 +++++++++ GitVersion.yml | 32 ++++++ Solution.code-workspace | 17 +++ Solution.sln.DotSettings | 115 +++++++++++++++++++ Solution.slnx | 1 - icon.png | Bin 0 -> 9176 bytes packages/.gitkeep | 1 - samples/Directory.Build.props | 18 ++- src/Directory.Build.props | 6 +- tests/Directory.Build.props | 29 ++++- upload/.gitkeep | 1 - xunit.runner.json | 9 ++ 20 files changed, 930 insertions(+), 31 deletions(-) create mode 100644 .globalconfig create mode 100644 .runsettings delete mode 120000 .vscode/settings.json mode change 120000 => 100644 .vscode/tasks.json create mode 100644 Directory.Build.props create mode 100644 Directory.Build.targets create mode 100644 Directory.Solution.targets create mode 100644 GitVersion.yml create mode 100644 Solution.code-workspace create mode 100644 Solution.sln.DotSettings create mode 100644 icon.png mode change 120000 => 100644 packages/.gitkeep mode change 120000 => 100644 samples/Directory.Build.props mode change 120000 => 100644 tests/Directory.Build.props mode change 120000 => 100644 upload/.gitkeep create mode 100644 xunit.runner.json diff --git a/.editorconfig b/.editorconfig index 245cf42..2dd4c77 100644 --- a/.editorconfig +++ b/.editorconfig @@ -10,5 +10,5 @@ trim_trailing_whitespace = true [*.sh] end_of_line = lf -[**/Migrations/*.cs] +[{*.Generated.*.cs,Migrations/*,Scripts/*}] generated_code = true diff --git a/.globalconfig b/.globalconfig new file mode 100644 index 0000000..9faf33b --- /dev/null +++ b/.globalconfig @@ -0,0 +1,157 @@ +is_global = true + +# Ruleset replacement +dotnet_diagnostic.CA2007.severity = none # https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2007 +dotnet_diagnostic.CA1303.severity = none # https://learn.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1303 + +# Organize usings +dotnet_sort_system_directives_first = true +dotnet_separate_import_directive_groups = true +csharp_using_directive_placement = inside_namespace:suggestion +csharp_prefer_simple_using_statement = true:suggestion +csharp_style_namespace_declarations = file_scoped:warning +# this. preferences +dotnet_style_qualification_for_field = false:none +dotnet_style_qualification_for_property = false:none +dotnet_style_qualification_for_method = false:none +dotnet_style_qualification_for_event = false:none +# Language keywords vs BCL types preferences +dotnet_style_predefined_type_for_locals_parameters_members = true:suggestion +dotnet_style_predefined_type_for_member_access = true:suggestion +# Parentheses preferences +dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent +dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent +dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent +dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent +# Modifier preferences +dotnet_style_require_accessibility_modifiers = for_non_interface_members:suggestion +dotnet_style_readonly_field = true:suggestion +# Expression-level preferences +dotnet_style_object_initializer = true:suggestion +dotnet_style_collection_initializer = true:suggestion +dotnet_style_explicit_tuple_names = true:suggestion +dotnet_style_null_propagation = true:suggestion +dotnet_style_coalesce_expression = true:suggestion +dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion +dotnet_style_prefer_inferred_tuple_names = true:suggestion +dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion +dotnet_style_prefer_auto_properties = true:silent +dotnet_style_prefer_conditional_expression_over_assignment = true:suggestion +dotnet_style_prefer_conditional_expression_over_return = true:suggestion +############################### +# Naming Conventions # +############################### +# Style Definitions +dotnet_naming_style.pascal_case_style.capitalization = pascal_case +dotnet_naming_rule.private_instance_fields_rule.style = lower_camel_case_style +dotnet_naming_rule.private_static_fields_rule.style = lower_camel_case_style +# Use PascalCase for constant fields +dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion +dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields +dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style +dotnet_naming_symbols.constant_fields.applicable_kinds = field +dotnet_naming_symbols.constant_fields.applicable_accessibilities = * +dotnet_naming_symbols.constant_fields.required_modifiers = const +############################### +# C# Coding Conventions # +############################### +# var preferences +csharp_style_var_for_built_in_types = true:suggestion +csharp_style_var_when_type_is_apparent = true:suggestion +csharp_style_var_elsewhere = true:suggestion +# Expression-bodied members +csharp_style_expression_bodied_methods = when_on_single_line :suggestion +csharp_style_expression_bodied_constructors = when_on_single_line :suggestion +csharp_style_expression_bodied_operators = when_on_single_line :suggestion +csharp_style_expression_bodied_properties = when_on_single_line :suggestion +csharp_style_expression_bodied_indexers = when_on_single_line :suggestion +csharp_style_expression_bodied_accessors = when_on_single_line :suggestion +csharp_style_expression_bodied_lambdas = when_on_single_line :suggestion +csharp_style_expression_bodied_local_functions = when_on_single_line :suggestion +# Pattern matching preferences +csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion +csharp_style_pattern_matching_over_as_with_null_check = true:suggestion +# Null-checking preferences +csharp_style_throw_expression = true:suggestion +csharp_style_conditional_delegate_call = true:suggestion +# Modifier preferences +csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:suggestion +# Expression-level preferences +csharp_prefer_braces = true:none +csharp_style_deconstructed_variable_declaration = true:suggestion +csharp_prefer_simple_default_expression = true:suggestion +csharp_style_pattern_local_over_anonymous_function = true:suggestion +csharp_style_inlined_variable_declaration = true:suggestion +# Unused value preferences +csharp_style_unused_value_expression_statement_preference = discard_variable:none +csharp_style_unused_value_assignment_preference = discard_variable:suggestion +## Index and Range preferences +csharp_style_prefer_index_operator = true:suggestion +csharp_style_prefer_range_operator = true:suggestion +csharp_prefer_static_local_function = true:suggestion +csharp_style_prefer_switch_expression = true:suggestion +############################### +# C# Formatting Rules # +############################### +# New line preferences +csharp_new_line_before_open_brace = all +csharp_new_line_before_else = true +csharp_new_line_before_catch = true +csharp_new_line_before_finally = true +csharp_new_line_before_members_in_object_initializers = true +csharp_new_line_before_members_in_anonymous_types = true +csharp_new_line_between_query_expression_clauses = true +# Indentation preferences +csharp_indent_case_contents = true +csharp_indent_switch_labels = true +csharp_indent_labels = flush_left +csharp_indent_block_contents = true +csharp_indent_braces = false +csharp_indent_case_contents_when_block = true +# Space preferences +csharp_space_after_cast = false +csharp_space_after_keywords_in_control_flow_statements = true +csharp_space_between_method_call_parameter_list_parentheses = false +csharp_space_between_method_declaration_parameter_list_parentheses = false +csharp_space_between_parentheses = false +csharp_space_before_colon_in_inheritance_clause = true +csharp_space_after_colon_in_inheritance_clause = true +csharp_space_around_binary_operators = before_and_after +csharp_space_between_method_declaration_empty_parameter_list_parentheses = false +csharp_space_between_method_call_name_and_opening_parenthesis = false +csharp_space_between_method_call_empty_parameter_list_parentheses = false +csharp_space_between_method_declaration_name_and_open_parenthesis = false +csharp_space_after_comma = true +csharp_space_before_comma = false +csharp_space_after_dot = false +csharp_space_before_dot = false +csharp_space_after_semicolon_in_for_statement = true +csharp_space_before_semicolon_in_for_statement = false +csharp_space_around_declaration_statements = false +csharp_space_before_open_square_brackets = false +csharp_space_between_empty_square_brackets = false +csharp_space_between_square_brackets = false +# Wrapping preferences +csharp_preserve_single_line_statements = true +csharp_preserve_single_line_blocks = true +############################### +# VB Coding Conventions # +############################### +# Modifier preferences +visual_basic_preferred_modifier_order = Partial,Default,Private,Protected,Public,Friend,NotOverridable,Overridable,MustOverride,Overloads,Overrides,MustInherit,NotInheritable,Static,Shared,Shadows,ReadOnly,WriteOnly,Dim,Const,WithEvents,Widening,Narrowing,Custom,Async:suggestion + + +############################### +# Extra Rules # +############################### + +# dotnet_naming_rule.private_constants_rule.severity = warning +# dotnet_naming_rule.private_constants_rule.style = upper_camel_case_style +# dotnet_naming_rule.private_constants_rule.symbols = private_constants_symbols +# dotnet_naming_rule.private_instance_fields_rule.severity = warning +dotnet_naming_rule.private_instance_fields_rule.style = lower_camel_case_style +# dotnet_naming_rule.private_instance_fields_rule.symbols = private_instance_fields_symbols +# dotnet_naming_rule.private_static_fields_rule.severity = warning +dotnet_naming_rule.private_static_fields_rule.style = lower_camel_case_style +# dotnet_naming_rule.private_static_fields_rule.symbols = private_static_fields_symbols +# dotnet_naming_style.prefix_private_field_with_underscore.required_prefix = _ diff --git a/.runsettings b/.runsettings new file mode 100644 index 0000000..a3c9930 --- /dev/null +++ b/.runsettings @@ -0,0 +1,28 @@ + + + + .\TestResults + true + + + invariant + 5 + + + + + + cobertura + coverage.xml + ObsoleteAttribute,GeneratedCodeAttribute,CompilerGeneratedAttribute + **/tests/**.cs,**/samples/**.cs + false + true + false + true + true + + + + + diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 120000 index 1e08111..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1 +0,0 @@ -../.config/.vscode/settings.json \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json deleted file mode 120000 index a46957e..0000000 --- a/.vscode/tasks.json +++ /dev/null @@ -1 +0,0 @@ -../.config/.vscode/tasks-dotnet.json \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..d99b4df --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,190 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "restore", + "command": "dotnet", + "type": "shell", + "args": [ + "restore", + "--verbosity", + "minimal", + "-bl:logs\\restore.binlog" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "presentation": { + "reveal": "never", + "panel": "shared" + }, + "problemMatcher": "$msCompile" + }, + { + "label": "build", + "command": "dotnet", + "type": "shell", + "args": [ + "build", + "--configuration", + "Release", + "--no-restore", + "--nologo", + "--verbosity", + "minimal", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary", + "/p:TF_BUILD=true", + "-bl:logs\\build.binlog" + ], + "dependsOrder": "sequence", + "dependsOn": [ + "restore" + ], + "group": "build", + "presentation": { + "reveal": "silent", + "panel": "shared", + "clear": true + }, + "problemMatcher": "$msCompile" + }, + { + "label": "test", + "command": "dotnet", + "type": "shell", + "args": [ + "test", + "--configuration", + "Release", + "--no-build", + "--verbosity", + "normal", + "--collect:'Code Coverage'", + "-bl:logs\\test.binlog" + ], + "group": { + "kind": "test", + "isDefault": true + }, + "dependsOrder": "sequence", + "dependsOn": [ + "build" + ], + "presentation": { + "echo": true, + "reveal": "always", + "focus": false, + "panel": "shared", + "showReuseMessage": true, + "clear": true + }, + "problemMatcher": "$msCompile" + }, + { + "label": "pack", + "command": "dotnet", + "type": "shell", + "args": [ + "pack", + "--configuration", + "Release", + "--no-restore", + "--nologo", + "--verbosity", + "minimal", + "--output", + "packages", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary", + "/p:TF_BUILD=true", + "-bl:logs\\pack.binlog" + ], + "dependsOrder": "sequence", + "dependsOn": [ + "publish" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "presentation": { + "echo": true, + "reveal": "always", + "focus": false, + "panel": "shared", + "showReuseMessage": true, + "clear": true + }, + "problemMatcher": "$msCompile" + }, + { + "label": "publish", + "command": "dotnet", + "type": "shell", + "args": [ + "publish", + "--configuration", + "Release", + "--no-restore", + "--no-build", + "--nologo", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary", + "/p:TF_BUILD=true", + "-bl:logs\\publish.binlog" + ], + "dependsOrder": "sequence", + "dependsOn": [ + "test" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "presentation": { + "echo": true, + "reveal": "never", + "focus": false, + "panel": "shared", + "showReuseMessage": true, + "clear": true + }, + "problemMatcher": "$msCompile" + }, + { + "label": "clean", + "command": "dotnet", + "type": "shell", + "args": [ + "clean", + "--configuration", + "Release", + "--verbosity", + "minimal" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "presentation": { + "reveal": "never", + "panel": "shared" + }, + "problemMatcher": "$msCompile" + }, + { + "label": "cleanPublished", + "type": "process", + "command": "del", + "args": [ + "-rf", + "upload/*" + ], + "group": "build", + "presentation": {}, + "problemMatcher": "$msCompile" + } + ] +} diff --git a/Directory.Build.props b/Directory.Build.props new file mode 100644 index 0000000..593a71e --- /dev/null +++ b/Directory.Build.props @@ -0,0 +1,204 @@ + + + + + + + true + + true + + Kritikos.$(MSBuildProjectName) + + enable + + true + true + $(NoWarn);1591;1701;1702;NU1507 + + false + + true + + true + + true + + enable + + True + + preview + All + true + + true + + true + false + + preview + false + + true + PerMonitorV2 + true + true + False + $(DefaultItemExcludes);*.log;*.binlog + + + + $(MSBuildThisFileDirectory)artifacts + + + + + true + + true + + + + + $(MSBuildThisFileDirectory)\icon.png + + + $(MSBuildProjectDirectory)\icon.png + + true + + + $(MSBuildThisFileDirectory)\README.md + + + $(MSBuildProjectDirectory)\README.md + + true + + + + false + false + + + + true + + + + true + $(MSBuildProjectDirectory)/OpenApi + + + + Full + true + true + + + + true + publish + + + + + + true + + + true + + + true + + + true + + + + + true + + + + <_Parameter1>$(ClsCompliant) + <_Parameter1_TypeName>System.Boolean + + + + + + + + + + + + + + + + + + + + + + + + + + $(RootNamespace) + Kritikos IO + Alexandros Kritikos + $([System.DateTime]::Now.ToString(yyyy)) + Copyright © 2017-$(CurrentYear) Kritikos IO. All rights reserved. + false + $(MSBuildThisFileDirectory)/packages + $(MSBuildThisFileDirectory)/upload/$(ProjectName) + icon.png + README.md + true + git + + + true + + true + true + snupkg + Apache-2.0 + true + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + diff --git a/Directory.Build.targets b/Directory.Build.targets new file mode 100644 index 0000000..1d85767 --- /dev/null +++ b/Directory.Build.targets @@ -0,0 +1,68 @@ + + + + + + + false + false + true + true + true + $(MSBuildThisFileDirectory)\.runsettings + + + + + + + + + + + + + + + + + + + + <_Parameter1>%(InternalsVisibleTo.Identity) + + + + + + + <_Parameter1>$(AssemblyName)%(InternalsVisibleToSuffix.Identity) + + + + + + + + + + @(ReleaseNoteLines, '%0a') + + + diff --git a/Directory.Packages.props b/Directory.Packages.props index 6d82169..2a09ac7 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -1,25 +1,11 @@ - - - - - - - - - - + + + + - - - - - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - + + + diff --git a/Directory.Solution.targets b/Directory.Solution.targets new file mode 100644 index 0000000..ce73dec --- /dev/null +++ b/Directory.Solution.targets @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + git log --no-merges + $(GitBaseCommand) + --pretty=format:"- %25%25s" + $(GitBaseCommand) + --pretty=format:"- %25s" + + + + + + + + diff --git a/GitVersion.yml b/GitVersion.yml new file mode 100644 index 0000000..9ce984f --- /dev/null +++ b/GitVersion.yml @@ -0,0 +1,32 @@ +workflow: GitFlow/v1 +mode: ContinuousDelivery +branches: + main: + mode: ContinuousDelivery + label: rc + develop: + label: alpha + source-branches: + - main + - feature + feature: + mode: ContinuousDelivery + label: '{BranchName}' + source-branches: + - develop + release: + mode: ContinuousDelivery + label: '' + source-branches: + - main + - hotfix + hotfix: + mode: ContinuousDelivery + label: '{BranchName}' + source-branches: + - release + +prevent-increment: + of-merged-branch: true + when-branch-merged: true + when-current-commit-tagged: true diff --git a/Solution.code-workspace b/Solution.code-workspace new file mode 100644 index 0000000..53ee6f4 --- /dev/null +++ b/Solution.code-workspace @@ -0,0 +1,17 @@ +{ + "folders": [ + { + "path": ".", + "name": "Source" + } + ], + "extensions": { + "recommendations": [ + "EditorConfig.EditorConfig", + "mhutchie.git-graph", + "ms-dotnettools.csdevkit", + "ms-vscode-remote.remote-containers", + "seatonjiang.gitmoji-vscode", + ] + } +} diff --git a/Solution.sln.DotSettings b/Solution.sln.DotSettings new file mode 100644 index 0000000..7fb19a2 --- /dev/null +++ b/Solution.sln.DotSettings @@ -0,0 +1,115 @@ + + True + Inherit + True + + True + False + True + True + True + True + True + False + False + False + + 20 + *ModelSnapshot.cs + Migrations/* + True + False + DO_NOT_SHOW + DO_NOT_SHOW + DO_NOT_SHOW + + True + True + True + ShowAndRun + None + None + True + USE_TABS_ONLY + 0 + 1 + 1 + + NEVER + NEVER + NEVER + True + False + True + True + CHOP_IF_LONG + CHOP_ALWAYS + CHOP_ALWAYS + True + True + True + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> + <Policy Inspect="True" Prefix="I" Suffix="" Style="AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> + <Policy Inspect="True" Prefix="T" Suffix="" Style="AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> + + + LIVE_MONITOR + LIVE_MONITOR + DO_NOTHING + LIVE_MONITOR + LIVE_MONITOR + LIVE_MONITOR + LIVE_MONITOR + LIVE_MONITOR + LIVE_MONITOR + LIVE_MONITOR + LIVE_MONITOR + DO_NOTHING + LIVE_MONITOR + True + True + True + True + True + False + diff --git a/Solution.slnx b/Solution.slnx index 394921a..15a1632 100644 --- a/Solution.slnx +++ b/Solution.slnx @@ -14,7 +14,6 @@ - diff --git a/icon.png b/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..94f635a34ea44555ed3c1dd616fdb1e9ff2845c9 GIT binary patch literal 9176 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 literal 0 HcmV?d00001 diff --git a/packages/.gitkeep b/packages/.gitkeep deleted file mode 120000 index 98ae275..0000000 --- a/packages/.gitkeep +++ /dev/null @@ -1 +0,0 @@ -../.config/.gitkeep \ No newline at end of file diff --git a/packages/.gitkeep b/packages/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/samples/Directory.Build.props b/samples/Directory.Build.props deleted file mode 120000 index dac8906..0000000 --- a/samples/Directory.Build.props +++ /dev/null @@ -1 +0,0 @@ -../.config/Extras.Directory.Build.props \ No newline at end of file diff --git a/samples/Directory.Build.props b/samples/Directory.Build.props new file mode 100644 index 0000000..5926a6e --- /dev/null +++ b/samples/Directory.Build.props @@ -0,0 +1,17 @@ + + + + + + + false + false + false + + + + + + diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 08b5757..f23084e 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -1,6 +1,8 @@ - - + + diff --git a/tests/Directory.Build.props b/tests/Directory.Build.props deleted file mode 120000 index 92b9d7a..0000000 --- a/tests/Directory.Build.props +++ /dev/null @@ -1 +0,0 @@ -../.config/Tests.Directory.Build.props \ No newline at end of file diff --git a/tests/Directory.Build.props b/tests/Directory.Build.props new file mode 100644 index 0000000..8621b71 --- /dev/null +++ b/tests/Directory.Build.props @@ -0,0 +1,28 @@ + + + + + + + false + true + + + + + + + + + + + + + @(VSTestLogger) + + + diff --git a/upload/.gitkeep b/upload/.gitkeep deleted file mode 120000 index 98ae275..0000000 --- a/upload/.gitkeep +++ /dev/null @@ -1 +0,0 @@ -../.config/.gitkeep \ No newline at end of file diff --git a/upload/.gitkeep b/upload/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/xunit.runner.json b/xunit.runner.json new file mode 100644 index 0000000..fa78053 --- /dev/null +++ b/xunit.runner.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://xunit.net/schema/current/xunit.runner.schema.json", + "methodDisplay": "classAndMethod", + "methodDisplayOptions": "all", + "parallelAlgorithm": "aggressive", + "parallelizeAssembly": true, + "longRunningTestSeconds": 5, + "showLiveOutput": true +} From 3859d2f5bcca53d3ddf92bdecfb9f355f72a1722 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Mon, 16 Jun 2025 22:53:39 +0300 Subject: [PATCH 58/70] =?UTF-8?q?=F0=9F=93=9D=20Updates=20readme?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index bc10e2a..c0f4a6c 100644 --- a/README.md +++ b/README.md @@ -24,4 +24,7 @@ git pull template main > Keep in mind that until the dotnet toolset handles generating new projects correctly, you will need to edit new csproj files and remove Version attributes from PackageReference entries. For more details consult [Central Package Management]. +> Provided props files allow compiled models with EF Core 9+, to use them install `Microsoft.EntityFrameworkCore.Tasks` on all projects containing DbContext classes. (Not yet suited for production use, consult [Entity Framework Core MSBuild integration]). + [Central Package Management]: https://learn.microsoft.com/en-us/nuget/consume-packages/central-package-management +[Entity Framework Core MSBuild integration]: https://learn.microsoft.com/en-us/ef/core/cli/msbuild From c23c9b35d69284c1785903f1975dc085ce6d62d8 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Mon, 16 Jun 2025 23:27:38 +0300 Subject: [PATCH 59/70] =?UTF-8?q?=F0=9F=94=A7=20Adds=20default=20implcit?= =?UTF-8?q?=20namespace=20for=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/Directory.Build.props | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/Directory.Build.props b/tests/Directory.Build.props index 8621b71..451adf2 100644 --- a/tests/Directory.Build.props +++ b/tests/Directory.Build.props @@ -10,6 +10,10 @@ true + + + + From 7caf5ed4aa5af64642c9d681a4786f89fb2cdaae Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Mon, 16 Jun 2025 23:27:54 +0300 Subject: [PATCH 60/70] =?UTF-8?q?=F0=9F=8E=89=20Uses=20actual=20folder=20n?= =?UTF-8?q?ame=20in=20VS=20Code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Solution.code-workspace | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Solution.code-workspace b/Solution.code-workspace index 53ee6f4..4c48162 100644 --- a/Solution.code-workspace +++ b/Solution.code-workspace @@ -1,8 +1,7 @@ { "folders": [ { - "path": ".", - "name": "Source" + "path": "." } ], "extensions": { From b744a8b052e20f2b901c4f81caf9f147c071a7d2 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Thu, 10 Jul 2025 14:38:43 +0300 Subject: [PATCH 61/70] =?UTF-8?q?=F0=9F=94=96=20Moves=20back=20to=20GitHub?= =?UTF-8?q?=20Flow=20branching=20strategy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GitVersion.yml | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/GitVersion.yml b/GitVersion.yml index 9ce984f..e1747ce 100644 --- a/GitVersion.yml +++ b/GitVersion.yml @@ -3,7 +3,7 @@ mode: ContinuousDelivery branches: main: mode: ContinuousDelivery - label: rc + label: '' develop: label: alpha source-branches: @@ -14,17 +14,6 @@ branches: label: '{BranchName}' source-branches: - develop - release: - mode: ContinuousDelivery - label: '' - source-branches: - - main - - hotfix - hotfix: - mode: ContinuousDelivery - label: '{BranchName}' - source-branches: - - release prevent-increment: of-merged-branch: true From 6bb600ac8737252f32f5176e7f2860286bf4aadb Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sat, 16 Aug 2025 16:23:00 +0300 Subject: [PATCH 62/70] =?UTF-8?q?=F0=9F=9A=9A=20Sets=20proper=20path=20for?= =?UTF-8?q?=20published=20artifacts=20and=20allows=20overriding?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Directory.Build.props | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 593a71e..c28148f 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -164,8 +164,9 @@ $([System.DateTime]::Now.ToString(yyyy)) Copyright © 2017-$(CurrentYear) Kritikos IO. All rights reserved. false - $(MSBuildThisFileDirectory)/packages - $(MSBuildThisFileDirectory)/upload/$(ProjectName) + $(MSBuildThisFileDirectory)/packages + + $(MSBuildThisFileDirectory)/upload/$(MSBuildProjectName) icon.png README.md true From aff7de0901f501ec7a17e13ae87e500e6d1172a4 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sat, 16 Aug 2025 16:24:28 +0300 Subject: [PATCH 63/70] =?UTF-8?q?=F0=9F=9A=9A=20Falls=20back=20to=20msbuil?= =?UTF-8?q?d=20configured=20paths?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/tasks.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index d99b4df..51e05e2 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -94,8 +94,6 @@ "--nologo", "--verbosity", "minimal", - "--output", - "packages", "/property:GenerateFullPaths=true", "/consoleloggerparameters:NoSummary", "/p:TF_BUILD=true", From 405767587e0a422a284f9d505cbc2ddbe9b08598 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sat, 16 Aug 2025 17:39:37 +0300 Subject: [PATCH 64/70] =?UTF-8?q?=F0=9F=94=96=20Updates=20GitVersion=20to?= =?UTF-8?q?=20latest=20configuration=20values?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Directory.Packages.props | 2 +- GitVersion.yml | 19 ++++++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 2a09ac7..c190d43 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -1,6 +1,6 @@ - + diff --git a/GitVersion.yml b/GitVersion.yml index e1747ce..905dcd5 100644 --- a/GitVersion.yml +++ b/GitVersion.yml @@ -1,19 +1,24 @@ -workflow: GitFlow/v1 +workflow: GitHubFlow/v1 mode: ContinuousDelivery +tag-prefix: '[vV]?' +ignore: + paths: + - ^(?!src\/|Directory\.Packages\.props|GitVersion.yml).* branches: - main: - mode: ContinuousDelivery - label: '' develop: - label: alpha + label: 'beta' + regex: '^(dev|develop|development)$' source-branches: - main - - feature feature: mode: ContinuousDelivery - label: '{BranchName}' source-branches: - develop + hotfix: + regex: ^hotfix?[\/-](?.+) + mode: ContinuousDelivery + release: + mode: ContinuousDelivery prevent-increment: of-merged-branch: true From 30e2c18b68f9ce4b830a1da62d3d8f53ed6bbbec Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Sat, 16 Aug 2025 18:15:29 +0300 Subject: [PATCH 65/70] =?UTF-8?q?=F0=9F=94=A7=20Enables=20opting=20out=20o?= =?UTF-8?q?f=20custom=20paths=20via=20DisableCustomArtifactsPath=20variabl?= =?UTF-8?q?e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Necessary to faciliate Deterministic builds --- Directory.Build.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.props b/Directory.Build.props index c28148f..d0861f2 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -50,7 +50,7 @@ $(DefaultItemExcludes);*.log;*.binlog - + $(MSBuildThisFileDirectory)artifacts From 268aff434e31366ab9c7e4bbc3ea94df3db61446 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Wed, 20 Aug 2025 13:42:33 +0300 Subject: [PATCH 66/70] =?UTF-8?q?=F0=9F=9A=A8=20Adds=20back=20dotnet=20rul?= =?UTF-8?q?eset?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Directory.Build.props | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Directory.Build.props b/Directory.Build.props index d0861f2..1830878 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -134,6 +134,12 @@ + + + $(MSBuildThisFileDirectory)\dotnet.ruleset + + From 0a769040fc786cc9924786d107c553aa213b7a3c Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Wed, 20 Aug 2025 13:46:32 +0300 Subject: [PATCH 67/70] =?UTF-8?q?=F0=9F=94=A7=20Fixes=20EF=20Core=20migrat?= =?UTF-8?q?ions=20with=20compiled=20models?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Directory.Build.targets | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Directory.Build.targets b/Directory.Build.targets index 1d85767..79d1ba6 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -65,4 +65,9 @@ @(ReleaseNoteLines, '%0a') + + + From 9a9b3ca9f8fe855110937358b0eebcd37b5195a1 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Wed, 20 Aug 2025 14:05:18 +0300 Subject: [PATCH 68/70] =?UTF-8?q?=F0=9F=9A=9A=20Allows=20underscores=20in?= =?UTF-8?q?=20unit=20test=20names?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Directory.Build.targets | 1 + 1 file changed, 1 insertion(+) diff --git a/Directory.Build.targets b/Directory.Build.targets index 79d1ba6..66e2632 100644 --- a/Directory.Build.targets +++ b/Directory.Build.targets @@ -10,6 +10,7 @@ true true $(MSBuildThisFileDirectory)\.runsettings + $(NoWarn);CA1707 From 4e997a6fdf5eb554dde70c0cb0de44b687b6305b Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Fri, 24 Oct 2025 14:32:35 +0300 Subject: [PATCH 69/70] =?UTF-8?q?=F0=9F=94=A7=20Adds=20UseArtifactsOutput?= =?UTF-8?q?=20property=20for=20non-empty=20ArtifactsPath?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Directory.Build.props | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Directory.Build.props b/Directory.Build.props index 1830878..b7930f6 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -54,6 +54,10 @@ $(MSBuildThisFileDirectory)artifacts + + true + + true From 3266fd5e653e243be86e82549fe8504aca463f04 Mon Sep 17 00:00:00 2001 From: Alexandros Kritikos Date: Fri, 24 Oct 2025 14:53:23 +0300 Subject: [PATCH 70/70] =?UTF-8?q?=F0=9F=94=A7=20Disables=20CentralPackageT?= =?UTF-8?q?ransitivePinning=20in=20favor=20of=20explicit=20references?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Keeping this enabled makes nuget updating a pain, with manual edits required to circumvent certain dependency graphs --- Directory.Build.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Directory.Build.props b/Directory.Build.props index b7930f6..b00cb64 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -62,7 +62,7 @@ true - true + false