Skip to content

Commit 9ed2abf

Browse files
cobyaCoby Allred
andauthored
Remove .Net8 prefix from SC builds, MultiLogger fix (#588)
- Remove the .Net8 prefix from the self-contained binary distribution file names since it can be updated to future NET SDKs without user interaction. - Fix for #576 --------- Co-authored-by: Coby Allred <[email protected]>
1 parent 670d05b commit 9ed2abf

File tree

6 files changed

+70
-42
lines changed

6 files changed

+70
-42
lines changed

CredentialProvider.Microsoft/Logging/MultiLogger.cs

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,33 +10,48 @@ namespace NuGetCredentialProvider.Logging
1010
internal class MultiLogger : List<ILogger>, ILogger
1111
{
1212
private LogLevel? minLogLevel = null;
13+
private readonly object logLock = new();
1314

1415
public void Log(LogLevel level, bool allowOnConsole, string message)
1516
{
16-
foreach (var logger in this)
17+
ILogger[] loggers;
18+
lock (logLock)
19+
{
20+
loggers = this.ToArray();
21+
}
22+
23+
foreach (var logger in loggers)
1724
{
1825
logger.Log(level, allowOnConsole, message);
1926
}
2027
}
2128

2229
public void SetLogLevel(LogLevel newLogLevel)
2330
{
24-
minLogLevel = newLogLevel;
31+
ILogger[] loggers;
32+
lock (logLock)
33+
{
34+
minLogLevel = newLogLevel;
35+
loggers = this.ToArray();
36+
}
2537

26-
foreach (var logger in this)
38+
foreach (var logger in loggers)
2739
{
2840
logger.SetLogLevel(newLogLevel);
2941
}
3042
}
3143

3244
public new void Add(ILogger logger)
3345
{
34-
if (minLogLevel.HasValue)
46+
lock (logLock)
3547
{
36-
logger.SetLogLevel(minLogLevel.Value);
37-
}
48+
if (minLogLevel.HasValue)
49+
{
50+
logger.SetLogLevel(minLogLevel.Value);
51+
}
3852

39-
base.Add(logger);
53+
base.Add(logger);
54+
}
4055
}
4156
}
4257
}

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ Examples:
100100

101101
Using the above is recommended, but as per [NuGet's plugin discovery rules](https://github.com/NuGet/Home/wiki/NuGet-cross-plat-authentication-plugin#plugin-installation-and-discovery), alternatively you can install the credential provider to a location you prefer, and then set the environment variable NUGET_PLUGIN_PATHS to the .dll of the credential provider found in plugins\netcore\CredentialProvider.Microsoft\CredentialProvider.Microsoft.dll. For example, $env:NUGET_PLUGIN_PATHS="my-alternative-location\CredentialProvider.Microsoft.dll".
102102

103-
Users requiring .NET 6, such as ARM64 users, can manually download the .NET 6 version `Microsoft.Net6.NuGet.CredentialProvider` of the [1.0.0 release](https://github.com/microsoft/artifacts-credprovider/releases/tag/v1.0.0). Support for .NET 8 was added in [release 1.3.0](https://github.com/microsoft/artifacts-credprovider/releases/tag/v1.3.0) and can be downloaded with the `Microsoft.Net8.NuGet.CredentialProvider` archive.
103+
Users requiring .NET 6, such as ARM64 users, can manually download the .NET 6 version `Microsoft.Net6.NuGet.CredentialProvider` of the [1.0.0 release](https://github.com/microsoft/artifacts-credprovider/releases/tag/v1.0.0). Support for .NET 8 was added in [release 1.3.0](https://github.com/microsoft/artifacts-credprovider/releases/tag/v1.3.0) and can be downloaded with the `Microsoft.Net8.NuGet.CredentialProvider` archive for runtime-dependent installs, or RID-specific archives (e.g., `Microsoft.win-x64.NuGet.CredentialProvider`) for self-contained installs (v2.0.0+).
104104

105105
### Automatic usage
106106
- MSBuild in Visual Studio Developer Command Prompt with Visual Studio 15.9+

build/validate-install-release-script.yml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ jobs:
2929
parameters:
3030
repo: self
3131
scriptInputs: '-InstallNet8 -RuntimeIdentifier win-x64'
32-
expectedCredentialProviderVersion: 'Microsoft.Net8.win-x64.NuGet.CredentialProvider'
32+
expectedCredentialProviderVersion: 'Microsoft.win-x64.NuGet.CredentialProvider'
3333
releaseVersion: 'latest'
3434

3535
- job: WindowsReleaseInstallNet8winx64NoParams
@@ -40,7 +40,7 @@ jobs:
4040
parameters:
4141
repo: self
4242
scriptInputs: '-RuntimeIdentifier win-x64'
43-
expectedCredentialProviderVersion: 'Microsoft.Net8.win-x64.NuGet.CredentialProvider'
43+
expectedCredentialProviderVersion: 'Microsoft.win-x64.NuGet.CredentialProvider'
4444
releaseVersion: 'latest'
4545

4646
- job: WindowsReleaseInstallNetfxDefault
@@ -115,7 +115,7 @@ jobs:
115115
export USE_NET6_ARTIFACTS_CREDENTIAL_PROVIDER=false
116116
export USE_NET8_ARTIFACTS_CREDENTIAL_PROVIDER=true
117117
export ARTIFACTS_CREDENTIAL_PROVIDER_RID=linux-x64
118-
expectedCredentialProviderVersion: 'Microsoft.Net8.linux-x64.NuGet.CredentialProvider'
118+
expectedCredentialProviderVersion: 'Microsoft.linux-x64.NuGet.CredentialProvider'
119119
releaseVersion: 'latest'
120120

121121
- job: LinuxReleaseInstallNet8linuxarm64
@@ -129,7 +129,7 @@ jobs:
129129
export USE_NET6_ARTIFACTS_CREDENTIAL_PROVIDER=false
130130
export USE_NET8_ARTIFACTS_CREDENTIAL_PROVIDER=true
131131
export ARTIFACTS_CREDENTIAL_PROVIDER_RID=linux-arm64
132-
expectedCredentialProviderVersion: 'Microsoft.Net8.linux-arm64.NuGet.CredentialProvider'
132+
expectedCredentialProviderVersion: 'Microsoft.linux-arm64.NuGet.CredentialProvider'
133133
releaseVersion: 'latest'
134134

135135
- job: macOSReleaseInstallNet8osxarm64
@@ -143,7 +143,7 @@ jobs:
143143
export USE_NET6_ARTIFACTS_CREDENTIAL_PROVIDER=false
144144
export USE_NET8_ARTIFACTS_CREDENTIAL_PROVIDER=true
145145
export ARTIFACTS_CREDENTIAL_PROVIDER_RID=osx-arm64
146-
expectedCredentialProviderVersion: 'Microsoft.Net8.osx-arm64.NuGet.CredentialProvider'
146+
expectedCredentialProviderVersion: 'Microsoft.osx-arm64.NuGet.CredentialProvider'
147147
releaseVersion: 'latest'
148148

149149
- job: macOSReleaseInstallNet8osxx64
@@ -157,7 +157,7 @@ jobs:
157157
export USE_NET6_ARTIFACTS_CREDENTIAL_PROVIDER=false
158158
export USE_NET8_ARTIFACTS_CREDENTIAL_PROVIDER=true
159159
export ARTIFACTS_CREDENTIAL_PROVIDER_RID=osx-x64
160-
expectedCredentialProviderVersion: 'Microsoft.Net8.osx-x64.NuGet.CredentialProvider'
160+
expectedCredentialProviderVersion: 'Microsoft.osx-x64.NuGet.CredentialProvider'
161161
releaseVersion: 'latest'
162162

163163
- job: macOSReleaseInstallNet8osxx64NoParams
@@ -169,7 +169,7 @@ jobs:
169169
repo: self
170170
scriptEnvVariables: |
171171
export ARTIFACTS_CREDENTIAL_PROVIDER_RID=osx-x64
172-
expectedCredentialProviderVersion: 'Microsoft.Net8.osx-x64.NuGet.CredentialProvider'
172+
expectedCredentialProviderVersion: 'Microsoft.osx-x64.NuGet.CredentialProvider'
173173
releaseVersion: 'latest'
174174

175175
- job: macOSReleaseInstallNet8osxx64Net6Params
@@ -182,7 +182,7 @@ jobs:
182182
scriptEnvVariables: |
183183
export USE_NET6_ARTIFACTS_CREDENTIAL_PROVIDER=true
184184
export ARTIFACTS_CREDENTIAL_PROVIDER_RID=osx-x64
185-
expectedCredentialProviderVersion: 'Microsoft.Net8.osx-x64.NuGet.CredentialProvider'
185+
expectedCredentialProviderVersion: 'Microsoft.osx-x64.NuGet.CredentialProvider'
186186
releaseVersion: 'latest'
187187

188188
# Test with specific release version (using a common stable version 1.4.0)

build/validate-install-script.yml

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ jobs:
77
parameters:
88
repo: self
99
scriptInputs: ''
10-
expectedCredentialProviderVersion: 'Microsoft.Net8.win-x64.NuGet.CredentialProvider'
10+
expectedCredentialProviderVersion: 'Microsoft.win-x64.NuGet.CredentialProvider'
1111
- job: WindowsInstallNet6
1212
pool:
1313
vmImage: windows-latest
@@ -34,7 +34,7 @@ jobs:
3434
parameters:
3535
repo: self
3636
scriptInputs: '-InstallNet8'
37-
expectedCredentialProviderVersion: 'Microsoft.Net8.win-x64.NuGet.CredentialProvider'
37+
expectedCredentialProviderVersion: 'Microsoft.win-x64.NuGet.CredentialProvider'
3838
- job: WindowsInstallNet8winx64
3939
pool:
4040
vmImage: windows-latest
@@ -43,7 +43,7 @@ jobs:
4343
parameters:
4444
repo: self
4545
scriptInputs: '-InstallNet8 -RuntimeIdentifier win-x64'
46-
expectedCredentialProviderVersion: 'Microsoft.Net8.win-x64.NuGet.CredentialProvider'
46+
expectedCredentialProviderVersion: 'Microsoft.win-x64.NuGet.CredentialProvider'
4747
- job: WindowsInstallNet8winx64NoParams
4848
pool:
4949
vmImage: windows-latest
@@ -52,7 +52,7 @@ jobs:
5252
parameters:
5353
repo: self
5454
scriptInputs: '-RuntimeIdentifier win-x64'
55-
expectedCredentialProviderVersion: 'Microsoft.Net8.win-x64.NuGet.CredentialProvider'
55+
expectedCredentialProviderVersion: 'Microsoft.win-x64.NuGet.CredentialProvider'
5656
- job: WindowsInstallNet8winx64Net6Params
5757
pool:
5858
vmImage: windows-latest
@@ -61,7 +61,7 @@ jobs:
6161
parameters:
6262
repo: self
6363
scriptInputs: '-InstallNet6 -RuntimeIdentifier win-x64'
64-
expectedCredentialProviderVersion: 'Microsoft.Net8.win-x64.NuGet.CredentialProvider'
64+
expectedCredentialProviderVersion: 'Microsoft.win-x64.NuGet.CredentialProvider'
6565
- job: WindowsInstallNetfxDefault
6666
pool:
6767
vmImage: windows-latest
@@ -88,7 +88,7 @@ jobs:
8888
parameters:
8989
repo: self
9090
scriptEnvVariables: ''
91-
expectedCredentialProviderVersion: 'Microsoft.Net8.linux-x64.NuGet.CredentialProvider'
91+
expectedCredentialProviderVersion: 'Microsoft.linux-x64.NuGet.CredentialProvider'
9292
- job: LinuxInstallNet8
9393
pool:
9494
vmImage: ubuntu-latest
@@ -99,7 +99,7 @@ jobs:
9999
scriptEnvVariables: |
100100
export USE_NET6_ARTIFACTS_CREDENTIAL_PROVIDER=false
101101
export USE_NET8_ARTIFACTS_CREDENTIAL_PROVIDER=true
102-
expectedCredentialProviderVersion: 'Microsoft.Net8.linux-x64.NuGet.CredentialProvider'
102+
expectedCredentialProviderVersion: 'Microsoft.linux-x64.NuGet.CredentialProvider'
103103
- job: LinuxInstallNet8NonSC
104104
pool:
105105
vmImage: ubuntu-latest
@@ -131,7 +131,7 @@ jobs:
131131
scriptEnvVariables: |
132132
export USE_NET6_ARTIFACTS_CREDENTIAL_PROVIDER=true
133133
export USE_NET8_ARTIFACTS_CREDENTIAL_PROVIDER=true
134-
expectedCredentialProviderVersion: 'Microsoft.Net8.linux-x64.NuGet.CredentialProvider'
134+
expectedCredentialProviderVersion: 'Microsoft.linux-x64.NuGet.CredentialProvider'
135135
- job: LinuxInstallNetFx
136136
pool:
137137
vmImage: ubuntu-latest
@@ -154,7 +154,7 @@ jobs:
154154
export USE_NET6_ARTIFACTS_CREDENTIAL_PROVIDER=false
155155
export USE_NET8_ARTIFACTS_CREDENTIAL_PROVIDER=true
156156
export ARTIFACTS_CREDENTIAL_PROVIDER_RID=linux-x64
157-
expectedCredentialProviderVersion: 'Microsoft.Net8.linux-x64.NuGet.CredentialProvider'
157+
expectedCredentialProviderVersion: 'Microsoft.linux-x64.NuGet.CredentialProvider'
158158
- job: LinuxInstallNet8Auto
159159
pool:
160160
vmImage: ubuntu-latest
@@ -163,7 +163,7 @@ jobs:
163163
parameters:
164164
repo: self
165165
scriptEnvVariables: ''
166-
expectedCredentialProviderVersion: 'Microsoft.Net8.linux-x64.NuGet.CredentialProvider'
166+
expectedCredentialProviderVersion: 'Microsoft.linux-x64.NuGet.CredentialProvider'
167167
- job: LinuxInstallNet8linuxarm64
168168
pool:
169169
vmImage: ubuntu-latest
@@ -175,7 +175,7 @@ jobs:
175175
export USE_NET6_ARTIFACTS_CREDENTIAL_PROVIDER=false
176176
export USE_NET8_ARTIFACTS_CREDENTIAL_PROVIDER=true
177177
export ARTIFACTS_CREDENTIAL_PROVIDER_RID=linux-arm64
178-
expectedCredentialProviderVersion: 'Microsoft.Net8.linux-arm64.NuGet.CredentialProvider'
178+
expectedCredentialProviderVersion: 'Microsoft.linux-arm64.NuGet.CredentialProvider'
179179
- job: macOSInstallNet8osxarm64
180180
pool:
181181
vmImage: macOS-latest
@@ -187,7 +187,7 @@ jobs:
187187
export USE_NET6_ARTIFACTS_CREDENTIAL_PROVIDER=false
188188
export USE_NET8_ARTIFACTS_CREDENTIAL_PROVIDER=true
189189
export ARTIFACTS_CREDENTIAL_PROVIDER_RID=osx-arm64
190-
expectedCredentialProviderVersion: 'Microsoft.Net8.osx-arm64.NuGet.CredentialProvider'
190+
expectedCredentialProviderVersion: 'Microsoft.osx-arm64.NuGet.CredentialProvider'
191191
- job: macOSnstallNet8osxx64
192192
pool:
193193
vmImage: macOS-latest
@@ -199,7 +199,7 @@ jobs:
199199
export USE_NET6_ARTIFACTS_CREDENTIAL_PROVIDER=false
200200
export USE_NET8_ARTIFACTS_CREDENTIAL_PROVIDER=true
201201
export ARTIFACTS_CREDENTIAL_PROVIDER_RID=osx-x64
202-
expectedCredentialProviderVersion: 'Microsoft.Net8.osx-x64.NuGet.CredentialProvider'
202+
expectedCredentialProviderVersion: 'Microsoft.osx-x64.NuGet.CredentialProvider'
203203
- job: macOSInstallNet8Auto
204204
pool:
205205
vmImage: macOS-latest
@@ -208,7 +208,7 @@ jobs:
208208
parameters:
209209
repo: self
210210
scriptEnvVariables: ''
211-
expectedCredentialProviderVersion: 'Microsoft.Net8.osx-x64.NuGet.CredentialProvider'
211+
expectedCredentialProviderVersion: 'Microsoft.osx-x64.NuGet.CredentialProvider'
212212
- job: macOSInstallNet8osxx64NoParams
213213
pool:
214214
vmImage: macOS-latest
@@ -218,7 +218,7 @@ jobs:
218218
repo: self
219219
scriptEnvVariables: |
220220
export ARTIFACTS_CREDENTIAL_PROVIDER_RID=osx-x64
221-
expectedCredentialProviderVersion: 'Microsoft.Net8.osx-x64.NuGet.CredentialProvider'
221+
expectedCredentialProviderVersion: 'Microsoft.osx-x64.NuGet.CredentialProvider'
222222
- job: macOSnstallNet8osxx64Net6Params
223223
pool:
224224
vmImage: macOS-latest
@@ -229,5 +229,5 @@ jobs:
229229
scriptEnvVariables: |
230230
export USE_NET6_ARTIFACTS_CREDENTIAL_PROVIDER=true
231231
export ARTIFACTS_CREDENTIAL_PROVIDER_RID=osx-x64
232-
expectedCredentialProviderVersion: 'Microsoft.Net8.osx-x64.NuGet.CredentialProvider'
232+
expectedCredentialProviderVersion: 'Microsoft.osx-x64.NuGet.CredentialProvider'
233233

helpers/installcredprovider.ps1

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -263,12 +263,17 @@ if ($InstallNet6 -eq $True) {
263263
$archiveFile = "Microsoft.Net6.NuGet.CredentialProvider.zip"
264264
}
265265
if ($InstallNet8 -eq $True) {
266-
if ($releaseRidPart -like 'linux*') {
266+
# Self-contained builds use RID without .Net8 prefix (v2.0.0+)
267+
# Runtime-dependent builds still use Net8 prefix
268+
if ([string]::IsNullOrEmpty($releaseRidPart)) {
269+
$archiveFile = "Microsoft.Net8.NuGet.CredentialProvider.zip"
270+
}
271+
elseif ($releaseRidPart -like 'linux*') {
267272
# For linux runtimes, only .tar.gz is available
268-
$archiveFile = "Microsoft.Net8.${releaseRidPart}NuGet.CredentialProvider.tar.gz"
273+
$archiveFile = "Microsoft.${releaseRidPart}NuGet.CredentialProvider.tar.gz"
269274
}
270275
else {
271-
$archiveFile = "Microsoft.Net8.${releaseRidPart}NuGet.CredentialProvider.zip"
276+
$archiveFile = "Microsoft.${releaseRidPart}NuGet.CredentialProvider.zip"
272277
}
273278
}
274279
if ($AddNetfx -eq $True) {
@@ -297,12 +302,17 @@ if ($AddNetfx -eq $True -and $InstallNet6 -eq $True) {
297302
Install-CredProvider
298303
}
299304
if ($AddNetfx -eq $True -and $InstallNet8 -eq $True) {
300-
if ($releaseRidPart -like 'linux*') {
305+
# Self-contained builds use RID without .Net8 prefix (v2.0.0+)
306+
# Runtime-dependent builds still use Net8 prefix
307+
if ([string]::IsNullOrEmpty($releaseRidPart)) {
308+
$archiveFile = "Microsoft.Net8.NuGet.CredentialProvider.zip"
309+
}
310+
elseif ($releaseRidPart -like 'linux*') {
301311
# For linux runtimes, only .tar.gz is available
302-
$archiveFile = "Microsoft.Net8.${releaseRidPart}NuGet.CredentialProvider.tar.gz"
312+
$archiveFile = "Microsoft.${releaseRidPart}NuGet.CredentialProvider.tar.gz"
303313
}
304314
else {
305-
$archiveFile = "Microsoft.Net8.${releaseRidPart}NuGet.CredentialProvider.zip"
315+
$archiveFile = "Microsoft.${releaseRidPart}NuGet.CredentialProvider.zip"
306316
}
307317
Install-CredProvider
308318
}

helpers/installcredprovider.sh

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,11 +54,12 @@ if [ ! -z ${ARTIFACTS_CREDENTIAL_PROVIDER_RID} ]; then
5454
echo "INFO: ARTIFACTS_CREDENTIAL_PROVIDER_RID variable set, defaulting to self-contained installation."
5555

5656
# If the RID is osx-*, use the zip file otherwise use the tar.gz file.
57+
# Self-contained builds use RID without .Net8 prefix (v2.0.0+)
5758
case ${ARTIFACTS_CREDENTIAL_PROVIDER_RID} in osx-*)
58-
FILE="Microsoft.Net8.${ARTIFACTS_CREDENTIAL_PROVIDER_RID}.NuGet.CredentialProvider.zip"
59+
FILE="Microsoft.${ARTIFACTS_CREDENTIAL_PROVIDER_RID}.NuGet.CredentialProvider.zip"
5960
;;
6061
*)
61-
FILE="Microsoft.Net8.${ARTIFACTS_CREDENTIAL_PROVIDER_RID}.NuGet.CredentialProvider.tar.gz"
62+
FILE="Microsoft.${ARTIFACTS_CREDENTIAL_PROVIDER_RID}.NuGet.CredentialProvider.tar.gz"
6263
;;
6364
esac
6465

@@ -89,15 +90,17 @@ elif [ ! -z ${USE_NET6_ARTIFACTS_CREDENTIAL_PROVIDER} ] && [ ${USE_NET6_ARTIFACT
8990
elif [ -z ${USE_NET8_ARTIFACTS_CREDENTIAL_PROVIDER} ] || [ ${USE_NET8_ARTIFACTS_CREDENTIAL_PROVIDER} != "false" ]; then
9091
if [ ! -z ${ARTIFACTS_CREDENTIAL_PROVIDER_NON_SC} ] && [ ${ARTIFACTS_CREDENTIAL_PROVIDER_NON_SC} != "false" ]; then
9192
# Default to the full zip file if ARTIFACTS_CREDENTIAL_PROVIDER_NON_SC is specified.
93+
# Runtime-dependent builds still use Net8 prefix
9294
FILE="Microsoft.Net8.NuGet.CredentialProvider.tar.gz"
9395
else
9496
# Get the correct runtime identifier for the self-contained version.
97+
# Self-contained builds use RID without .Net8 prefix (v2.0.0+)
9598
set_runtime_identifier
9699

97100
if [ ${RUNTIME_ID} == "osx-x64" ] || [ ${RUNTIME_ID} == "osx-arm64" ]; then
98-
FILE="Microsoft.Net8.${RUNTIME_ID}.NuGet.CredentialProvider.zip"
101+
FILE="Microsoft.${RUNTIME_ID}.NuGet.CredentialProvider.zip"
99102
else
100-
FILE="Microsoft.Net8.${RUNTIME_ID}.NuGet.CredentialProvider.tar.gz"
103+
FILE="Microsoft.${RUNTIME_ID}.NuGet.CredentialProvider.tar.gz"
101104
fi
102105
fi
103106

0 commit comments

Comments
 (0)