From 6ff9ca490d65e352853213c57888652fed81caa7 Mon Sep 17 00:00:00 2001 From: devlooped-bot Date: Wed, 9 Oct 2024 01:08:13 +0000 Subject: [PATCH] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20Bump=20files=20with=20dotn?= =?UTF-8?q?et-file=20sync=20#=20devlooped/oss?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Improve triage actions on issues https://github.com/devlooped/oss/commit/33000c0 - Add .sass-cache to ignores https://github.com/devlooped/oss/commit/d65f9c7 - Move .sass-cache down alongside other jekyll folders https://github.com/devlooped/oss/commit/551d4e0 - Ignore azure functions local settings https://github.com/devlooped/oss/commit/4bd7025 # devlooped/.github --- .gitattributes | 22 +---- .github/CODE_OF_CONDUCT.md | 6 -- .github/CONTRIBUTING.md | 35 -------- .github/SECURITY.md | 9 -- .github/SUPPORT.md | 9 -- .github/dependabot.yml | 8 +- .github/release.yml | 2 +- .github/workflows/build.yml | 44 ++++++---- .github/workflows/changelog.config | 2 +- .github/workflows/changelog.yml | 2 +- .github/workflows/dotnet-file.yml | 5 +- .github/workflows/includes.yml | 5 +- .github/workflows/publish.yml | 41 +++++++-- .github/workflows/sponsor.yml | 24 ------ .github/workflows/test/action.yml | 36 -------- .github/workflows/triage.yml | 103 +++++++++++++++++++++++ .gitignore | 6 +- .netconfig | 131 +++++++++++++++-------------- Directory.Build.rsp | 2 +- profile/readme.md | 96 +++++++++++++++------ readme.md | 32 ++++++- sponsorlink.jwt | 1 + sponsorlink.md | 2 + sponsorlinkr.md | 2 + src/Directory.Build.props | 25 ++++-- src/Directory.Build.targets | 32 ++++--- src/nuget.config | 32 ------- 27 files changed, 395 insertions(+), 319 deletions(-) delete mode 100644 .github/CODE_OF_CONDUCT.md delete mode 100644 .github/CONTRIBUTING.md delete mode 100644 .github/SECURITY.md delete mode 100644 .github/SUPPORT.md delete mode 100644 .github/workflows/sponsor.yml delete mode 100644 .github/workflows/test/action.yml create mode 100644 .github/workflows/triage.yml create mode 100644 sponsorlink.jwt create mode 100644 sponsorlink.md create mode 100644 sponsorlinkr.md delete mode 100644 src/nuget.config diff --git a/.gitattributes b/.gitattributes index 7c37579..4f89148 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,24 +1,8 @@ -# sln, csproj files (and friends) are always CRLF, even on linux -*.sln text eol=crlf -*.proj text eol=crlf -*.csproj text eol=crlf +# normalize by default +* text=auto encoding=UTF-8 +*.sh text eol=lf # These are windows specific files which we may as well ensure are # always crlf on checkout *.bat text eol=crlf *.cmd text eol=crlf - -# Opt in known filetypes to always normalize line endings on checkin -# and always use native endings on checkout -*.c text -*.config text -*.h text -*.cs text -*.md text -*.tt text -*.txt text - -# Some must always be checked out as lf so enforce that for those files -# If these are not lf then bash/cygwin on windows will not be able to -# excute the files -*.sh text eol=lf \ No newline at end of file diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md deleted file mode 100644 index 775f221..0000000 --- a/.github/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,6 +0,0 @@ -# Code of Conduct - -This project has adopted the code of conduct defined by the Contributor Covenant -to clarify expected behavior in our community. - -For more information, see the [.NET Foundation Code of Conduct](https://dotnetfoundation.org/code-of-conduct). diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md deleted file mode 100644 index f577cde..0000000 --- a/.github/CONTRIBUTING.md +++ /dev/null @@ -1,35 +0,0 @@ -# Contributing - -You can contribute to the project with issues and PRs. -Simply filing issues for problems you encounter is a great way to contribute. Contributing implementations is greatly appreciated. - -## Before you file a bug... -* Is this a question, or are you looking for help? Ask it in the project's **Discussions** tab instead, if available. - -* Did you search the issues list to see if someone already reported it? _When looking for duplicates, make sure to look through open **and** closed issues._ -* Did you create a simple repro for the problem? _We won't look at your bug until you provide a repro project or complete repro steps._ - -## Before you submit a PR... - -* Did you ensure there is a corresponding issue labelled as 🟒 help wanted? - If not, please open one to start the discussion. -* Does the code follow existing coding styles? (spaces, comments, no regions, etc.)? - We enforce the basic styles by running `dotnet format` on the repository root. - You can do the same before submitting a PR to speed up the process. -* Did you write unit tests? - Typically required if there are other unit tests for existing or related code. - -## Looking for something to work on? - -Look at the repo issues labelled as 🟒 help wanted and 🟣 good first issue to find -something to contribute! - -# Contributor License Agreement - -You must sign the [Contribution License Agreement (CLA)](https://cla-assistant.io/devlooped/) before your PR will be merged. -This is a one-time requirement for projects in the Devlooped organization. - You can read more about [Contribution License Agreements (CLA)](http://en.wikipedia.org/wiki/Contributor_License_Agreement) on Wikipedia. - - You don't have to do this up-front. You can simply clone, fork, and submit your pull-request as usual. - When your pull-request is created, it is classified by a CLA bot, which will let - you know if signing is pending. \ No newline at end of file diff --git a/.github/SECURITY.md b/.github/SECURITY.md deleted file mode 100644 index 01b219a..0000000 --- a/.github/SECURITY.md +++ /dev/null @@ -1,9 +0,0 @@ -# Security Policy - -## Reporting a Vulnerability - -Security issues and bugs should be reported privately by emailing security@devlooped.com. -You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your -original message and ping [@devlooped](https://twitter.com/devlooped) on Twitter. - -Please do not open issues for anything you think might have a security implication. \ No newline at end of file diff --git a/.github/SUPPORT.md b/.github/SUPPORT.md deleted file mode 100644 index cfde22d..0000000 --- a/.github/SUPPORT.md +++ /dev/null @@ -1,9 +0,0 @@ -# Support - -Support is typically available thorugh GitHub Discussions and Issues. - -**Found a bug? File an issue.** If you found something that isn't working as expected and you can reproduce it, go to the repo Issues tab and file an issue. - -**Want a new feature? Start a discussion.** It's always good to start a discussion (Discussion tab in the project, Ideas category) to explain the problem you're trying to solve before jumping in with the pull request. We may already have a solution in place or have an idea on ways to solve that issue. After the details are nailed down, we will migrate the discussion to a proper Issue (with the `enhancement`) label. At that point, we'd love to see your PRs :). - -Consider [sponsoring](https://github.com/sponsors/devlooped) the project to get priority support and many other perks! diff --git a/.github/dependabot.yml b/.github/dependabot.yml index ec364b6..c95eb73 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -12,9 +12,15 @@ updates: patterns: - "Azure*" - "Microsoft.Azure*" + Identity: + patterns: + - "System.IdentityModel*" + - "Microsoft.IdentityModel*" System: patterns: - "System*" + exclude-patterns: + - "System.IdentityModel*" Extensions: patterns: - "Microsoft.Extensions*" @@ -23,7 +29,7 @@ updates: - "Microsoft.AspNetCore*" Tests: patterns: - - "Microsoft.NET.Tests*" + - "Microsoft.NET.Test*" - "xunit*" - "coverlet*" ThisAssembly: diff --git a/.github/release.yml b/.github/release.yml index 9a018cd..c178589 100644 --- a/.github/release.yml +++ b/.github/release.yml @@ -8,7 +8,6 @@ changelog: - invalid - wontfix - need info - - docs - techdebt authors: - devlooped-bot @@ -24,6 +23,7 @@ changelog: - title: πŸ“ Documentation updates labels: - docs + - documentation - title: πŸ”¨ Other labels: - '*' diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0480456..a109549 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,21 +4,30 @@ name: build on: workflow_dispatch: + inputs: + configuration: + type: choice + description: Configuration + options: + - Release + - Debug push: branches: [ main, dev, 'dev/*', 'feature/*', 'rel/*' ] paths-ignore: - changelog.md - - code-of-conduct.md - - security.md - - support.md - readme.md pull_request: types: [opened, synchronize, reopened] env: DOTNET_NOLOGO: true + PackOnBuild: true + GeneratePackageOnBuild: true VersionPrefix: 42.42.${{ github.run_number }} VersionLabel: ${{ github.ref }} + GH_TOKEN: ${{ secrets.GH_TOKEN }} + MSBUILDTERMINALLOGGER: auto + Configuration: ${{ github.event.inputs.configuration || 'Release' }} defaults: run: @@ -31,7 +40,7 @@ jobs: matrix: ${{ steps.lookup.outputs.matrix }} steps: - name: 🀘 checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: πŸ”Ž lookup id: lookup @@ -50,40 +59,39 @@ jobs: os: ${{ fromJSON(needs.os-matrix.outputs.matrix) }} steps: - name: 🀘 checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: submodules: recursive fetch-depth: 0 - name: πŸ™ build - run: dotnet build -m:1 - - - name: βš™ GNU grep - if: matrix.os == 'macOS-latest' - run: | - brew install grep - echo 'export PATH="/usr/local/opt/grep/libexec/gnubin:$PATH"' >> .bash_profile + run: dotnet build -m:1 -bl:build.binlog - name: πŸ§ͺ test - uses: ./.github/workflows/test + run: | + dotnet tool update -g dotnet-retest + dotnet retest -- --no-build - - name: πŸ“¦ pack - run: dotnet pack -m:1 + - name: πŸ› logs + uses: actions/upload-artifact@v3 + if: runner.debug && always() + with: + name: logs + path: '*.binlog' - # Only push CI package to sleet feed if building on ubuntu (fastest) - name: πŸš€ sleet env: SLEET_CONNECTION: ${{ secrets.SLEET_CONNECTION }} if: env.SLEET_CONNECTION != '' run: | - dotnet tool install -g --version 4.0.18 sleet + dotnet tool update sleet -g --allow-downgrade --version $(curl -s --compressed ${{ vars.SLEET_FEED_URL }} | jq '.["sleet:version"]' -r) sleet push bin --config none -f --verbose -p "SLEET_FEED_CONTAINER=nuget" -p "SLEET_FEED_CONNECTIONSTRING=${{ secrets.SLEET_CONNECTION }}" -p "SLEET_FEED_TYPE=azure" || echo "No packages found" dotnet-format: runs-on: ubuntu-latest steps: - name: 🀘 checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: submodules: recursive fetch-depth: 0 diff --git a/.github/workflows/changelog.config b/.github/workflows/changelog.config index cd34ee7..e47bccd 100644 --- a/.github/workflows/changelog.config +++ b/.github/workflows/changelog.config @@ -1,7 +1,7 @@ usernames-as-github-logins=true issues_wo_labels=true pr_wo_labels=true -exclude-labels=bydesign,dependencies,duplicate,question,invalid,wontfix,need info,docs +exclude-labels=bydesign,dependencies,duplicate,discussion,question,invalid,wontfix,need info,docs enhancement-label=:sparkles: Implemented enhancements: bugs-label=:bug: Fixed bugs: issues-label=:hammer: Other: diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml index b120b73..ca50e5a 100644 --- a/.github/workflows/changelog.yml +++ b/.github/workflows/changelog.yml @@ -17,7 +17,7 @@ jobs: github_token: ${{ secrets.GITHUB_TOKEN }} - name: 🀘 checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: fetch-depth: 0 ref: main diff --git a/.github/workflows/dotnet-file.yml b/.github/workflows/dotnet-file.yml index 818aa2c..95f6228 100644 --- a/.github/workflows/dotnet-file.yml +++ b/.github/workflows/dotnet-file.yml @@ -24,7 +24,7 @@ jobs: github_token: ${{ secrets.GITHUB_TOKEN }} - name: 🀘 checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: fetch-depth: 0 ref: main @@ -32,6 +32,7 @@ jobs: - name: βŒ› rate shell: pwsh + if: github.event_name != 'workflow_dispatch' run: | # add random sleep since we run on fixed schedule sleep (get-random -max 60) @@ -70,7 +71,7 @@ jobs: validate: false - name: ✍ pull request - uses: peter-evans/create-pull-request@v4 + uses: peter-evans/create-pull-request@v6 with: base: main branch: dotnet-file-sync diff --git a/.github/workflows/includes.yml b/.github/workflows/includes.yml index bb1a90b..15a781e 100644 --- a/.github/workflows/includes.yml +++ b/.github/workflows/includes.yml @@ -21,7 +21,7 @@ jobs: github_token: ${{ secrets.GITHUB_TOKEN }} - name: 🀘 checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: token: ${{ env.GH_TOKEN }} @@ -29,8 +29,9 @@ jobs: uses: devlooped/actions-includes@v1 - name: ✍ pull request - uses: peter-evans/create-pull-request@v4 + uses: peter-evans/create-pull-request@v6 with: + add-paths: '**.md' base: main branch: markdown-includes delete-branch: true diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index bd83ada..ae4240f 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -5,30 +5,53 @@ name: publish on: release: - types: [released] + types: [prereleased, released] env: DOTNET_NOLOGO: true Configuration: Release - + PackOnBuild: true + GeneratePackageOnBuild: true + VersionLabel: ${{ github.ref }} + GH_TOKEN: ${{ secrets.GH_TOKEN }} + MSBUILDTERMINALLOGGER: auto + jobs: publish: - runs-on: ubuntu-latest + runs-on: ${{ vars.PUBLISH_AGENT || 'ubuntu-latest' }} steps: - name: 🀘 checkout - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: submodules: recursive fetch-depth: 0 - name: πŸ™ build - run: dotnet build -m:1 -p:version=${GITHUB_REF#refs/*/v} + run: dotnet build -m:1 -bl:build.binlog - name: πŸ§ͺ test - uses: ./.github/workflows/test + run: | + dotnet tool update -g dotnet-retest + dotnet retest -- --no-build - - name: πŸ“¦ pack - run: dotnet pack -m:1 -p:version=${GITHUB_REF#refs/*/v} + - name: πŸ› logs + uses: actions/upload-artifact@v3 + if: runner.debug && always() + with: + name: logs + path: '*.binlog' - name: πŸš€ nuget - run: dotnet nuget push ./bin/**/*.nupkg -s https://api.nuget.org/v3/index.json -k ${{secrets.NUGET_API_KEY}} --skip-duplicate + env: + NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }} + if: ${{ env.NUGET_API_KEY != '' && github.event.action != 'prereleased' }} + working-directory: bin + run: dotnet nuget push *.nupkg -s https://api.nuget.org/v3/index.json -k ${{secrets.NUGET_API_KEY}} --skip-duplicate + + - name: πŸš€ sleet + env: + SLEET_CONNECTION: ${{ secrets.SLEET_CONNECTION }} + if: env.SLEET_CONNECTION != '' + run: | + dotnet tool update sleet -g --allow-downgrade --version $(curl -s --compressed ${{ vars.SLEET_FEED_URL }} | jq '.["sleet:version"]' -r) + sleet push bin --config none -f --verbose -p "SLEET_FEED_CONTAINER=nuget" -p "SLEET_FEED_CONNECTIONSTRING=${{ secrets.SLEET_CONNECTION }}" -p "SLEET_FEED_TYPE=azure" || echo "No packages found" diff --git a/.github/workflows/sponsor.yml b/.github/workflows/sponsor.yml deleted file mode 100644 index 9e47191..0000000 --- a/.github/workflows/sponsor.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: sponsor πŸ’œ -on: - issues: - types: [opened, edited, reopened] - pull_request: - types: [opened, edited, synchronize, reopened] - -jobs: - sponsor: - runs-on: ubuntu-latest - continue-on-error: true - env: - token: ${{ secrets.GH_TOKEN }} - if: ${{ !endsWith(github.event.sender.login, '[bot]') && !endsWith(github.event.sender.login, 'bot') }} - steps: - - name: 🀘 checkout - if: env.token != '' - uses: actions/checkout@v2 - - - name: πŸ’œ sponsor - if: env.token != '' - uses: devlooped/actions-sponsor@main - with: - token: ${{ env.token }} diff --git a/.github/workflows/test/action.yml b/.github/workflows/test/action.yml deleted file mode 100644 index 4a7dbae..0000000 --- a/.github/workflows/test/action.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: test -description: runs dotnet tests with retry -runs: - using: "composite" - steps: - - name: πŸ§ͺ test - shell: bash --noprofile --norc {0} - env: - LC_ALL: en_US.utf8 - run: | - [ -f .bash_profile ] && source .bash_profile - counter=0 - exitcode=0 - reset="\e[0m" - warn="\e[0;33m" - while [ $counter -lt 6 ] - do - # run test and forward output also to a file in addition to stdout (tee command) - if [ $filter ] - then - echo -e "${warn}Retry $counter for $filter ${reset}" - dotnet test --no-build -m:1 --blame-hang --blame-hang-timeout 5m --filter=$filter | tee ./output.log - else - dotnet test --no-build -m:1 --blame-hang --blame-hang-timeout 5m | tee ./output.log - fi - # capture dotnet test exit status, different from tee - exitcode=${PIPESTATUS[0]} - if [ $exitcode == 0 ] - then - exit 0 - fi - # cat output, get failed test names, remove trailing whitespace, sort+dedupe, join as FQN~TEST with |, remove trailing |. - filter=$(cat ./output.log | grep -o -P '(?<=\sFailed\s)[\w\._]*' | sed 's/ *$//g' | sort -u | awk 'BEGIN { ORS="|" } { print("FullyQualifiedName~" $0) }' | grep -o -P '.*(?=\|$)') - ((counter++)) - done - exit $exitcode diff --git a/.github/workflows/triage.yml b/.github/workflows/triage.yml new file mode 100644 index 0000000..56ff299 --- /dev/null +++ b/.github/workflows/triage.yml @@ -0,0 +1,103 @@ +name: 'triage' +on: + schedule: + - cron: '42 0 * * *' + + workflow_dispatch: + # Manual triggering through the GitHub UI, API, or CLI + inputs: + daysBeforeClose: + description: "Days before closing stale or need info issues" + required: true + default: "30" + daysBeforeStale: + description: "Days before labeling stale" + required: true + default: "180" + daysSinceClose: + description: "Days since close to lock" + required: true + default: "30" + daysSinceUpdate: + description: "Days since update to lock" + required: true + default: "30" + +permissions: + actions: write # For managing the operation state cache + issues: write + contents: read + +jobs: + stale: + # Do not run on forks + if: github.repository_owner == 'devlooped' + runs-on: ubuntu-latest + steps: + - name: βŒ› rate + shell: pwsh + if: github.event_name != 'workflow_dispatch' + env: + GH_TOKEN: ${{ secrets.DEVLOOPED_TOKEN }} + run: | + # add random sleep since we run on fixed schedule + $wait = get-random -max 180 + echo "Waiting random $wait seconds to start" + sleep $wait + # get currently authenticated user rate limit info + $rate = gh api rate_limit | convertfrom-json | select -expandproperty rate + # if we don't have at least 100 requests left, wait until reset + if ($rate.remaining -lt 100) { + $wait = ($rate.reset - (Get-Date (Get-Date).ToUniversalTime() -UFormat %s)) + echo "Rate limit remaining is $($rate.remaining), waiting for $($wait / 1000) seconds to reset" + sleep $wait + $rate = gh api rate_limit | convertfrom-json | select -expandproperty rate + echo "Rate limit has reset to $($rate.remaining) requests" + } + + - name: ✏️ stale labeler + # pending merge: https://github.com/actions/stale/pull/1176 + uses: kzu/stale@c8450312ba97b204bf37545cb249742144d6ca69 + with: + ascending: true # Process the oldest issues first + stale-issue-label: 'stale' + stale-issue-message: | + Due to lack of recent activity, this issue has been labeled as 'stale'. + It will be closed if no further activity occurs within ${{ fromJson(inputs.daysBeforeClose || 30 ) }} more days. + Any new comment will remove the label. + close-issue-message: | + This issue will now be closed since it has been labeled 'stale' without activity for ${{ fromJson(inputs.daysBeforeClose || 30 ) }} days. + days-before-stale: ${{ fromJson(inputs.daysBeforeStale || 180) }} + days-before-close: ${{ fromJson(inputs.daysBeforeClose || 30 ) }} + days-before-pr-close: -1 # Do not close PRs labeled as 'stale' + exempt-all-milestones: true + exempt-all-assignees: true + exempt-issue-labels: priority,sponsor,backed + exempt-authors: kzu + + - name: 🀘 checkout actions + uses: actions/checkout@v4 + with: + repository: 'microsoft/vscode-github-triage-actions' + ref: v42 + + - name: βš™ install actions + run: npm install --production + + - name: πŸ”’ issues locker + uses: ./locker + with: + token: ${{ secrets.DEVLOOPED_TOKEN }} + ignoredLabel: priority + daysSinceClose: ${{ fromJson(inputs.daysSinceClose || 30) }} + daysSinceUpdate: ${{ fromJson(inputs.daysSinceUpdate || 30) }} + + - name: πŸ”’ need info closer + uses: ./needs-more-info-closer + with: + token: ${{ secrets.DEVLOOPED_TOKEN }} + label: 'need info' + closeDays: ${{ fromJson(inputs.daysBeforeClose || 30) }} + closeComment: "This issue has been closed automatically because it needs more information and has not had recent activity.\n\nHappy Coding!" + pingDays: 80 + pingComment: "Hey @${assignee}, this issue might need further attention.\n\n@${author}, you can help us out by closing this issue if the problem no longer exists, or adding more information." \ No newline at end of file diff --git a/.gitignore b/.gitignore index 0c18de7..6639458 100644 --- a/.gitignore +++ b/.gitignore @@ -1,12 +1,15 @@ bin -app obj artifacts pack TestResults +results +BenchmarkDotNet.Artifacts +/app .vs .vscode .idea +local.settings.json *.suo *.sdf @@ -31,5 +34,6 @@ node_modules _site .jekyll-metadata .jekyll-cache +.sass-cache Gemfile.lock package-lock.json diff --git a/.netconfig b/.netconfig index 8cfb09b..f8a3d64 100644 --- a/.netconfig +++ b/.netconfig @@ -17,9 +17,9 @@ sha = c779d3d4e468358106dea03e93ba2cd35bb01ecb [file ".gitattributes"] url = https://github.com/devlooped/oss/blob/main/.gitattributes - etag = 7acb32f5fa6d4ccd9c824605a7c2b8538497f0068c165567807d393dcf4d6bb7 + etag = 338ba6d92c8d1774363396739c2be4257bfc58026f4b0fe92cb0ae4460e1eff7 weak - sha = 0683ee777d7d878d4bf013d7deea352685135a05 + sha = 5f92a68e302bae675b394ef343114139c075993e [file ".github/FUNDING.yml"] url = https://github.com/devlooped/.github/blob/main/.github/FUNDING.yml etag = a944c728facd033bbdfb4ff8d0ef10d0b3a457c277dc499458df0ffc7e6409da @@ -27,24 +27,24 @@ sha = 39f4c591716ff50dd035d2fade35e5822489ab7f [file ".github/dependabot.yml"] url = https://github.com/devlooped/oss/blob/main/.github/dependabot.yml - etag = fc84e2bb7a348609b75bb20145333306e2030083c6929edcc4f675907b8c52ad + etag = c147ea2f3431ca0338c315c4a45b56ee233c4d30f8d6ab698d0e1980a257fd6a weak - sha = cba10bbf7bb08d841d2ddc990b67bc3f2c58fba0 + sha = 49661dbf0720cde93eb5569be7523b5912351560 [file ".github/workflows/build.yml"] url = https://github.com/devlooped/oss/blob/main/.github/workflows/build.yml weak - etag = c616df0877fba60002ccfc0397e9f731ddb22acbbb195a0598fedd4cac5f3135 - sha = 13d67e2cf3f786c8189364fd29332aaa7dc575dc + etag = f358acb1e45596bf0aad49996017da44939de30b805289c4ad205a7ccb6f99cb + sha = 5e17ad62ebb5241555a7a4d29e3ab15e5ba120d2 [file ".gitignore"] url = https://github.com/devlooped/oss/blob/main/.gitignore - etag = 96e0860052044780f1fc9e3bdfbee09d82d5dddb8b1217d67460fc7330a64dd8 + etag = a9c37ae312afac14b78436a7d018af4483d88736b5f780576f2c5a0b3f14998c weak - sha = b87a8a795a4c2b6830602225c066c11108552a99 + sha = 02811fa23b0a102b9b33048335d41e515bf75737 [file "Directory.Build.rsp"] url = https://github.com/devlooped/oss/blob/main/Directory.Build.rsp - etag = 6a6c6e1d3895df953abf14c82b0899e3eea75cdcd679f6212dcfea15183d73d6 + etag = 0ccae83fc51f400bfd7058170bfec7aba11455e24a46a0d7e6a358da6486e255 weak - sha = ae25fae9d7daf0cb47d537ba870914aa3052f0c9 + sha = 0f7f7f7e8a29de9b535676f75fe7c67e629a5e8c [file "_config.yml"] url = https://github.com/devlooped/oss/blob/main/_config.yml etag = 9139148f845adf503fd3c3c140eb64421fc476a1f9c027fc50825c0efb05f557 @@ -57,14 +57,14 @@ sha = 0683ee777d7d878d4bf013d7deea352685135a05 [file "src/Directory.Build.props"] url = https://github.com/devlooped/oss/blob/main/src/Directory.Build.props - etag = 69d4b16c14d5047b3ed812dbf556b0b8d77deb86f73af04b9bd3640220056fa8 + etag = c8b56f3860cc7ccb8773b7bd6189f5c7a6e3a2c27e9104c1ee201fbdc5af9873 weak - sha = 6ae80a175a8f926ac5d9ffb0f6afd55d85cc9320 + sha = b76de49afb376aa48eb172963ed70663b59b31d3 [file "src/Directory.Build.targets"] url = https://github.com/devlooped/oss/blob/main/src/Directory.Build.targets - etag = 428f80b0786ff17b836c7a5b0640948724855d17933e958642b22849ac00dadb + etag = 19087699f05396205e6b050d999a43b175bd242f6e8fac86f6df936310178b03 weak - sha = 1514d15399a7d545ad92a0e9d57dc8295fdd6af8 + sha = a8b208093599263b7f2d1fe3854634c588ea5199 [file "src/kzu.snk"] url = https://github.com/devlooped/oss/blob/main/src/kzu.snk etag = b8d789b5b6bea017cdcc8badcea888ad78de3e34298efca922054e9fb0e7b6b9 @@ -77,14 +77,14 @@ sha = 9db26e2710b084d219d6355339d822f159bf5780 [file ".github/workflows/changelog.yml"] url = https://github.com/devlooped/oss/blob/main/.github/workflows/changelog.yml - etag = 54c0b571648b1055beb3ddac180b34e93a9869b9f0277de306901b2c1dbe0b2c + etag = ad1efa56d6024ee1add2bcda81a7e4e38d0e9069473c6ff70374d5ce06af1f5a weak - sha = a4b66eb5f4dfb9704502f19f59ba33cb4855188c + sha = 5fb172362c767bef7c36478f1a6bdc264723f8f9 [file ".github/workflows/publish.yml"] url = https://github.com/devlooped/oss/blob/main/.github/workflows/publish.yml - etag = 58601b5a71c805647ab26e84053acdfb8d174eaa93330487af8a5503753c5707 + etag = 2cc96046d8f28e7cbcde89ed56d3d89e1a70fb0de7846ee1827bee66b7dfbcf1 weak - sha = d3022567c9ef2bc9461511e53b8abe065afdf03b + sha = 5e17ad62ebb5241555a7a4d29e3ab15e5ba120d2 [file ".github/workflows/release-artifacts.yml"] url = https://github.com/devlooped/oss/blob/main/.github/workflows/release-artifacts.yml skip @@ -96,71 +96,76 @@ skip [file ".github/workflows/dotnet-file.yml"] url = https://github.com/devlooped/oss/blob/main/.github/workflows/dotnet-file.yml - sha = f08c3f28e46e28eb31e70846d65e57aa9553ce56 - etag = 567444486383d032c1c5fbc538f07e860f92b1d08c66ac6ffb1db64ca539251c + sha = 7afe350f7e80a230e922db026d4e1198ba15cae1 + etag = 65e9794df6caff779eb989c8f71ddf4d4109b24a75af79e4f8d0fe6ba7bd9702 weak [file ".github/workflows/includes.yml"] url = https://github.com/devlooped/oss/blob/main/.github/workflows/includes.yml - sha = ac753b791d03997eb655efb26ae141b51addd1c0 - etag = fcd94a08ac9ebc0e8351deac4e7f085cf8ef67816cc50006e068f44166096eb8 - weak -[file ".github/workflows/test/action.yml"] - url = https://github.com/devlooped/oss/blob/main/.github/workflows/test/action.yml - sha = 9a1b07589b9bde93bc12528e9325712a32dec418 - etag = b54216ac431a83ce5477828d391f02046527e7f6fffd21da1d03324d352c3efb - weak -[file "src/nuget.config"] - url = https://github.com/devlooped/oss/blob/main/src/nuget.config - sha = b2fa09bd9db6de89e37a8ba6705b5659e435dafd - etag = eb2d09e546aa1e11c0b464d9ed6ab2d3c028a1d86c3ac40a318053625fb72819 + sha = d152e7437fd0d6f6d9363d23cb3b78c07335ea49 + etag = ec40db34f379d0c6d83b2ec15624f330318a172cc4f85b5417c63e86eaf601df weak [file ".github/release.yml"] url = https://github.com/devlooped/oss/blob/main/.github/release.yml - sha = 1afd173fe8f81b510c597737b0d271218e81fa73 - etag = 482dc2c892fc7ce0cb3a01eb5d9401bee50ddfb067d8cb85873555ce63cf5438 + sha = 0c23e24704625cf75b2cb1fdc566cef7e20af313 + etag = 310df162242c95ed19ed12e3c96a65f77e558b46dced676ad5255eb12caafe75 weak [file ".github/workflows/changelog.config"] url = https://github.com/devlooped/oss/blob/main/.github/workflows/changelog.config - sha = 055a8b7c94b74ae139cce919d60b83976d2a9942 - etag = ddb17acb5872e9e69a76f9dec0ca590f25382caa2ccf750df058dcabb674db2b + sha = 08d83cb510732f861416760d37702f9f55bd7f9e + etag = 556a28914eeeae78ca924b1105726cdaa211af365671831887aec81f5f4301b4 weak [file ".github/workflows/combine-prs.yml"] url = https://github.com/devlooped/oss/blob/main/.github/workflows/combine-prs.yml sha = c1610886eba42cb250e3894aed40c0a258cd383d etag = 598ee294649a44d4c5d5934416c01183597d08aa7db7938453fd2bbf52a4e64d weak -[file ".github/CODE_OF_CONDUCT.md"] - url = https://github.com/devlooped/.github/blob/main/.github/CODE_OF_CONDUCT.md - sha = c97cdeb04769df3f397d9e70b345d4549628c388 - etag = 4857c01bb695f09bf6912d778951c3065d9dd565e5de3d0827f40432d0e4c613 - weak -[file ".github/CONTRIBUTING.md"] - url = https://github.com/devlooped/.github/blob/main/.github/CONTRIBUTING.md - sha = 1dc5908c7711c17c1fe06abd191f2c09f37ac56a - etag = b2bc4ee0e910ea60c3daa4e7d391e6260b5644d3e3c2a19145525c8db3f454fd +[file ".github/ISSUE_TEMPLATE/bug.md"] + url = https://github.com/devlooped/.github/blob/main/.github/ISSUE_TEMPLATE/bug.md + sha = 80e81d21c020841dfc8678f218d42ddaffad78db + etag = 6ab86c474f24c915681abf4dca6c5becf3a211ab09d11e290385890dadd6f97f weak -[file ".github/SECURITY.md"] - url = https://github.com/devlooped/.github/blob/main/.github/SECURITY.md - sha = c97cdeb04769df3f397d9e70b345d4549628c388 +[file "profile/readme.md"] + url = https://github.com/devlooped/.github/blob/main/profile/readme.md + sha = 415dd4dbfc14a61c1e4fde25a589a1933daca53e + etag = e5faa082ee359f304d7de055b26ad25da36bdd8a9b8a366a301fa4a6e6b29ee6 + weak +[file ".github/workflows/triage.yml"] + url = https://github.com/devlooped/oss/blob/main/.github/workflows/triage.yml + sha = 33000c0c4ab4eb4e0e142fa54515b811a189d55c + etag = 013a47739e348f06891f37c45164478cca149854e6cd5c5158e6f073f852b61a + weak +[file ".github/code_of_conduct.md"] + url = https://github.com/devlooped/.github/blob/main/.github/code_of_conduct.md + sha = 4d38bd1a1662e69a131dfe2e860a0a832ea89db4 + etag = fcc35d9f63ba728070d34229be6f8ca403f4cde03e1da183f95e530bf8c632a0 + weak +[file ".github/contributing.md"] + url = https://github.com/devlooped/.github/blob/main/.github/contributing.md + sha = 80e81d21c020841dfc8678f218d42ddaffad78db + etag = b966999d5ed1927c5139d04bbd057546d0f3c2e8226c10a71c4cab78b92c3796 + weak +[file ".github/security.md"] + url = https://github.com/devlooped/.github/blob/main/.github/security.md + sha = 80e81d21c020841dfc8678f218d42ddaffad78db etag = fc8101fd914820db3e6b42d608dc46aefbc60c830ac721ed3917daead3727dbd weak -[file ".github/SUPPORT.md"] - url = https://github.com/devlooped/.github/blob/main/.github/SUPPORT.md - sha = c97cdeb04769df3f397d9e70b345d4549628c388 +[file ".github/support.md"] + url = https://github.com/devlooped/.github/blob/main/.github/support.md + sha = 80e81d21c020841dfc8678f218d42ddaffad78db etag = 2d47e2fc4fdfa3515203d452674566e3df507461f9938f451a06d79deb687d24 weak -[file ".github/workflows/sponsor.yml"] - url = https://github.com/devlooped/oss/blob/main/.github/workflows/sponsor.yml - sha = 8990ebb36199046e0b8098bad9e46dcef739c56e - etag = e1dc114d2e8b57d50649989d32dbf0c9080ec77da3738a4cc79e9256d6ca5d3e +[file "sponsorlink.jwt"] + url = https://github.com/devlooped/.github/blob/main/sponsorlink.jwt + sha = 51e44c3926b1816c04d34aef0ae541138350ca60 + etag = b69d75dd622e327b9cf433c8d5399da24f96607bb87758514b9cb0142d6f67ea weak -[file ".github/ISSUE_TEMPLATE/bug.md"] - url = https://github.com/devlooped/.github/blob/main/.github/ISSUE_TEMPLATE/bug.md - sha = 50faf1212e849f3ebd675be93a6c2d9917faa6d0 - etag = 6d3c88228649aa36431b5a8017baa46cd5d1584542fbc87e0d907b17dd882899 +[file "sponsorlink.md"] + url = https://github.com/devlooped/.github/blob/main/sponsorlink.md + sha = d4d500f229a7280920645ecfa25b11929c02bc04 + etag = 22663daef194a796937174446a3390ebdc169a3eba9d46d5e864b7ce46a23771 weak -[file "profile/readme.md"] - url = https://github.com/devlooped/.github/blob/main/profile/readme.md - sha = 7676dd2cb4bc284b699dfd7e0888c4c8fe28de9a - etag = d055b4cb45f2c3a5c553869d317cdb90de91c4bccb2b967ce4a59e50ba2e8335 +[file "sponsorlinkr.md"] + url = https://github.com/devlooped/.github/blob/main/sponsorlinkr.md + sha = a501ccfa743a3d152f6ab06377f71ab22ef4ed9a + etag = efe72da5946abeddf63d0a3063da6ff9c2bc5d13a292ec24ddc2c2e40e0d283f weak diff --git a/Directory.Build.rsp b/Directory.Build.rsp index 7c0dbc1..509cc66 100644 --- a/Directory.Build.rsp +++ b/Directory.Build.rsp @@ -2,4 +2,4 @@ -nr:false -m:1 -v:m --clp:Summary;ForceNoAlign \ No newline at end of file +-clp:Summary;ForceNoAlign diff --git a/profile/readme.md b/profile/readme.md index 9b2881d..6ec4965 100644 --- a/profile/readme.md +++ b/profile/readme.md @@ -1,17 +1,22 @@ -

