Skip to content

Commit a8e7392

Browse files
committed
⬆️ Bump files with dotnet-file sync
# devlooped/oss - Improve triage actions on issues devlooped/oss@33000c0 - Allow seamless sleet upgrades without requiring workflow updates devlooped/oss@5e17ad6 - Allow per-repo publish agent OS var, and non-nuget.org prereleases devlooped/oss@0345b45 - Set working directory for nuget push devlooped/oss@fcfc66a - Don't copy default icon to output directory devlooped/oss@9263184 - Update typed resgen to opt-in only devlooped/oss@a8b2080 # devlooped/.github
1 parent b8cf0ab commit a8e7392

File tree

9 files changed

+97
-62
lines changed

9 files changed

+97
-62
lines changed

.gitattributes

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,8 @@
1-
# sln, csproj files (and friends) are always CRLF, even on linux
2-
*.sln text eol=crlf
3-
*.proj text eol=crlf
4-
*.csproj text eol=crlf
1+
# normalize by default
2+
* text=auto encoding=UTF-8
3+
*.sh text eol=lf
54

65
# These are windows specific files which we may as well ensure are
76
# always crlf on checkout
87
*.bat text eol=crlf
98
*.cmd text eol=crlf
10-
11-
# Opt in known filetypes to always normalize line endings on checkin
12-
# and always use native endings on checkout
13-
*.c text
14-
*.config text
15-
*.h text
16-
*.cs text
17-
*.md text
18-
*.tt text
19-
*.txt text
20-
21-
# Some must always be checked out as lf so enforce that for those files
22-
# If these are not lf then bash/cygwin on windows will not be able to
23-
# excute the files
24-
*.sh text eol=lf

.github/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ changelog:
88
- invalid
99
- wontfix
1010
- need info
11-
- docs
1211
- techdebt
1312
authors:
1413
- devlooped-bot
@@ -24,6 +23,7 @@ changelog:
2423
- title: 📝 Documentation updates
2524
labels:
2625
- docs
26+
- documentation
2727
- title: 🔨 Other
2828
labels:
2929
- '*'

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ jobs:
8484
SLEET_CONNECTION: ${{ secrets.SLEET_CONNECTION }}
8585
if: env.SLEET_CONNECTION != ''
8686
run: |
87-
dotnet tool install -g --version 4.0.18 sleet
87+
dotnet tool update sleet -g --allow-downgrade --version $(curl -s --compressed ${{ vars.SLEET_FEED_URL }} | jq '.["sleet:version"]' -r)
8888
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"
8989
9090
dotnet-format:

.github/workflows/publish.yml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ env:
1818

1919
jobs:
2020
publish:
21-
runs-on: ubuntu-latest
21+
runs-on: ${{ vars.PUBLISH_AGENT || 'ubuntu-latest' }}
2222
steps:
2323
- name: 🤘 checkout
2424
uses: actions/checkout@v4
@@ -44,13 +44,14 @@ jobs:
4444
- name: 🚀 nuget
4545
env:
4646
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}
47-
if: env.NUGET_API_KEY != ''
48-
run: dotnet nuget push ./bin/**/*.nupkg -s https://api.nuget.org/v3/index.json -k ${{secrets.NUGET_API_KEY}} --skip-duplicate
47+
if: ${{ env.NUGET_API_KEY != '' && github.event.action != 'prereleased' }}
48+
working-directory: bin
49+
run: dotnet nuget push *.nupkg -s https://api.nuget.org/v3/index.json -k ${{secrets.NUGET_API_KEY}} --skip-duplicate
4950

5051
- name: 🚀 sleet
5152
env:
5253
SLEET_CONNECTION: ${{ secrets.SLEET_CONNECTION }}
5354
if: env.SLEET_CONNECTION != ''
5455
run: |
55-
dotnet tool install -g --version 4.0.18 sleet
56-
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"
56+
dotnet tool update sleet -g --allow-downgrade --version $(curl -s --compressed ${{ vars.SLEET_FEED_URL }} | jq '.["sleet:version"]' -r)
57+
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"

.github/workflows/stale.yml renamed to .github/workflows/triage.yml

Lines changed: 41 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,32 @@
1-
name: 'stale'
1+
name: 'triage'
22
on:
33
schedule:
44
- cron: '42 0 * * *'
55

66
workflow_dispatch:
77
# Manual triggering through the GitHub UI, API, or CLI
88
inputs:
9+
daysBeforeClose:
10+
description: "Days before closing stale or need info issues"
11+
required: true
12+
default: "30"
913
daysBeforeStale:
14+
description: "Days before labeling stale"
1015
required: true
1116
default: "180"
12-
daysBeforeClose:
17+
daysSinceClose:
18+
description: "Days since close to lock"
1319
required: true
1420
default: "30"
15-
operationsPerRun:
21+
daysSinceUpdate:
22+
description: "Days since update to lock"
1623
required: true
17-
default: "4000"
24+
default: "30"
1825

1926
permissions:
2027
actions: write # For managing the operation state cache
2128
issues: write
29+
contents: read
2230

2331
jobs:
2432
stale:
@@ -30,7 +38,7 @@ jobs:
3038
shell: pwsh
3139
if: github.event_name != 'workflow_dispatch'
3240
env:
33-
GH_TOKEN: ${{ github.token }}
41+
GH_TOKEN: ${{ secrets.DEVLOOPED_TOKEN }}
3442
run: |
3543
# add random sleep since we run on fixed schedule
3644
$wait = get-random -max 180
@@ -47,7 +55,7 @@ jobs:
4755
echo "Rate limit has reset to $($rate.remaining) requests"
4856
}
4957
50-
- name: ✏️ label
58+
- name: ✏️ stale labeler
5159
# pending merge: https://github.com/actions/stale/pull/1176
5260
uses: kzu/stale@c8450312ba97b204bf37545cb249742144d6ca69
5361
with:
@@ -62,8 +70,34 @@ jobs:
6270
days-before-stale: ${{ fromJson(inputs.daysBeforeStale || 180) }}
6371
days-before-close: ${{ fromJson(inputs.daysBeforeClose || 30 ) }}
6472
days-before-pr-close: -1 # Do not close PRs labeled as 'stale'
65-
operations-per-run: ${{ fromJson(inputs.operationsPerRun || 4000 )}}
6673
exempt-all-milestones: true
6774
exempt-all-assignees: true
6875
exempt-issue-labels: priority,sponsor,backed
6976
exempt-authors: kzu
77+
78+
- name: 🤘 checkout actions
79+
uses: actions/checkout@v4
80+
with:
81+
repository: 'microsoft/vscode-github-triage-actions'
82+
ref: v42
83+
84+
- name: ⚙ install actions
85+
run: npm install --production
86+
87+
- name: 🔒 issues locker
88+
uses: ./locker
89+
with:
90+
token: ${{ secrets.DEVLOOPED_TOKEN }}
91+
ignoredLabel: priority
92+
daysSinceClose: ${{ fromJson(inputs.daysSinceClose || 30) }}
93+
daysSinceUpdate: ${{ fromJson(inputs.daysSinceUpdate || 30) }}
94+
95+
- name: 🔒 need info closer
96+
uses: ./needs-more-info-closer
97+
with:
98+
token: ${{ secrets.DEVLOOPED_TOKEN }}
99+
label: 'need info'
100+
closeDays: ${{ fromJson(inputs.daysBeforeClose || 30) }}
101+
closeComment: "This issue has been closed automatically because it needs more information and has not had recent activity.\n\nHappy Coding!"
102+
pingDays: 80
103+
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."

.netconfig

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929
weak
3030
[file ".gitattributes"]
3131
url = https://github.com/devlooped/oss/blob/main/.gitattributes
32-
sha = 0683ee777d7d878d4bf013d7deea352685135a05
33-
etag = 7acb32f5fa6d4ccd9c824605a7c2b8538497f0068c165567807d393dcf4d6bb7
32+
sha = 5f92a68e302bae675b394ef343114139c075993e
33+
etag = 338ba6d92c8d1774363396739c2be4257bfc58026f4b0fe92cb0ae4460e1eff7
3434
weak
3535
[file ".github/FUNDING.yml"]
3636
url = https://github.com/devlooped/.github/blob/main/.github/FUNDING.yml
@@ -44,8 +44,8 @@
4444
weak
4545
[file ".github/workflows/build.yml"]
4646
url = https://github.com/devlooped/oss/blob/main/.github/workflows/build.yml
47-
sha = 7ec91019eddb4fc7e0b09118538b256087f82e18
48-
etag = 35b2a5b03c26cbe7522e30b2b987e04991e8ba18accd38b7ebd88191f1698c2d
47+
sha = 5e17ad62ebb5241555a7a4d29e3ab15e5ba120d2
48+
etag = f358acb1e45596bf0aad49996017da44939de30b805289c4ad205a7ccb6f99cb
4949
weak
5050
[file ".github/workflows/changelog.yml"]
5151
url = https://github.com/devlooped/oss/blob/main/.github/workflows/changelog.yml
@@ -59,8 +59,8 @@
5959
weak
6060
[file ".github/workflows/publish.yml"]
6161
url = https://github.com/devlooped/oss/blob/main/.github/workflows/publish.yml
62-
sha = b5bb972199aa6ff220dda196588b23c21bb2780f
63-
etag = 5a85d51e8c6cc6fbda43e12b3712a1e908a8e99b0908c4033ac9f4c66e5f233e
62+
sha = 5e17ad62ebb5241555a7a4d29e3ab15e5ba120d2
63+
etag = 2cc96046d8f28e7cbcde89ed56d3d89e1a70fb0de7846ee1827bee66b7dfbcf1
6464
weak
6565
[file ".gitignore"]
6666
url = https://github.com/devlooped/oss/blob/main/.gitignore
@@ -94,8 +94,8 @@
9494
weak
9595
[file "src/Directory.Build.targets"]
9696
url = https://github.com/devlooped/oss/blob/main/src/Directory.Build.targets
97-
sha = 33a20db26e47589769284817b271ce67ea9ccfd8
98-
etag = 1a3a0151b5771ee97ed8351254ff4c18a0ff568e0df5c33c6830f069bfbb067b
97+
sha = a8b208093599263b7f2d1fe3854634c588ea5199
98+
etag = 19087699f05396205e6b050d999a43b175bd242f6e8fac86f6df936310178b03
9999
weak
100100
[file "src/kzu.snk"]
101101
url = https://github.com/devlooped/oss/blob/main/src/kzu.snk
@@ -107,8 +107,8 @@
107107
weak
108108
[file ".github/release.yml"]
109109
url = https://github.com/devlooped/oss/blob/main/.github/release.yml
110-
sha = 1afd173fe8f81b510c597737b0d271218e81fa73
111-
etag = 482dc2c892fc7ce0cb3a01eb5d9401bee50ddfb067d8cb85873555ce63cf5438
110+
sha = 0c23e24704625cf75b2cb1fdc566cef7e20af313
111+
etag = 310df162242c95ed19ed12e3c96a65f77e558b46dced676ad5255eb12caafe75
112112
weak
113113
[file ".github/workflows/changelog.config"]
114114
url = https://github.com/devlooped/oss/blob/main/.github/workflows/changelog.config
@@ -125,11 +125,6 @@
125125
sha = d152e7437fd0d6f6d9363d23cb3b78c07335ea49
126126
etag = ec40db34f379d0c6d83b2ec15624f330318a172cc4f85b5417c63e86eaf601df
127127
weak
128-
[file ".github/workflows/stale.yml"]
129-
url = https://github.com/devlooped/oss/blob/main/.github/workflows/stale.yml
130-
sha = 03b7d535f782ceaf918eeea82ca374bc8c93288a
131-
etag = 1efabca4a7436d756e8d24e616a8ecda54f55b49eab623168149f042131e67d6
132-
weak
133128
[file ".github/code_of_conduct.md"]
134129
url = https://github.com/devlooped/.github/blob/main/.github/code_of_conduct.md
135130
sha = 4d38bd1a1662e69a131dfe2e860a0a832ea89db4
@@ -152,8 +147,8 @@
152147
weak
153148
[file "profile/readme.md"]
154149
url = https://github.com/devlooped/.github/blob/main/profile/readme.md
155-
sha = b53e2d3d36e3715df4d95fe822b3483d37b25173
156-
etag = 82c23769a59058f3eca88b9987229e301ceda775ab69af6f9add0a88c233d1d0
150+
sha = f2df883a97ac1bf8204534211efd7389301143bd
151+
etag = 4f4a1587655ffcdc01fdfc6d3b1e04e06308772e5d7b000fab8b1793613a6642
157152
weak
158153
[file "sponsorlink.jwt"]
159154
url = https://github.com/devlooped/.github/blob/main/sponsorlink.jwt
@@ -165,3 +160,13 @@
165160
sha = 80e81d21c020841dfc8678f218d42ddaffad78db
166161
etag = 6ab86c474f24c915681abf4dca6c5becf3a211ab09d11e290385890dadd6f97f
167162
weak
163+
[file ".github/workflows/triage.yml"]
164+
url = https://github.com/devlooped/oss/blob/main/.github/workflows/triage.yml
165+
sha = 33000c0c4ab4eb4e0e142fa54515b811a189d55c
166+
etag = 013a47739e348f06891f37c45164478cca149854e6cd5c5158e6f073f852b61a
167+
weak
168+
[file "sponsorlink.md"]
169+
url = https://github.com/devlooped/.github/blob/main/sponsorlink.md
170+
sha = d4d500f229a7280920645ecfa25b11929c02bc04
171+
etag = 22663daef194a796937174446a3390ebdc169a3eba9d46d5e864b7ce46a23771
172+
weak

profile/readme.md

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,13 +62,18 @@ If you arrived here from an IDE and are interested in sponsoring, the (one-time)
6262
Feel free to dive deeper into the [technical details](https://www.devlooped.com/SponsorLink/github.html) of how
6363
this works. You can also implement SponsorLink yourself with minimal effort for your own projects.
6464

65-
### Implicit or Indirect Sponsorships
65+
### Implicit and Indirect Sponsorships
6666

6767
If you have ever sent a PR that was merged into any repository owned by [@devlooped](https://github.com/devlooped),
68-
you are considered a sponsor already! Contributing your time and code is the most awesome way to support a project 🫶.
68+
you are considered an implicit sponsor already! Contributing your time and code is the most awesome way to support a project 🫶.
6969

7070
If you belong to an organization that sponsors [@devlooped](https://github.com/sponsors/devlooped), then you are
71-
an indirect sponsor too! This allows organizations to support projects their employees love and streamline invoicing.
71+
an indirect sponsor! This allows organizations to support projects their employees love and streamline invoicing.
72+
73+
Finally, if you are an open-source author or contributor yourself, chances are you are elegible for an implicit
74+
sponsorship I'll grant automatically! If your account shows up in the [OSS Authors](https://www.devlooped.com/SponsorLink/github/oss/),
75+
you can just sync your implicit sponsorship and continue enjoying my projects with no additional sponsorship needed.
76+
Contributing your valuable time to other projects is great too.
7277

7378
<div id="autosync"></div>
7479

@@ -84,6 +89,7 @@ the same command you'd have to run manually: `sponsor sync devlooped`.
8489
Active SponsorLink sync usage by sponsorship kind:
8590

8691
![User](https://img.shields.io/endpoint?color=ea4aaa&url=https%3A%2F%2Fsponsorlink.devlooped.com%2Fbadge%3Fuser)
87-
![Organization](https://img.shields.io/endpoint?color=green&url=https%3A%2F%2Fsponsorlink.devlooped.com%2Fbadge%3Forg)
92+
![Organization](https://img.shields.io/endpoint?color=yellow&url=https%3A%2F%2Fsponsorlink.devlooped.com%2Fbadge%3Forg)
8893
![Team](https://img.shields.io/endpoint?color=8A2BE2&url=https%3A%2F%2Fsponsorlink.devlooped.com%2Fbadge%3Fteam)
8994
![Contributor](https://img.shields.io/endpoint?color=blue&url=https%3A%2F%2Fsponsorlink.devlooped.com%2Fbadge%3Fcontrib)
95+
![OSS](https://img.shields.io/endpoint?color=green&url=https%3A%2F%2Fsponsorlink.devlooped.com%2Fbadge%3Foss)

sponsorlink.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*This project uses [SponsorLink](https://github.com/devlooped#sponsorlink)
2+
and may issue IDE-only warnings if no active sponsorship is detected.*

src/Directory.Build.targets

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,23 +34,28 @@
3434

3535
<ItemGroup Condition="'$(IsPackable)' == 'true'" Label="NuGet">
3636
<!-- This is compatible with nugetizer and SDK pack -->
37+
<!-- Only difference is we don't copy either to output directory -->
3738

3839
<!-- Project-level icon/readme will already be part of None items -->
3940
<None Update="@(None -> WithMetadataValue('Filename', 'icon'))"
4041
Pack="true" PackagePath="%(Filename)%(Extension)"
42+
CopyToOutputDirectory="Never"
4143
Condition="'$(PackageIcon)' != ''" />
4244

4345
<None Update="@(None -> WithMetadataValue('Filename', 'readme'))"
4446
Pack="true" PackagePath="%(Filename)%(Extension)"
47+
CopyToOutputDirectory="Never"
4548
Condition="'$(PackReadme)' != 'false' and '$(PackageReadmeFile)' != ''" />
4649

4750
<!-- src-level will need explicit inclusion -->
4851
<None Include="$(MSBuildThisFileDirectory)icon.png" Link="icon.png" Visible="false"
4952
Pack="true" PackagePath="%(Filename)%(Extension)"
53+
CopyToOutputDirectory="Never"
5054
Condition="Exists('$(MSBuildThisFileDirectory)icon.png') and !Exists('$(MSBuildProjectDirectory)\icon.png')" />
5155

5256
<None Include="$(MSBuildThisFileDirectory)readme.md" Link="readme.md"
5357
Pack="true" PackagePath="%(Filename)%(Extension)"
58+
CopyToOutputDirectory="Never"
5459
Condition="'$(PackReadme)' != 'false' and Exists('$(MSBuildThisFileDirectory)readme.md') and !Exists('$(MSBuildProjectDirectory)\readme.md')" />
5560
</ItemGroup>
5661

@@ -101,19 +106,17 @@
101106
<RepositoryBranch Condition="'$(RepositoryBranch)' == '' and '$(BUDDY_EXECUTION_BRANCH)' != ''">$(BUDDY_EXECUTION_BRANCH)</RepositoryBranch>
102107
</PropertyGroup>
103108

104-
<PropertyGroup Condition="'$(EnableRexCodeGenerator)' == 'true'">
105-
<!-- VSCode/Razor compatibility -->
106-
<CoreCompileDependsOn>PrepareResources;$(CoreCompileDependsOn)</CoreCompileDependsOn>
109+
<PropertyGroup>
110+
<!-- Default to Just Works resources generation. See https://www.cazzulino.com/resources.html -->
111+
<CoreCompileDependsOn>CoreResGen;$(CoreCompileDependsOn)</CoreCompileDependsOn>
107112
</PropertyGroup>
108-
113+
109114
<ItemGroup>
110115
<!-- Consider the project out of date if any of these files changes -->
111116
<UpToDateCheck Include="@(None);@(Content);@(EmbeddedResource)" />
112-
<!-- We'll typically use ThisAssembly.Strings instead of the built-in resource manager codegen -->
113-
<EmbeddedResource Update="@(EmbeddedResource)" Generator="" Condition="'$(EnableRexCodeGenerator)' != 'true'" />
114-
<EmbeddedResource Update="@(EmbeddedResource)" Condition="'$(EnableRexCodeGenerator)' == 'true'">
117+
<!-- Opt-in to typed resource generation by setting custom tool to MSBuild:Compile -->
118+
<EmbeddedResource Update="@(EmbeddedResource -> WithMetadataValue('Generator', 'MSBuild:Compile'))" Type="Resx">
115119
<!-- Default to Just Works resources generation. See https://www.cazzulino.com/resources.html -->
116-
<Generator>MSBuild:Compile</Generator>
117120
<StronglyTypedFileName>$(IntermediateOutputPath)\$([MSBuild]::ValueOrDefault('%(RelativeDir)', '').Replace('\', '.').Replace('/', '.'))%(Filename).g$(DefaultLanguageSourceExtension)</StronglyTypedFileName>
118121
<StronglyTypedLanguage>$(Language)</StronglyTypedLanguage>
119122
<StronglyTypedNamespace Condition="'%(RelativeDir)' == ''">$(RootNamespace)</StronglyTypedNamespace>

0 commit comments

Comments
 (0)