Skip to content

Commit ceb4cb0

Browse files
committed
first commit
1 parent fea143b commit ceb4cb0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+2850
-0
lines changed

.editorconfig

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# EditorConfig: https://EditorConfig.org
2+
3+
root = true
4+
5+
# All Files
6+
[*]
7+
charset = utf-8
8+
indent_style = space
9+
indent_size = 4
10+
insert_final_newline = true
11+
trim_trailing_whitespace = true
12+
13+
# XML Configuration Files
14+
[*.{xml,config,props,targets,nuspec,resx,ruleset,vsixmanifest,vsct,refactorlog,runsettings}]
15+
indent_size = 2
16+
17+
# JSON Files
18+
[*.{json,json5,webmanifest}]
19+
indent_size = 2
20+
21+
# Project Files
22+
[*.{csproj,sqlproj}]
23+
indent_size = 2
24+
25+
# YAML Files
26+
[*.{yml,yaml}]
27+
indent_size = 2
28+
29+
# Markdown Files
30+
[*.md]
31+
trim_trailing_whitespace = false
32+
33+
# Web Files
34+
[*.{htm,html,js,jsm,ts,tsx,css,sass,scss,less,pcss,svg,vue}]
35+
indent_size = 2
36+
37+
# Batch Files
38+
[*.{cmd,bat}]
39+
end_of_line = crlf
40+
41+
# Bash Files
42+
[*.sh]
43+
end_of_line = lf
44+
45+
[*.{cs,vb}]
46+
dotnet_sort_system_directives_first = true
47+
dotnet_separate_import_directive_groups = true
48+
dotnet_style_namespace_match_folder = true
49+
50+
[*.cs]
51+
csharp_using_directive_placement = outside_namespace
52+
csharp_style_namespace_declarations = file_scoped:warning

.gitattributes

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
###############################################################################
2+
# Set default behavior to automatically normalize line endings.
3+
###############################################################################
4+
* text=auto
5+
6+
###############################################################################
7+
# Set default behavior for command prompt diff.
8+
#
9+
# This is need for earlier builds of msysgit that does not have it on by
10+
# default for csharp files.
11+
# Note: This is only used by command line
12+
###############################################################################
13+
#*.cs diff=csharp
14+
15+
###############################################################################
16+
# Set the merge driver for project and solution files
17+
#
18+
# Merging from the command prompt will add diff markers to the files if there
19+
# are conflicts (Merging from VS is not affected by the settings below, in VS
20+
# the diff markers are never inserted). Diff markers may cause the following
21+
# file extensions to fail to load in VS. An alternative would be to treat
22+
# these files as binary and thus will always conflict and require user
23+
# intervention with every merge. To do so, just uncomment the entries below
24+
###############################################################################
25+
#*.sln merge=binary
26+
#*.csproj merge=binary
27+
#*.vbproj merge=binary
28+
#*.vcxproj merge=binary
29+
#*.vcproj merge=binary
30+
#*.dbproj merge=binary
31+
#*.fsproj merge=binary
32+
#*.lsproj merge=binary
33+
#*.wixproj merge=binary
34+
#*.modelproj merge=binary
35+
#*.sqlproj merge=binary
36+
#*.wwaproj merge=binary
37+
38+
###############################################################################
39+
# behavior for image files
40+
#
41+
# image files are treated as binary by default.
42+
###############################################################################
43+
#*.jpg binary
44+
#*.png binary
45+
#*.gif binary
46+
47+
###############################################################################
48+
# diff behavior for common document formats
49+
#
50+
# Convert binary document formats to text before diffing them. This feature
51+
# is only available from the command line. Turn it on by uncommenting the
52+
# entries below.
53+
###############################################################################
54+
#*.doc diff=astextplain
55+
#*.DOC diff=astextplain
56+
#*.docx diff=astextplain
57+
#*.DOCX diff=astextplain
58+
#*.dot diff=astextplain
59+
#*.DOT diff=astextplain
60+
#*.pdf diff=astextplain
61+
#*.PDF diff=astextplain
62+
#*.rtf diff=astextplain
63+
#*.RTF diff=astextplain

.github/dependabot.yml

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: "github-actions"
4+
directory: "/"
5+
schedule:
6+
interval: daily
7+
time: "01:00"
8+
timezone: "America/Chicago"
9+
open-pull-requests-limit: 10
10+
11+
- package-ecosystem: nuget
12+
directory: "/"
13+
schedule:
14+
interval: daily
15+
time: "02:00"
16+
timezone: "America/Chicago"
17+
open-pull-requests-limit: 10
18+
groups:
19+
Azure:
20+
patterns:
21+
- "Azure.*"
22+
- "Microsoft.Azure.*"
23+
- "Microsoft.Extensions.Azure"
24+
AspNetCoreHealthChecks:
25+
patterns:
26+
- "AspNetCore.HealthChecks.*"
27+
AspNetCore:
28+
patterns:
29+
- "Microsoft.AspNetCore.*"
30+
- "Microsoft.Extensions.Features"
31+
MicrosoftExtensions:
32+
patterns:
33+
- "Microsoft.Extensions.*"
34+
EntityFrameworkCore:
35+
patterns:
36+
- "Microsoft.EntityFrameworkCore.*"
37+
OpenTelemetry:
38+
patterns:
39+
- "OpenTelemetry.*"
40+
Serilog:
41+
patterns:
42+
- "Serilog"
43+
- "Serilog.*"
44+
Hangfire:
45+
patterns:
46+
- "Hangfire"
47+
- "Hangfire.*"
48+
Testcontainers:
49+
patterns:
50+
- "Testcontainers.*"
51+
xUnit:
52+
patterns:
53+
- "xunit"
54+
- "xunit.assert"
55+
- "xunit.core"
56+
- "xunit.extensibility.*"
57+
- "xunit.runner.*"

.github/workflows/dotnet.yml

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
name: Build
2+
3+
env:
4+
DOTNET_NOLOGO: true
5+
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
6+
DOTNET_ENVIRONMENT: github
7+
ASPNETCORE_ENVIRONMENT: github
8+
BUILD_PATH: "${{github.workspace}}/artifacts"
9+
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
10+
11+
on:
12+
push:
13+
branches:
14+
- main
15+
- develop
16+
tags:
17+
- "v*"
18+
pull_request:
19+
branches:
20+
- main
21+
- develop
22+
23+
jobs:
24+
build:
25+
runs-on: ubuntu-latest
26+
27+
steps:
28+
- name: Checkout
29+
uses: actions/checkout@v4
30+
with:
31+
fetch-depth: 0
32+
33+
- name: Install .NET
34+
uses: actions/setup-dotnet@v4
35+
with:
36+
dotnet-version: 8.0.x
37+
38+
- name: Restore Dependencies
39+
run: dotnet restore
40+
41+
- name: Build Solution
42+
run: dotnet build --no-restore --configuration Release
43+
44+
- name: Run Test
45+
run: dotnet test --no-build --configuration Release --collect:"XPlat Code Coverage" --settings coverlet.runsettings
46+
47+
- name: Report Coverage
48+
if: success()
49+
uses: coverallsapp/github-action@v2
50+
with:
51+
file: "${{github.workspace}}/test/*/TestResults/*/coverage.info"
52+
format: lcov
53+
54+
- name: Create Packages
55+
if: success() && github.event_name != 'pull_request'
56+
run: dotnet pack --configuration Release --no-build --output "${{env.BUILD_PATH}}"
57+
58+
- name: Upload Packages
59+
if: success() && github.event_name != 'pull_request'
60+
uses: actions/upload-artifact@v4
61+
with:
62+
name: packages
63+
path: "${{env.BUILD_PATH}}"
64+
65+
deploy:
66+
runs-on: ubuntu-latest
67+
needs: build
68+
if: success() && github.event_name != 'pull_request' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v'))
69+
70+
steps:
71+
- name: Download Artifact
72+
uses: actions/download-artifact@v4
73+
with:
74+
name: packages
75+
76+
- name: Publish Packages GitHub
77+
run: |
78+
for package in $(find -name "*.nupkg"); do
79+
echo "${0##*/}": Pushing $package...
80+
dotnet nuget push $package --source https://nuget.pkg.github.com/loresoft/index.json --api-key ${{ secrets.GITHUB_TOKEN }} --skip-duplicate
81+
done
82+
83+
- name: Publish Packages feedz
84+
run: |
85+
for package in $(find -name "*.nupkg"); do
86+
echo "${0##*/}": Pushing $package...
87+
dotnet nuget push $package --source https://f.feedz.io/loresoft/open/nuget/index.json --api-key ${{ secrets.FEEDDZ_KEY }} --skip-duplicate
88+
done
89+
90+
- name: Publish Packages Nuget
91+
if: startsWith(github.ref, 'refs/tags/v')
92+
run: |
93+
for package in $(find -name "*.nupkg"); do
94+
echo "${0##*/}": Pushing $package...
95+
dotnet nuget push $package --source https://api.nuget.org/v3/index.json --api-key ${{ secrets.NUGET_KEY }} --skip-duplicate
96+
done

Equatable.Generator.sln

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# 17
4+
VisualStudioVersion = 17.0.31903.59
5+
MinimumVisualStudioVersion = 10.0.40219.1
6+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Equatable.Generator", "src\Equatable.Generator\Equatable.Generator.csproj", "{7CEA78BA-DFE9-4B0E-8837-11850D7C197B}"
7+
EndProject
8+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Equatable.SourceGenerator", "src\Equatable.SourceGenerator\Equatable.SourceGenerator.csproj", "{919F5AB0-47F6-4B38-B934-E5ADE8C8BA11}"
9+
EndProject
10+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{9ABD9B14-9E53-463A-96B0-FA7F503BA826}"
11+
ProjectSection(SolutionItems) = preProject
12+
src\Directory.Build.props = src\Directory.Build.props
13+
.github\workflows\dotnet.yml = .github\workflows\dotnet.yml
14+
README.md = README.md
15+
EndProjectSection
16+
EndProject
17+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Equatable.Generator.Tests", "test\Equatable.Generator.Tests\Equatable.Generator.Tests.csproj", "{FC77B226-0FC3-4AD4-8364-761D5FC419E5}"
18+
EndProject
19+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Equatable.SourceGenerator.Tests", "test\Equatable.SourceGenerator.Tests\Equatable.SourceGenerator.Tests.csproj", "{75E86899-4DD9-4493-8EE4-CF8237F2539D}"
20+
EndProject
21+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{EA286CB8-AC01-452B-9092-97DCE3817093}"
22+
EndProject
23+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Equatable.Entities", "test\Equatable.Entities\Equatable.Entities.csproj", "{E1C35715-F118-433E-B456-11FD4B7B3079}"
24+
EndProject
25+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Equatable.Comparers", "src\Equatable.Comparers\Equatable.Comparers.csproj", "{E8A054EF-222A-4CD8-9177-643050501FB1}"
26+
EndProject
27+
Global
28+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
29+
Debug|Any CPU = Debug|Any CPU
30+
Release|Any CPU = Release|Any CPU
31+
EndGlobalSection
32+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
33+
{7CEA78BA-DFE9-4B0E-8837-11850D7C197B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
34+
{7CEA78BA-DFE9-4B0E-8837-11850D7C197B}.Debug|Any CPU.Build.0 = Debug|Any CPU
35+
{7CEA78BA-DFE9-4B0E-8837-11850D7C197B}.Release|Any CPU.ActiveCfg = Release|Any CPU
36+
{7CEA78BA-DFE9-4B0E-8837-11850D7C197B}.Release|Any CPU.Build.0 = Release|Any CPU
37+
{919F5AB0-47F6-4B38-B934-E5ADE8C8BA11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
38+
{919F5AB0-47F6-4B38-B934-E5ADE8C8BA11}.Debug|Any CPU.Build.0 = Debug|Any CPU
39+
{919F5AB0-47F6-4B38-B934-E5ADE8C8BA11}.Release|Any CPU.ActiveCfg = Release|Any CPU
40+
{919F5AB0-47F6-4B38-B934-E5ADE8C8BA11}.Release|Any CPU.Build.0 = Release|Any CPU
41+
{FC77B226-0FC3-4AD4-8364-761D5FC419E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
42+
{FC77B226-0FC3-4AD4-8364-761D5FC419E5}.Debug|Any CPU.Build.0 = Debug|Any CPU
43+
{FC77B226-0FC3-4AD4-8364-761D5FC419E5}.Release|Any CPU.ActiveCfg = Release|Any CPU
44+
{FC77B226-0FC3-4AD4-8364-761D5FC419E5}.Release|Any CPU.Build.0 = Release|Any CPU
45+
{75E86899-4DD9-4493-8EE4-CF8237F2539D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
46+
{75E86899-4DD9-4493-8EE4-CF8237F2539D}.Debug|Any CPU.Build.0 = Debug|Any CPU
47+
{75E86899-4DD9-4493-8EE4-CF8237F2539D}.Release|Any CPU.ActiveCfg = Release|Any CPU
48+
{75E86899-4DD9-4493-8EE4-CF8237F2539D}.Release|Any CPU.Build.0 = Release|Any CPU
49+
{E1C35715-F118-433E-B456-11FD4B7B3079}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
50+
{E1C35715-F118-433E-B456-11FD4B7B3079}.Debug|Any CPU.Build.0 = Debug|Any CPU
51+
{E1C35715-F118-433E-B456-11FD4B7B3079}.Release|Any CPU.ActiveCfg = Release|Any CPU
52+
{E1C35715-F118-433E-B456-11FD4B7B3079}.Release|Any CPU.Build.0 = Release|Any CPU
53+
{E8A054EF-222A-4CD8-9177-643050501FB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
54+
{E8A054EF-222A-4CD8-9177-643050501FB1}.Debug|Any CPU.Build.0 = Debug|Any CPU
55+
{E8A054EF-222A-4CD8-9177-643050501FB1}.Release|Any CPU.ActiveCfg = Release|Any CPU
56+
{E8A054EF-222A-4CD8-9177-643050501FB1}.Release|Any CPU.Build.0 = Release|Any CPU
57+
EndGlobalSection
58+
GlobalSection(SolutionProperties) = preSolution
59+
HideSolutionNode = FALSE
60+
EndGlobalSection
61+
GlobalSection(NestedProjects) = preSolution
62+
{FC77B226-0FC3-4AD4-8364-761D5FC419E5} = {EA286CB8-AC01-452B-9092-97DCE3817093}
63+
{75E86899-4DD9-4493-8EE4-CF8237F2539D} = {EA286CB8-AC01-452B-9092-97DCE3817093}
64+
{E1C35715-F118-433E-B456-11FD4B7B3079} = {EA286CB8-AC01-452B-9092-97DCE3817093}
65+
EndGlobalSection
66+
GlobalSection(ExtensibilityGlobals) = postSolution
67+
SolutionGuid = {1A9BD8E7-57D6-44B0-BFC7-B7378C05D4F5}
68+
EndGlobalSection
69+
EndGlobal

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
# Equatable.Generator
2+
23
Source generator for Equals and GetHashCode

coverlet.runsettings

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<RunSettings>
3+
<DataCollectionRunSettings>
4+
<DataCollectors>
5+
<DataCollector friendlyName="XPlat code coverage">
6+
<Configuration>
7+
<Format>lcov</Format>
8+
</Configuration>
9+
</DataCollector>
10+
</DataCollectors>
11+
</DataCollectionRunSettings>
12+
</RunSettings>

logo.png

4.89 KB
Loading

0 commit comments

Comments
 (0)