Hi πŸ‘‹, I'm kzu

-

sounds like 'kah-zu' rather than 'kzoo' :)

-

A hardcode .NET/C# developer from Argentina

+Hello there! This is [@kzu](https://github.com/kzu)'s (sounds like 'kah-zu' rather than 'kzoo' πŸ˜‰) organization account +where I publish projects I think might be useful to others and not just personal experiments. -[![X](https://img.shields.io/badge/X-@kzu-blue?logo=twitter&logoColor=1D9BF0&labelColor=black)](https://x.com/kzu) -[![Discord](https://img.shields.io/badge/discord-danielkzu-7289DA.svg?logo=discord&logoColor=white)](https://discord.gg/8PtpGdu) -[![LinkedIn](https://img.shields.io/badge/LinkedIn-danielkzu-0A66C2.svg?logo=linkedin&logoColor=0A66C2&labelColor=silver)]([https://discord.gg/8PtpGdu](https://linkedin.com/in/danielcazzulino)) +This is also the organization account you can actually [sponsor](https://github.com/sponsors/devlooped) +to support my ongoing opensource work. -This is my sponsor account so you can contribute to my ongoing opensource work, no minimum amount required! +## Stats -[![Sponsor me πŸ’œ](https://raw.githubusercontent.com/devlooped/sponsors/main/sponsor.png#gh-light-mode-only "Sponsor me πŸ’œ")](https://github.com/sponsors/devlooped#gh-light-mode-only) -[![Sponsor me πŸ’œ](https://raw.githubusercontent.com/devlooped/sponsors/main/sponsor-dark.png#gh-dark-mode-only "Sponsor me πŸ’œ")](https://github.com/sponsors/devlooped#gh-dark-mode-only) +[![NuGet Packages](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgithub.com%2Fdevlooped%2Fnuget%2Fraw%2Frefs%2Fheads%2Fmain%2FDevlooped.json&query=%24.summary.packages&style=social&logo=nuget&label=packages)](https://www.nuget.org/profiles/devlooped) +[![Daily Downloads](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fgithub.com%2Fdevlooped%2Fnuget%2Fraw%2Frefs%2Fheads%2Fmain%2FDevlooped.json&query=%24.summary.downloads&style=social&logo=nuget&label=daily%20downloads +)](https://www.nuget.org/profiles/devlooped) +[![GitHub Sponsors](https://img.shields.io/github/sponsors/devlooped?style=social&logo=githubsponsors)](https://github.com/sponsors/devlooped) -Some fancy stats about my favorite hobbie (coding on GitHub, of course!): +[![GitHub followers](https://img.shields.io/github/followers/kzu?logo=GitHub&label=@kzu%20followers)](https://github.com/kzu) +[![GitHub stars](https://img.shields.io/github/stars/kzu?logo=GitHub&label=@kzu%20stars&affiliations=OWNER,COLLABORATOR&color=FFC83D)](https://github.com/kzu) +[![GitHub followers](https://img.shields.io/github/followers/devlooped?logo=GitHub&label=@devlooped%20followers)](https://github.com/devlooped) +[![GitHub Org's stars](https://img.shields.io/github/stars/devlooped?logo=GitHub&label=@devlooped%20stars)](https://github.com/devlooped) + +Some fancy stats about my favorite hobby (coding on GitHub, of course!):

@@ -37,23 +42,58 @@ Some fancy stats about my favorite hobbie (coding on GitHub, of course!):

-

- - - - - -

-

+ -And since I'm a total fan of [Shields.io](https://shields.io/) badges, some additional GitHub stats in badge format: +## SponsorLink -![GitHub Sponsors](https://img.shields.io/github/sponsors/devlooped?color=C65197&label=@devlooped%20sponsors) -![GitHub followers](https://img.shields.io/github/followers/kzu?logo=GitHub&label=@kzu%20followers) -![GitHub stars](https://img.shields.io/github/stars/kzu?logo=GitHub&label=@kzu%20stars&affiliations=OWNER,COLLABORATOR&color=FFC83D) -[![GitHub followers](https://img.shields.io/github/followers/devlooped?logo=GitHub&label=@devlooped%20followers)](https://github.com/devlooped) -[![GitHub Org's stars](https://img.shields.io/github/stars/devlooped?logo=GitHub&label=@devlooped%20stars)](https://github.com/devlooped) +I created [SponsorLink](https://www.devlooped.com/SponsorLink/) as a mechanism to remind users that they can +sponsor my projects if they find them useful. It also allows attribution on the dev machine of a sponsorship +to potentially unlock additional functionality (or just remove the reminder and thank instead!). SponsorLink +never issues any messages outside of IDE usage, so it will never disrupt your CI/CD workflows or CLI builds. + +If you arrived here from an IDE and are interested in sponsoring, the (one-time) steps are: + +1. Select your [sponsor](https://github.com/sponsors/devlooped) tier πŸ™ +1. Install the [sponsor dotnet global tool](https://nuget.org/packages/dotnet-sponsor) by running + ```shell + dotnet tool install -g dotnet-sponsor + ``` +4. Sync your sponsorship status by running + ```shell + sponsor sync devlooped + ``` + +Feel free to dive deeper into the [technical details](https://www.devlooped.com/SponsorLink/github.html) of how +this works. You can also implement SponsorLink yourself with minimal effort for your own projects. + +### Implicit and Indirect Sponsorships + +If you have ever sent a PR that was merged into any repository owned by [@devlooped](https://github.com/devlooped), +you are considered an implicit sponsor already! Contributing your time and code is the most awesome way to support a project 🫢. + +If you belong to an organization that sponsors [@devlooped](https://github.com/sponsors/devlooped), then you are +an indirect sponsor! This allows organizations to support projects their employees love and streamline invoicing. + +Finally, if you are an open-source author or contributor yourself, chances are you are elegible for an implicit +sponsorship I'll grant automatically! If your account shows up in the [OSS Authors](https://www.devlooped.com/SponsorLink/github/oss/), +you can just sync your implicit sponsorship and continue enjoying my projects with no additional sponsorship needed. +Contributing your valuable time to other projects is great too. + +
+ +### AutoSync + +Sponsorships are renewed monthly (even if paid anually), so your dev machine manifest needs monthly renewal too. +You can simplify this process by enabling [autosync](https://www.devlooped.com/SponsorLink/github.html#auto-sync) +so that the IDE tooling can automatically do this for you by checking at most once a day for expiration and running +the same command you'd have to run manually: `sponsor sync devlooped`. + +### Stats + +Active SponsorLink sync usage by sponsorship kind: + +![User](https://img.shields.io/endpoint?color=ea4aaa&url=https%3A%2F%2Fsponsorlink.devlooped.com%2Fbadge%3Fuser) +![Organization](https://img.shields.io/endpoint?color=yellow&url=https%3A%2F%2Fsponsorlink.devlooped.com%2Fbadge%3Forg) +![Team](https://img.shields.io/endpoint?color=8A2BE2&url=https%3A%2F%2Fsponsorlink.devlooped.com%2Fbadge%3Fteam) +![Contributor](https://img.shields.io/endpoint?color=blue&url=https%3A%2F%2Fsponsorlink.devlooped.com%2Fbadge%3Fcontrib) +![OSS](https://img.shields.io/endpoint?color=green&url=https%3A%2F%2Fsponsorlink.devlooped.com%2Fbadge%3Foss) diff --git a/readme.md b/readme.md index cf5396b..ff4ed1a 100644 --- a/readme.md +++ b/readme.md @@ -389,13 +389,37 @@ prefix to add or remove workloads respectively, for example. [![Clarius Org](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/clarius.png "Clarius Org")](https://github.com/clarius) -[![C. Augusto Proiete](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/augustoproiete.png "C. Augusto Proiete")](https://github.com/augustoproiete) [![Kirill Osenkov](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/KirillOsenkov.png "Kirill Osenkov")](https://github.com/KirillOsenkov) [![MFB Technologies, Inc.](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/MFB-Technologies-Inc.png "MFB Technologies, Inc.")](https://github.com/MFB-Technologies-Inc) -[![SandRock](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/sandrock.png "SandRock")](https://github.com/sandrock) -[![Andy Gocke](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/agocke.png "Andy Gocke")](https://github.com/agocke) -[![Stephen Shaw](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/decriptor.png "Stephen Shaw")](https://github.com/decriptor) [![Torutek](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/torutek-gh.png "Torutek")](https://github.com/torutek-gh) +[![DRIVE.NET, Inc.](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/drivenet.png "DRIVE.NET, Inc.")](https://github.com/drivenet) +[![Keith Pickford](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/Keflon.png "Keith Pickford")](https://github.com/Keflon) +[![Thomas Bolon](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/tbolon.png "Thomas Bolon")](https://github.com/tbolon) +[![Kori Francis](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/kfrancis.png "Kori Francis")](https://github.com/kfrancis) +[![Toni Wenzel](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/twenzel.png "Toni Wenzel")](https://github.com/twenzel) +[![Uno Platform](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/unoplatform.png "Uno Platform")](https://github.com/unoplatform) +[![Dan Siegel](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/dansiegel.png "Dan Siegel")](https://github.com/dansiegel) +[![Reuben Swartz](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/rbnswartz.png "Reuben Swartz")](https://github.com/rbnswartz) +[![Jacob Foshee](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/jfoshee.png "Jacob Foshee")](https://github.com/jfoshee) +[![](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/Mrxx99.png "")](https://github.com/Mrxx99) +[![Eric Johnson](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/eajhnsn1.png "Eric Johnson")](https://github.com/eajhnsn1) +[![Ix Technologies B.V.](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/IxTechnologies.png "Ix Technologies B.V.")](https://github.com/IxTechnologies) +[![David JENNI](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/davidjenni.png "David JENNI")](https://github.com/davidjenni) +[![Jonathan ](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/Jonathan-Hickey.png "Jonathan ")](https://github.com/Jonathan-Hickey) +[![Charley Wu](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/akunzai.png "Charley Wu")](https://github.com/akunzai) +[![Jakob TikjΓΈb Andersen](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/jakobt.png "Jakob TikjΓΈb Andersen")](https://github.com/jakobt) +[![Seann Alexander](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/seanalexander.png "Seann Alexander")](https://github.com/seanalexander) +[![Tino Hager](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/tinohager.png "Tino Hager")](https://github.com/tinohager) +[![Mark Seemann](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/ploeh.png "Mark Seemann")](https://github.com/ploeh) +[![Ken Bonny](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/KenBonny.png "Ken Bonny")](https://github.com/KenBonny) +[![Simon Cropp](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/SimonCropp.png "Simon Cropp")](https://github.com/SimonCropp) +[![agileworks-eu](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/agileworks-eu.png "agileworks-eu")](https://github.com/agileworks-eu) +[![sorahex](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/sorahex.png "sorahex")](https://github.com/sorahex) +[![Zheyu Shen](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/arsdragonfly.png "Zheyu Shen")](https://github.com/arsdragonfly) +[![Vezel](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/vezel-dev.png "Vezel")](https://github.com/vezel-dev) +[![ChilliCream](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/ChilliCream.png "ChilliCream")](https://github.com/ChilliCream) +[![4OTC](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/4OTC.png "4OTC")](https://github.com/4OTC) +[![Vincent Limo](https://raw.githubusercontent.com/devlooped/sponsors/main/.github/avatars/v-limo.png "Vincent Limo")](https://github.com/v-limo) diff --git a/sponsorlink.jwt b/sponsorlink.jwt new file mode 100644 index 0000000..06b1c8e --- /dev/null +++ b/sponsorlink.jwt @@ -0,0 +1 @@ +eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL3Nwb25zb3JsaW5rLmRldmxvb3BlZC5jb20vIiwiYXVkIjoiaHR0cHM6Ly9naXRodWIuY29tL3Nwb25zb3JzL2Rldmxvb3BlZCIsImlhdCI6IjE3MTgyMjQ4NzMiLCJjbGllbnRfaWQiOiJhODIzNTBmYjJiYWU0MDdiMzAyMSIsInN1Yl9qd2siOnsiZSI6IkFRQUIiLCJrdHkiOiJSU0EiLCJuIjoiNWluaHY4UXltYURCT2loTmkxZVktNi1oY0lCNXFTT05GWnhieHhYQXlPdHhBZGpGQ1BNLTk0Z0lacU05Q0RyWDNweWcxbFRKZm1sX2FfRlpTVTlkQjFpaTVtU1hfbU5IQkZYbjFfbF9naTFFcmRia0lGNVliVzZveFdGeGYzRzVtd1ZYd25QZnhIVHlRZG1XUTNZSlItQTNFQjRrYUZ3THFBNkhhNWxiMk9iR3BNVFFKTmFrRDRvVEFHRGhxSE1HaHU2UHVwR3E1aWU0cVpjUTdOOEFOdzh4SDduaWNUa2JxRWhRQUJIV09UbUxCV3E1ZjVGNlJZR0Y4UDdjbDBJV2xfdzRZY0laa0dtMnZYMmZpMjZGOUY2MGNVMXYxM0daRVZEVFhwSjlrenZZZU05c1lrNmZXYW95WTJqaEU1MXFidjBCMHU2aFNjWmlMUkV0bTNuN0NsSmJJR1hoa1VwcEZTMkpsTmFYM3JnUTZ0LTRMSzhnVVR5THQzekRzMkg4T1p5Q3dsQ3BmbUdtZHNVTWttMXhYNnQyci05NVUzenl3eW54b1daZmpCQ0pmNDFsZU05T01LWXdOV1o2TFFNeW84M0hXdzFQQklyWDRaTENsRndxQmNTWXNYRHlUOF9aTGQxY2RZbVBmbXRsbElYeFpoTENsd1Q1cWJDV3Y3M1YifX0.bTH1YjSuhaR0FGsGGcovzXpbT23pRdgZHiwjstlJ7FIyv_6UJ7SsR2x3K5Om8M1C7GaCQWdI_Hu92-0elLHG8yMeD-XbTtYD2z7td1DjmYV7mFNArKOKrg5pjNthrMP8U2yklC44bXcUOjWxHa5amT75Gr7L7mx5Evoe69yoE30ZhW1FgWJgQOHLvEGVyeEEXN96DzU3Ng5GqZZVNAs1zMd6RcraurmY_fr7FAMOlrCCnf6XmFxM8N0paJMWqBkgaO7h4bgzqVjGgUc1l6YKTR-zyLySOh4dcMbxLpAI6gwNImOVAtpC0cO8uL1bXQM86xrmYEDZ8HgwcRnrFtKZ3WQ7PoVs77fjiv8lChgDTEJWalWI7nGapkQDVA2-Hn1Ex_XiXW_KIuUrR7Y-Zt4f6GBiSIJmRL4s4YcgboEW61Lto0h5k_AZ5S2kL-OD4Qx2rudhsEEi2QP1oUW4aLTpmTHy5RAgLD-sGYnSZKDSaOBJ5aOUSilHEbBxy4_yeJgY diff --git a/sponsorlink.md b/sponsorlink.md new file mode 100644 index 0000000..c90a77f --- /dev/null +++ b/sponsorlink.md @@ -0,0 +1,2 @@ +*This project uses [SponsorLink](https://github.com/devlooped#sponsorlink) +and may issue IDE-only warnings if no active sponsorship is detected.* diff --git a/sponsorlinkr.md b/sponsorlinkr.md new file mode 100644 index 0000000..aa79a1d --- /dev/null +++ b/sponsorlinkr.md @@ -0,0 +1,2 @@ +*This project uses [SponsorLink](https://github.com/devlooped#sponsorlink) to attribute sponsor status (direct, indirect or implicit).* +*For IDE usage, sponsor status is required. IDE-only warnings will be issued after a grace period otherwise.* diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 6b9a668..381c383 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -26,10 +26,10 @@ icon.png - readme.md + readme.md icon.png - readme.md + readme.md true true @@ -37,7 +37,8 @@ $([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)..\bin')) - true + true + true true @@ -45,8 +46,6 @@ Release - true - false Latest @@ -117,6 +116,8 @@ <_VersionLabel>$(VersionLabel.Replace('refs/heads/', '')) + <_VersionLabel>$(_VersionLabel.Replace('refs/tags/v', '')) + <_VersionLabel Condition="$(_VersionLabel.Contains('refs/pull/'))">$(VersionLabel.TrimEnd('.0123456789')) @@ -127,7 +128,9 @@ <_VersionLabel>$(_VersionLabel.Replace('/', '-')) - $(_VersionLabel) + $(_VersionLabel) + + $(_VersionLabel) @@ -141,6 +144,16 @@ + + + + + + + + + diff --git a/src/Directory.Build.targets b/src/Directory.Build.targets index 5bd4019..6232750 100644 --- a/src/Directory.Build.targets +++ b/src/Directory.Build.targets @@ -4,6 +4,13 @@ CI;$(DefineConstants) + + + + false + false + true + true @@ -27,24 +34,29 @@ + + CopyToOutputDirectory="Never" + Condition="'$(PackReadme)' != 'false' and '$(PackageReadmeFile)' != ''" /> + CopyToOutputDirectory="Never" + Condition="Exists('$(MSBuildThisFileDirectory)icon.png') and !Exists('$(MSBuildProjectDirectory)\icon.png')" /> + CopyToOutputDirectory="Never" + Condition="'$(PackReadme)' != 'false' and Exists('$(MSBuildThisFileDirectory)readme.md') and !Exists('$(MSBuildProjectDirectory)\readme.md')" /> - PrepareResources;$(CoreCompileDependsOn) + + + CoreResGen;$(CoreCompileDependsOn) - + - - - + + - MSBuild:Compile $(IntermediateOutputPath)\$([MSBuild]::ValueOrDefault('%(RelativeDir)', '').Replace('\', '.').Replace('/', '.'))%(Filename).g$(DefaultLanguageSourceExtension) $(Language) $(RootNamespace) diff --git a/src/nuget.config b/src/nuget.config deleted file mode 100644 index ef2b768..0000000 --- a/src/nuget.config +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -