diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..45495ea --- /dev/null +++ b/.editorconfig @@ -0,0 +1,9 @@ +# EditorConfig + +[*] +charset = utf-8 +trim_trailing_whitespace = true +tab_width = 2 +indent_size = 2 +indent_style = space +insert_final_newline = true diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..5896c16 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,63 @@ +############################################################################### +# Set default behavior to automatically normalize line endings. +############################################################################### +* text=auto + +############################################################################### +# Set default behavior for command prompt diff. +# +# This is need for earlier builds of msysgit that does not have it on by +# default for csharp files. +# Note: This is only used by command line +############################################################################### +#*.cs diff=csharp + +############################################################################### +# Set the merge driver for project and solution files +# +# Merging from the command prompt will add diff markers to the files if there +# are conflicts (Merging from VS is not affected by the settings below, in VS +# the diff markers are never inserted). Diff markers may cause the following +# file extensions to fail to load in VS. An alternative would be to treat +# these files as binary and thus will always conflict and require user +# intervention with every merge. To do so, just uncomment the entries below +############################################################################### +#*.sln merge=binary +#*.csproj merge=binary +#*.vbproj merge=binary +#*.vcxproj merge=binary +#*.vcproj merge=binary +#*.dbproj merge=binary +#*.fsproj merge=binary +#*.lsproj merge=binary +#*.wixproj merge=binary +#*.modelproj merge=binary +#*.sqlproj merge=binary +#*.wwaproj merge=binary + +############################################################################### +# behavior for image files +# +# image files are treated as binary by default. +############################################################################### +#*.jpg binary +#*.png binary +#*.gif binary + +############################################################################### +# diff behavior for common document formats +# +# Convert binary document formats to text before diffing them. This feature +# is only available from the command line. Turn it on by uncommenting the +# entries below. +############################################################################### +#*.doc diff=astextplain +#*.DOC diff=astextplain +#*.docx diff=astextplain +#*.DOCX diff=astextplain +#*.dot diff=astextplain +#*.DOT diff=astextplain +#*.pdf diff=astextplain +#*.PDF diff=astextplain +#*.rtf diff=astextplain +#*.RTF diff=astextplain diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..1230149 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml new file mode 100644 index 0000000..a51ba9b --- /dev/null +++ b/.github/release-drafter.yml @@ -0,0 +1,55 @@ +name-template: "v$RESOLVED_VERSION" +tag-template: "v$RESOLVED_VERSION" +change-template: "- $TITLE by @$AUTHOR (#$NUMBER)" +no-changes-template: "- No changes" + +prerelease: true +prerelease-identifier: rc + +categories: + - title: "📚 Documentation" + labels: + - "documentation" + - title: "🚀 New Features" + labels: + - "enhancement" + - title: "🐛 Bug Fixes" + labels: + - "bug" + - title: "🧰 Maintenance" + labels: + - "maintenance" + - title: "🚨 Security Updates" + labels: + - "security" + - title: "🔄 Dependency Updates" + collapse-after: 3 + labels: + - "dependencies" + +version-resolver: + major: + labels: + - "major" + minor: + labels: + - "minor" + patch: + labels: + - "patch" + default: patch +template: | + $CHANGES + + ## 👨🏼‍💻 Contributors + + $CONTRIBUTORS +autolabeler: + - label: "documentation" + files: + - "docs/**/*" + - label: "maintenance" + files: + - ".github/**/*" + - ".devcontainer/**/*" + - "test/**/*" diff --git a/.github/workflows/release-drafter.yml b/.github/workflows/release-drafter.yml new file mode 100644 index 0000000..defad0a --- /dev/null +++ b/.github/workflows/release-drafter.yml @@ -0,0 +1,29 @@ +name: Release Drafter + +on: + push: + branches: + - main + pull_request_target: + types: + - edited + - opened + - reopened + - synchronize + workflow_dispatch: {} + +concurrency: + group: ${{ github.event_name == 'pull_request' && format('pr-{0}', github.event.number) || github.ref }} + cancel-in-progress: ${{ github.ref != 'refs/heads/main' && github.ref_type != 'tag' }} + +jobs: + update_release_draft: + permissions: + contents: write + pull-requests: write + runs-on: ubuntu-latest + steps: + - name: "Draft Release" + uses: release-drafter/release-drafter@v6.0.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..bdcfc6b --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,63 @@ +name: Release + +on: + pull_request: {} + push: + branches: + - main + release: + types: + - published + workflow_dispatch: {} + +env: + DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1 + DOTNET_NOLOGO: true + NUGET_DIR: ${{ github.workspace}}/nuget + +jobs: + publish: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Install GitVersion + uses: gittools/actions/gitversion/setup@v1.1.1 + with: + versionSpec: '5.x' + - name: Setup .NET Core SDK 8 + uses: actions/setup-dotnet@v4 + with: + dotnet-version: | + 8.0.x + - name: Restore .NET Packages + run: dotnet restore + + - name: Determine Version + uses: gittools/actions/gitversion/execute@v1.1.1 + with: + useConfigFile: true + + - name: Build .NET Solution + run: dotnet build --configuration Release --no-restore + + - name: Pack .NET Solution + run: dotnet pack --configuration Release --no-build --output pack/ + if: ${{ github.event_name == 'release' && github.ref_type == 'tag' || github.event.release.tag_name }} + + - name: Publish .NET Solution to GitHub Packages + continue-on-error: true + run: dotnet nuget push pack/*.nupkg --api-key ${{ secrets.GITHUB_TOKEN }} --source "https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json" + if: ${{ github.event_name == 'release' && github.ref_type == 'tag' || github.event.release.tag_name }} + + - name: Publish .NET Solution to NuGet.org + env: + apikey: ${{ secrets.NUGET_ORG_KEY }} + if: ${{ github.event_name == 'release' && github.ref_type == 'tag' || github.event.release.tag_name }} + run: dotnet nuget push pack/*.nupkg --api-key ${{ secrets.NUGET_ORG_KEY }} --source nuget + continue-on-error: true diff --git a/.gitignore b/.gitignore index 8a30d25..a255f99 100644 --- a/.gitignore +++ b/.gitignore @@ -396,3 +396,4 @@ FodyWeavers.xsd # JetBrains Rider *.sln.iml +.idea/ diff --git a/Branding.sln b/Branding.sln new file mode 100644 index 0000000..1a8834b --- /dev/null +++ b/Branding.sln @@ -0,0 +1,21 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{73C15AA6-8467-479E-852C-5884E5ADB397}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InfinityFlow.Tools.Branding", "src\Branding\InfinityFlow.Tools.Branding.csproj", "{79F92A34-B82B-4367-B562-3A00C38556D8}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {79F92A34-B82B-4367-B562-3A00C38556D8} = {73C15AA6-8467-479E-852C-5884E5ADB397} + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {79F92A34-B82B-4367-B562-3A00C38556D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {79F92A34-B82B-4367-B562-3A00C38556D8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {79F92A34-B82B-4367-B562-3A00C38556D8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {79F92A34-B82B-4367-B562-3A00C38556D8}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection +EndGlobal diff --git a/Directory.Build.props b/Directory.Build.props new file mode 100644 index 0000000..b05a28b --- /dev/null +++ b/Directory.Build.props @@ -0,0 +1,14 @@ + + + true + false + git + https://github.com/InfinityFlowApp/tools-nuget-branding + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + diff --git a/Directory.Packages.props b/Directory.Packages.props new file mode 100644 index 0000000..4199017 --- /dev/null +++ b/Directory.Packages.props @@ -0,0 +1,8 @@ + + + true + + + + + diff --git a/GitVersion.yml b/GitVersion.yml new file mode 100644 index 0000000..403b71c --- /dev/null +++ b/GitVersion.yml @@ -0,0 +1,4 @@ +branches: + master: + mode: ContinuousDeployment + tag: rc diff --git a/global.json b/global.json new file mode 100644 index 0000000..d07970a --- /dev/null +++ b/global.json @@ -0,0 +1,6 @@ +{ + "sdk": { + "version": "8.0.100", + "rollForward": "latestMajor" + } +} diff --git a/nuget.config b/nuget.config new file mode 100644 index 0000000..fbcef10 --- /dev/null +++ b/nuget.config @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/Branding/InfinityFlow.Tools.Branding.csproj b/src/Branding/InfinityFlow.Tools.Branding.csproj new file mode 100644 index 0000000..1767347 --- /dev/null +++ b/src/Branding/InfinityFlow.Tools.Branding.csproj @@ -0,0 +1,30 @@ + + + + true + Provides default branding properties and assets for organization's NuGet projects. + false + true + false + true + $(NoWarn);NU5128;CS2008 + enable + branding;defaults;icons;nuget;development + netstandard2.1 + + + + + + + + + + + + + + + + + diff --git a/src/Branding/InfinityFlow.Tools.Branding.props b/src/Branding/InfinityFlow.Tools.Branding.props new file mode 100644 index 0000000..2122bbc --- /dev/null +++ b/src/Branding/InfinityFlow.Tools.Branding.props @@ -0,0 +1,9 @@ + + + InfinityFlow + packageIcon.png + LICENSE + README.md + Copyright © InfinityFlow + + diff --git a/src/Branding/InfinityFlow.Tools.Branding.targets b/src/Branding/InfinityFlow.Tools.Branding.targets new file mode 100644 index 0000000..d99daff --- /dev/null +++ b/src/Branding/InfinityFlow.Tools.Branding.targets @@ -0,0 +1,7 @@ + + + + packageIcon.png + + + diff --git a/src/Branding/assets/app_original.svg b/src/Branding/assets/app_original.svg new file mode 100644 index 0000000..82b2a06 --- /dev/null +++ b/src/Branding/assets/app_original.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Branding/assets/packageIcon.png b/src/Branding/assets/packageIcon.png new file mode 100644 index 0000000..e3363b9 Binary files /dev/null and b/src/Branding/assets/packageIcon.png differ diff --git a/src/Branding/assets/packageIcon.svg b/src/Branding/assets/packageIcon.svg new file mode 100644 index 0000000..82b2a06 --- /dev/null +++ b/src/Branding/assets/packageIcon.svg @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + + + + + +