Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Internal to External Port] Templating Nuget Config Changes, MSBuild #28548

Merged
merged 140 commits into from
Oct 13, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
140 commits
Select commit Hold shift + click to select a range
e8876d8
Merged PR 25327: [vNext Changes] Fix Temp Paths
nagilson Sep 13, 2022
111ae73
Merge in 'release/7.0.1xx' changes
dotnet-bot Sep 13, 2022
2ee0850
Merge in 'release/7.0.1xx' changes
dotnet-bot Sep 13, 2022
5168e81
Merge in 'release/7.0.1xx' changes
dotnet-bot Sep 13, 2022
e59dcb9
Merge in 'release/7.0.1xx' changes
dotnet-bot Sep 13, 2022
a383ce8
Merge in 'release/7.0.1xx' changes
dotnet-bot Sep 13, 2022
bdc4f70
Merge in 'release/7.0.1xx' changes
dotnet-bot Sep 13, 2022
9cf72da
Merge in 'release/7.0.1xx' changes
dotnet-bot Sep 13, 2022
72bcfa3
Merge in 'release/7.0.1xx' changes
dotnet-bot Sep 13, 2022
cf06a8e
Merge in 'release/7.0.1xx' changes
dotnet-bot Sep 13, 2022
6d3cd89
Merge in 'release/7.0.1xx' changes
dotnet-bot Sep 13, 2022
7ba5e5e
Merge in 'release/7.0.1xx' changes
dotnet-bot Sep 14, 2022
1c431c7
Merge in 'release/7.0.1xx' changes
dotnet-bot Sep 14, 2022
fab64f2
Merge in 'release/7.0.1xx' changes
dotnet-bot Sep 14, 2022
39096d6
Merge in 'release/7.0.1xx' changes
dotnet-bot Sep 14, 2022
7c56cf0
Merge in 'release/7.0.1xx' changes
dotnet-bot Sep 14, 2022
5fe8d4b
Merge in 'release/7.0.1xx' changes
dotnet-bot Sep 14, 2022
8add07b
Merge in 'release/7.0.1xx' changes
dotnet-bot Sep 14, 2022
8d86262
Merge in 'release/7.0.1xx' changes
dotnet-bot Sep 14, 2022
7e87bbf
Merge in 'release/7.0.1xx' changes
dotnet-bot Sep 14, 2022
adc6f02
Merge in 'release/7.0.1xx' changes
dotnet-bot Sep 14, 2022
f8e05db
Merge in 'release/7.0.1xx' changes
dotnet-bot Sep 14, 2022
3380057
Merge in 'release/7.0.1xx' changes
dotnet-bot Sep 14, 2022
7bf83fd
Update dependencies from https://github.com/dotnet/roslyn build 20220…
dotnet-maestro[bot] Sep 15, 2022
1987082
Update dependencies from https://github.com/dotnet/fsharp build 20220…
dotnet-maestro[bot] Sep 15, 2022
0cd2746
Merge pull request #27910 from dotnet/darc-release/7.0.1xx-rc2-50ebf9…
v-wuzhai Sep 15, 2022
8a1c169
Merge pull request #27907 from dotnet/darc-release/7.0.1xx-rc2-8e7515…
v-wuzhai Sep 15, 2022
6426172
Merge in 'release/7.0.1xx-rc2' changes
dotnet-bot Sep 15, 2022
f6ae411
post action for applying permissions for nuget.config in the template
vlada-shubina Sep 15, 2022
f5f4583
Update dependencies from https://github.com/dotnet/msbuild build 2022…
dotnet-maestro[bot] Sep 15, 2022
9daeb36
Update dependencies from https://github.com/nuget/nuget.client build …
dotnet-maestro[bot] Sep 15, 2022
ad1cd45
Update dependencies from https://github.com/dotnet/fsharp build 20220…
dotnet-maestro[bot] Sep 15, 2022
a950c36
Add HelixAccessToken for internal build
JanKrivanek Sep 15, 2022
13a8527
Merge pull request #27931 from dotnet/darc-release/7.0.1xx-rc2-1cfd56…
marcpopMSFT Sep 15, 2022
d0f4686
Merge pull request #27921 from dotnet/darc-release/7.0.1xx-rc2-9b3fc6…
marcpopMSFT Sep 15, 2022
c3679f3
Merge in 'release/7.0.1xx-rc2' changes
dotnet-bot Sep 15, 2022
b30397b
Update dependencies from https://github.com/dotnet/msbuild build 2022…
dotnet-maestro[bot] Sep 15, 2022
4827161
Downgrade ubuntu image
JanKrivanek Sep 15, 2022
0477e38
Expand existing warning to target 5.0
marcpopMSFT Sep 15, 2022
51c286b
Merge pull request #27939 from dotnet/darc-release/7.0.1xx-rc2-97789b…
marcpopMSFT Sep 15, 2022
c7d38a7
Merge pull request #27937 from dotnet/darc-release/7.0.1xx-rc2-26cfa3…
marcpopMSFT Sep 15, 2022
2c5aa83
Merge in 'release/7.0.1xx-rc2' changes
dotnet-bot Sep 15, 2022
9464881
Update dependencies from https://github.com/dotnet/fsharp build 20220…
dotnet-maestro[bot] Sep 15, 2022
e803f2b
Merge pull request #27948 from dotnet/darc-release/7.0.1xx-rc2-53cfd3…
v-wuzhai Sep 16, 2022
c31907a
Merge in 'release/7.0.1xx-rc2' changes
dotnet-bot Sep 16, 2022
70e5ecf
Merged PR 25813: post action for applying permissions for nuget.confi…
vlada-shubina Sep 16, 2022
564870b
Update dependencies from https://github.com/dotnet/msbuild build 2022…
dotnet-maestro[bot] Sep 16, 2022
d894b3b
Merge in 'release/7.0.1xx-rc2' changes
dotnet-bot Sep 16, 2022
175193a
Update dependencies from https://github.com/nuget/nuget.client build …
dotnet-maestro[bot] Sep 16, 2022
b1816f5
Merge pull request #27967 from dotnet/darc-release/7.0.1xx-rc2-de91e8…
v-wuzhai Sep 19, 2022
7759429
Merge in 'release/7.0.1xx-rc2' changes
dotnet-bot Sep 19, 2022
43f51a1
Also check runtime identifiers in asserts
nagilson Sep 19, 2022
08675b9
Update dependencies from https://github.com/dotnet/runtime build 2022…
dotnet-maestro[bot] Sep 19, 2022
2e791e6
Merge pull request #27942 from dotnet/marcpopMSFT-warnonoostargeting
marcpopMSFT Sep 19, 2022
cecab27
Merge pull request #28012 from dotnet/darc-release/7.0.1xx-rc2-8e7119…
marcpopMSFT Sep 19, 2022
0798089
Merge in 'release/7.0.1xx-rc2' changes
dotnet-bot Sep 19, 2022
e2f6608
Merge pull request #28005 from nagilson/nagilson-implicit-rid-patch
nagilson Sep 19, 2022
b14a12a
Merge in 'release/7.0.1xx-rc2' changes
dotnet-bot Sep 19, 2022
f3a83ff
Update dependencies from https://github.com/dotnet/runtime build 2022…
dotnet-maestro[bot] Sep 20, 2022
52ed307
Merge pull request #28020 from dotnet/darc-release/7.0.1xx-rc2-00f3db…
v-wuzhai Sep 20, 2022
965fdd9
Merge in 'release/7.0.1xx-rc2' changes
dotnet-bot Sep 20, 2022
68e47e3
Update dependencies from https://github.com/dotnet/windowsdesktop bui…
dotnet-maestro[bot] Sep 20, 2022
e7b880a
Merge in 'release/7.0.1xx-rc2' changes
dotnet-bot Sep 20, 2022
8db4879
Update dependencies from https://github.com/dotnet/roslyn build 20220…
dotnet-maestro[bot] Sep 20, 2022
b0d6f72
Update dependencies from https://github.com/dotnet/arcade build 20220…
dotnet-maestro[bot] Sep 20, 2022
59fa9ca
update NuGet version number to 6.4.0-preview.3.94
Sep 20, 2022
90f3d74
Update dependencies from https://github.com/dotnet/fsharp build 20220…
dotnet-maestro[bot] Sep 20, 2022
7666f77
Merged PR 26011: Insert nuget.client 6.4.0-preview.3.94 to dotnet sdk…
Sep 20, 2022
46d1c42
Update dependencies from https://dev.azure.com/dnceng/internal/_git/d…
dotnet-bot Sep 20, 2022
f855b73
Update dependencies from https://github.com/dotnet/windowsdesktop bui…
dotnet-maestro[bot] Sep 20, 2022
6694faa
Update dependencies from https://github.com/dotnet/windowsdesktop bui…
dotnet-maestro[bot] Sep 20, 2022
002ccaf
Update dependencies from https://github.com/dotnet/windowsdesktop bui…
dotnet-maestro[bot] Sep 20, 2022
450ea55
Update dependencies from https://github.com/dotnet/roslyn build 20220…
dotnet-maestro[bot] Sep 21, 2022
14e2173
Update dependencies from https://github.com/dotnet/windowsdesktop bui…
dotnet-maestro[bot] Sep 21, 2022
8f425da
Update dependencies from https://github.com/dotnet/roslyn build 20220…
dotnet-maestro[bot] Sep 21, 2022
bfe586c
Update dependencies from https://github.com/dotnet/windowsdesktop bui…
dotnet-maestro[bot] Sep 21, 2022
d09c597
Merge pull request #28051 from dotnet/darc-release/7.0.1xx-rc2-62f264…
v-wuzhai Sep 21, 2022
3a906f9
Merge in 'release/7.0.1xx-rc2' changes
dotnet-bot Sep 21, 2022
50f9bfe
Update dependencies from https://github.com/dotnet/roslyn build 20220…
dotnet-maestro[bot] Sep 21, 2022
9a9b3d1
[release/7.0.1xx-rc2] Update dependencies from microsoft/vstest (#28044)
nohwnd Sep 21, 2022
5dccbba
Merge pull request #28053 from dotnet/darc-release/7.0.1xx-rc2-bf4d7c…
v-wuzhai Sep 21, 2022
b32a90d
Merge in 'release/7.0.1xx-rc2' changes
dotnet-bot Sep 21, 2022
f946209
fixed nullable errors
vlada-shubina Sep 9, 2022
83603b6
Fix test to workaround CS8604 as .Empty doesn't appear to handle null…
marcpopMSFT Sep 13, 2022
6ef8e35
Manual bump to 6.0.8
TanayParikh Sep 15, 2022
52633b1
Create update-test-baselines.ps1
TanayParikh Sep 15, 2022
b971111
Update Assets baselines
v-wuzhai Sep 21, 2022
da00f12
Update dependencies from https://github.com/dotnet/roslyn build 20220…
dotnet-maestro[bot] Sep 21, 2022
f5bdaaa
Update dependencies from https://github.com/dotnet/razor-compiler bui…
dotnet-maestro[bot] Sep 21, 2022
01a2fb0
Update dependencies from https://github.com/dotnet/fsharp build 20220…
dotnet-maestro[bot] Sep 21, 2022
49d323f
Merge pull request #28082 from dotnet/darc-release/7.0.1xx-rc2-301e6f…
marcpopMSFT Sep 21, 2022
3b000b6
Merge pull request #28046 from dotnet/darc-release/7.0.1xx-rc2-c6c662…
marcpopMSFT Sep 21, 2022
7554fed
Merge in 'release/7.0.1xx-rc2' changes
dotnet-bot Sep 21, 2022
4f80caa
Merged PR 26024: [internal/release/7.0.1xx-rc2] Update dependencies f…
dotnet-bot Sep 21, 2022
581d0d9
Update dependencies from https://dev.azure.com/dnceng/internal/_git/d…
dotnet-bot Sep 21, 2022
efaf588
Update dependencies from https://github.com/dotnet/roslyn build 20220…
dotnet-maestro[bot] Sep 21, 2022
a5f6fca
MSBuild on .NET 7: Downgrade compile-time references (#28090)
rainersigwald Sep 21, 2022
e566557
Merge in 'release/7.0.1xx-rc2' changes
dotnet-bot Sep 21, 2022
b833208
Merge pull request #28087 from dotnet/darc-release/7.0.1xx-rc2-5879da…
marcpopMSFT Sep 21, 2022
877fb92
Merge in 'release/7.0.1xx-rc2' changes
dotnet-bot Sep 21, 2022
65eb37a
Gate warnings for localization asset locales on TFM >= 7 (#28060)
baronfel Sep 21, 2022
eb68df4
[release/7.0.1xx-rc2] Update dependencies from dotnet/templating (#28…
dotnet-maestro[bot] Sep 21, 2022
cca7e23
Update dependencies from https://github.com/dotnet/roslyn build 20220…
dotnet-maestro[bot] Sep 21, 2022
8c7bec7
Merge in 'release/7.0.1xx-rc2' changes
dotnet-bot Sep 21, 2022
57829d9
Update dependencies from https://dev.azure.com/dnceng/internal/_git/d…
dotnet-bot Sep 21, 2022
4407e86
Update dependencies from https://github.com/dotnet/fsharp build 20220…
dotnet-maestro[bot] Sep 22, 2022
80efe46
Update dependencies from https://github.com/dotnet/roslyn build 20220…
dotnet-maestro[bot] Sep 22, 2022
5f8fb0e
Merge pull request #28097 from dotnet/darc-release/7.0.1xx-rc2-0904c2…
dsplaisted Sep 22, 2022
f3f2fb4
Merge in 'release/7.0.1xx-rc2' changes
dotnet-bot Sep 22, 2022
855df7c
Update dependencies from https://github.com/dotnet/roslyn build 20220…
dotnet-maestro[bot] Sep 22, 2022
aeb8d99
Update dependencies from https://github.com/dotnet/windowsdesktop bui…
dotnet-maestro[bot] Sep 22, 2022
95ed2ef
Merge pull request #28100 from dotnet/darc-release/7.0.1xx-rc2-0a1333…
v-wuzhai Sep 22, 2022
ca7646e
Merge branch 'release/7.0.1xx-rc2' of https://github.com/dotnet/sdk i…
v-wuzhai Sep 22, 2022
ca06763
Fix test issues
jaredpar Sep 22, 2022
50de3ad
Fixup
jaredpar Sep 22, 2022
f9178e0
Fix test assumptions about a single namespace in APICompat
ViktorHofer Sep 22, 2022
3051312
Update dependencies from https://github.com/dotnet/roslyn build 20220…
dotnet-maestro[bot] Sep 22, 2022
08f11c5
[release/7.0.1xx-rc2] Update dependencies from dotnet/runtime (#28056)
dotnet-maestro[bot] Sep 22, 2022
c998bd7
Merged PR 25954: [internal/release/7.0.1xx-rc2] Update dependencies f…
dotnet-bot Sep 22, 2022
1d58fa3
Merge in 'release/7.0.1xx-rc2' changes
dotnet-bot Sep 22, 2022
d1f92db
Update dependencies from https://github.com/dotnet/roslyn build 20220…
dotnet-maestro[bot] Sep 22, 2022
da953ed
Merged PR 26091: [internal/release/7.0.1xx-rc2] Update dependencies f…
dotnet-bot Sep 22, 2022
4960620
Merge pull request #28045 from dotnet/darc-release/7.0.1xx-rc2-652605…
marcpopMSFT Sep 22, 2022
7e371e0
Merge in 'release/7.0.1xx-rc2' changes
dotnet-bot Sep 22, 2022
5757c00
Fix Property Parsing in Publish (#28059)
nagilson Sep 22, 2022
d0e1389
Merge in 'release/7.0.1xx-rc2' changes
dotnet-bot Sep 22, 2022
f37556f
Update dependencies from https://github.com/dotnet/runtime build 2022…
dotnet-maestro[bot] Sep 23, 2022
e6c45b7
Update dependencies from https://github.com/dotnet/windowsdesktop bui…
dotnet-maestro[bot] Sep 23, 2022
4ae4d4f
Update dependencies from https://github.com/dotnet/windowsdesktop bui…
dotnet-maestro[bot] Sep 23, 2022
7311a59
Update dependencies from https://github.com/dotnet/templating build 2…
dotnet-maestro[bot] Sep 23, 2022
d41dac7
Update dependencies from https://github.com/dotnet/fsharp build 20220…
dotnet-maestro[bot] Sep 23, 2022
94b4be6
Merge pull request #28120 from dotnet/darc-release/7.0.1xx-rc2-dc5289…
marcpopMSFT Sep 23, 2022
97b8315
Merge pull request #28124 from dotnet/darc-release/7.0.1xx-rc2-bdb2f6…
marcpopMSFT Sep 23, 2022
1b29803
Merge pull request #28122 from dotnet/darc-release/7.0.1xx-rc2-db4b9c…
marcpopMSFT Sep 23, 2022
d3ed9b6
Merge pull request #28137 from dotnet/darc-release/7.0.1xx-rc2-0686be…
marcpopMSFT Sep 23, 2022
b6d721a
Merge in 'release/7.0.1xx-rc2' changes
dotnet-bot Sep 23, 2022
b506314
Merged PR 26141: [internal/release/7.0.1xx-rc2] Update dependencies f…
dotnet-bot Sep 26, 2022
7ef3585
Merge remote-tracking branch 'primary/release/7.0.1xx' into HEAD
nagilson Oct 13, 2022
e738cad
Dont downgrade ubuntu
nagilson Oct 13, 2022
76edff1
Merge remote-tracking branch 'primary/release/7.0.1xx' into nagilson-…
nagilson Oct 13, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
using FluentAssertions;
using Microsoft.Build.Framework;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
Expand Down Expand Up @@ -117,15 +116,11 @@ public void It_does_not_error_on_duplicate_package_names()
new CacheWriter(task); // Should not error
}

[Fact]
public void It_warns_on_invalid_culture_codes_of_resources()
{
string projectAssetsJsonPath = Path.GetTempFileName();
var assetsContent = @"
private static string AssetsFileWithInvalidLocale(string tfm, string locale) => @"
{
`version`: 3,
`targets`: {
`net7.0`: {
`{tfm}`: {
`JavaScriptEngineSwitcher.Core/3.3.0`: {
`type`: `package`,
`compile`: {
Expand All @@ -136,59 +131,65 @@ public void It_warns_on_invalid_culture_codes_of_resources()
},
`resource`: {
`lib/netstandard2.0/ru-ru/JavaScriptEngineSwitcher.Core.resources.dll`: {
`locale`: `what is this even`
`locale`: `{locale}`
}
}
}
}
},
`project`: {
`version`: `1.0.0`,
`frameworks`: {
`{tfm}`: {
`targetAlias`: `{tfm}`
}
}
}
}".Replace("`", "\"");
}".Replace("`", "\"").Replace("{tfm}", tfm).Replace("{locale}", locale);

[InlineData("net7.0", true)]
[InlineData("net6.0", false)]
[Theory]
public void It_warns_on_invalid_culture_codes_of_resources(string tfm, bool shouldHaveWarnings)
{
string projectAssetsJsonPath = Path.GetTempFileName();
var assetsContent = AssetsFileWithInvalidLocale(tfm, "what is this even");
File.WriteAllText(projectAssetsJsonPath, assetsContent);
var task = InitializeTask(out _);
task.ProjectAssetsFile = projectAssetsJsonPath;
task.TargetFramework = "net7.0";
var writer = new CacheWriter(task);
writer.WriteToCacheFile();
var messages = (task.BuildEngine as MockBuildEngine).Warnings;
var invalidContextMessages = messages.Where(msg => msg.Code == "NETSDK1188");
invalidContextMessages.Should().HaveCount(1);
task.TargetFramework = tfm;
var writer = new CacheWriter(task, new MockPackageResolver());
writer.WriteToMemoryStream();
var engine = task.BuildEngine as MockBuildEngine;

var invalidContextWarnings = engine.Warnings.Where(msg => msg.Code == "NETSDK1188");
invalidContextWarnings.Should().HaveCount(shouldHaveWarnings ? 1 : 0);

var invalidContextMessages = engine.Messages.Where(msg => msg.Code == "NETSDK1188");
invalidContextMessages.Should().HaveCount(shouldHaveWarnings ? 0 : 1);

}

[Fact]
public void It_warns_on_incorrectly_cased_culture_codes_of_resources()

[InlineData("net7.0", true)]
[InlineData("net6.0", false)]
[Theory]
public void It_warns_on_incorrectly_cased_culture_codes_of_resources(string tfm, bool shouldHaveWarnings)
{
string projectAssetsJsonPath = Path.GetTempFileName();
var assetsContent = @"
{
`version`: 3,
`targets`: {
`net7.0`: {
`JavaScriptEngineSwitcher.Core/3.3.0`: {
`type`: `package`,
`compile`: {
`lib/netstandard2.0/JavaScriptEngineSwitcher.Core.dll`: {}
},
`runtime`: {
`lib/netstandard2.0/JavaScriptEngineSwitcher.Core.dll`: {}
},
`resource`: {
`lib/netstandard2.0/ru-ru/JavaScriptEngineSwitcher.Core.resources.dll`: {
`locale`: `ru-ru`
}
}
}
}
}
}".Replace("`", "\"");
var assetsContent = AssetsFileWithInvalidLocale(tfm, "ru-ru");
File.WriteAllText(projectAssetsJsonPath, assetsContent);
var task = InitializeTask(out _);
task.ProjectAssetsFile = projectAssetsJsonPath;
task.TargetFramework = "net7.0";
var writer = new CacheWriter(task);
writer.WriteToCacheFile();
var messages = (task.BuildEngine as MockBuildEngine).Warnings;
var invalidContextMessages = messages.Where(msg => msg.Code == "NETSDK1187");
invalidContextMessages.Should().HaveCount(1);
task.TargetFramework = tfm;
var writer = new CacheWriter(task, new MockPackageResolver());
writer.WriteToMemoryStream();
var engine = task.BuildEngine as MockBuildEngine;

var invalidContextWarnings = engine.Warnings.Where(msg => msg.Code == "NETSDK1187");
invalidContextWarnings.Should().HaveCount(shouldHaveWarnings ? 1 : 0);

var invalidContextMessages = engine.Messages.Where(msg => msg.Code == "NETSDK1187");
invalidContextMessages.Should().HaveCount(shouldHaveWarnings ? 0 : 1);
}

private ResolvePackageAssets InitializeTask(out IEnumerable<PropertyInfo> inputProperties)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// Copyright (c) .NET Foundation and contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NuGet.ProjectModel;
using NuGet.Versioning;
using System.IO;

Expand All @@ -24,5 +25,7 @@ public string GetPackageDirectory(string packageId, NuGetVersion version, out st
packageRoot = _root;
return Path.Combine(_root, packageId, version.ToNormalizedString(), "path");
}

public string ResolvePackageAssetPath(LockFileTargetLibrary package, string relativePath) => Path.Combine(GetPackageDirectory(package.Name, package.Version), relativePath);
}
}
}
2 changes: 2 additions & 0 deletions src/Tasks/Microsoft.NET.Build.Tasks/IPackageResolver.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
// Copyright (c) .NET Foundation and contributors. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NuGet.ProjectModel;
using NuGet.Versioning;

namespace Microsoft.NET.Build.Tasks
Expand All @@ -9,5 +10,6 @@ internal interface IPackageResolver
{
string GetPackageDirectory(string packageId, NuGetVersion version);
string GetPackageDirectory(string packageId, NuGetVersion version, out string packageRoot);
string ResolvePackageAssetPath(LockFileTargetLibrary package, string relativePath);
}
}
33 changes: 29 additions & 4 deletions src/Tasks/Microsoft.NET.Build.Tasks/ResolvePackageAssets.cs
Original file line number Diff line number Diff line change
Expand Up @@ -657,8 +657,8 @@ internal sealed class CacheWriter : IDisposable
private ResolvePackageAssets _task;
private BinaryWriter _writer;
private LockFile _lockFile;
private NuGetPackageResolver _packageResolver;
private LockFileTarget _compileTimeTarget;
private IPackageResolver _packageResolver;
private LockFileTarget _runtimeTarget;
private Dictionary<string, int> _stringTable;
private List<string> _metadataStrings;
Expand All @@ -677,6 +677,15 @@ internal sealed class CacheWriter : IDisposable

private const char RelatedPropertySeparator = ';';

/// <summary>
/// This constructor should only be used for testing - IPackgeResolver carries a lot of
/// state so using mocks really help with testing this component.
/// </summary>
public CacheWriter(ResolvePackageAssets task, IPackageResolver resolver) : this(task)
{
_packageResolver = resolver;
}

public CacheWriter(ResolvePackageAssets task)
{
_targetFramework = task.TargetFramework;
Expand Down Expand Up @@ -1425,14 +1434,30 @@ private void WriteResourceAssemblies()
var normalizedLocale = System.Globalization.CultureInfo.GetCultureInfo(locale).Name;
if (normalizedLocale != locale)
{
_task.Log.LogWarning(Strings.PackageContainsIncorrectlyCasedLocale, package.Name, package.Version.ToNormalizedString(), locale, normalizedLocale);
var tfm = _lockFile.GetTargetAndThrowIfNotFound(_targetFramework, null).TargetFramework;
if (tfm.Version.Major >= 7)
{
_task.Log.LogWarning(Strings.PackageContainsIncorrectlyCasedLocale, package.Name, package.Version.ToNormalizedString(), locale, normalizedLocale);
}
else
{
_task.Log.LogMessage(Strings.PackageContainsIncorrectlyCasedLocale, package.Name, package.Version.ToNormalizedString(), locale, normalizedLocale);
}
}
locale = normalizedLocale;
}
catch (System.Globalization.CultureNotFoundException cnf)
{
_task.Log.LogWarning(Strings.PackageContainsUnknownLocale, package.Name, package.Version.ToNormalizedString(), cnf.InvalidCultureName);
// We could potentially strip this unknown locales at this point, but we do not.
var tfm = _lockFile.GetTargetAndThrowIfNotFound(_targetFramework, null).TargetFramework;
if (tfm.Version.Major >= 7)
{
_task.Log.LogWarning(Strings.PackageContainsUnknownLocale, package.Name, package.Version.ToNormalizedString(), cnf.InvalidCultureName);
} else
{
_task.Log.LogMessage(Strings.PackageContainsUnknownLocale, package.Name, package.Version.ToNormalizedString(), cnf.InvalidCultureName);
}

// We could potentially strip this unknown locale at this point, but we do not.
// Locale data can change over time (it's typically an OS database that's kept updated),
// and the data on the system running the build may not be the same data as
// the system executing the built code. So we should be permissive for this case.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ Copyright (c) .NET Foundation. All rights reserved.
receive servicing updates and security fixes.
-->
<ItemGroup>
<_EolNetCoreTargetFrameworkVersions Include="1.0;1.1;2.0;2.1;2.2;3.0" />
<_EolNetCoreTargetFrameworkVersions Include="1.0;1.1;2.0;2.1;2.2;3.0;5.0" />
</ItemGroup>

<Target Name="_CheckForEolTargetFrameworks" AfterTargets="_CheckForUnsupportedNETCoreVersion"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ public GivenThatWeWantToTargetEolFrameworks(ITestOutputHelper log) : base(log)
[InlineData("netcoreapp1.0")]
[InlineData("netcoreapp3.0")]
[InlineData("netcoreapp2.1")]
[InlineData("net5.0")]
public void It_warns_that_framework_is_out_of_support(string targetFrameworks)
{
var testProject = new TestProject()
Expand Down
46 changes: 45 additions & 1 deletion src/Tests/dotnet-new.Tests/CommonTemplatesTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,14 @@
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//

using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Text.RegularExpressions;
using System.Xml.Linq;
using Microsoft.DotNet.Cli.Utils;
using Microsoft.NET.TestFramework.Assertions;
using Microsoft.NET.TestFramework.Commands;
using Microsoft.TemplateEngine.TestHelper;
using Xunit.Abstractions;

namespace Microsoft.DotNet.Cli.New.IntegrationTests
Expand Down Expand Up @@ -191,7 +194,7 @@ public void AllCommonItemsCreate(string expectedTemplateName, string templateSho
.Should()
.ExitWith(0)
.And.NotHaveStdErr()
.And.HaveStdOut($@"The template ""{expectedTemplateName}"" was created successfully.");
.And.HaveStdOutContaining($@"The template ""{expectedTemplateName}"" was created successfully.");

Directory.Delete(workingDir, true);
}
Expand Down Expand Up @@ -274,6 +277,47 @@ public void GlobalJsonTests(string expectedContent, params string[] parameters)
Directory.Delete(workingDir, true);
}

[Fact]
public void NuGetConfigPermissions()
{
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
{
//runs only on Unix
return;
}

string templateShortName = "nugetconfig";
string expectedTemplateName = "NuGet Config";
string workingDir = TestUtils.CreateTemporaryFolder();

new DotnetNewCommand(_log, templateShortName)
.WithCustomHive(_fixture.HomeDirectory)
.WithWorkingDirectory(workingDir)
.Execute()
.Should()
.ExitWith(0)
.And.NotHaveStdErr()
.And.HaveStdOutContaining($@"The template ""{expectedTemplateName}"" was created successfully.");

var process = Process.Start(new ProcessStartInfo()
{
FileName = "/bin/sh",
Arguments = "-c \"ls -la\"",
WorkingDirectory = workingDir
});

new Command(process)
.WorkingDirectory(workingDir)
.CaptureStdOut()
.CaptureStdErr()
.Execute()
.Should()
.ExitWith(0)
.And.HaveStdOutMatching("^-rw-------.*nuget.config$", RegexOptions.Multiline);

Directory.Delete(workingDir, true);
}

#region Project templates language features tests

/// <summary>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
{
{
"author": "Microsoft",
"name": "Konfigurace NuGet",
"description": "Soubor pro konfiguraci umístění, ve kterých bude NuGet hledat balíčky",
"postActions/chmod/description": "Apply permissions",
"postActions/chmod/manualInstructions/default/text": "Run 'chmod 600 nuget.config'",
"postActions/open-file/description": "Otevře nuget.config v editoru."
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
{
{
"author": "Microsoft",
"name": "NuGet-Konfig.",
"description": "Eine Datei zum Konfigurieren der Speicherorte, in denen NuGet nach Paketen suchen wird",
"postActions/chmod/description": "Apply permissions",
"postActions/chmod/manualInstructions/default/text": "Run 'chmod 600 nuget.config'",
"postActions/open-file/description": "Öffnet „nuget.config“ im Editor"
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,7 @@
"author": "Microsoft",
"name": "NuGet Config",
"description": "A file for configuring the locations NuGet will search for packages",
"postActions/chmod/description": "Apply permissions",
"postActions/chmod/manualInstructions/default/text": "Run 'chmod 600 nuget.config'",
"postActions/open-file/description": "Opens nuget.config in the editor"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
{
{
"author": "Microsoft",
"name": "Configuración de NuGet",
"description": "Un archivo para configurar las ubicaciones en las que NuGet buscará paquetes",
"postActions/chmod/description": "Apply permissions",
"postActions/chmod/manualInstructions/default/text": "Run 'chmod 600 nuget.config'",
"postActions/open-file/description": "Abre nuget.config en el editor"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
{
{
"author": "Microsoft",
"name": "Configuration NuGet",
"description": "Un fichier permettant de configurer les emplacements où NuGet recherche des packages",
"postActions/chmod/description": "Apply permissions",
"postActions/chmod/manualInstructions/default/text": "Run 'chmod 600 nuget.config'",
"postActions/open-file/description": "Ouvre nuget.config dans l’éditeur"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
{
{
"author": "Microsoft",
"name": "Configurazione NuGet",
"description": "Un file per la configurazione del NuGet dei percorsi eseguirà la ricerca dei pacchetti",
"postActions/chmod/description": "Apply permissions",
"postActions/chmod/manualInstructions/default/text": "Run 'chmod 600 nuget.config'",
"postActions/open-file/description": "Apre nuget.config nell'editor"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
{
{
"author": "Microsoft",
"name": "NuGet Config",
"description": "NuGet がパッケージが検索する場所を構成するためのファイル",
"postActions/chmod/description": "Apply permissions",
"postActions/chmod/manualInstructions/default/text": "Run 'chmod 600 nuget.config'",
"postActions/open-file/description": "エディターで nuget.config を開く"
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
{
{
"author": "Microsoft",
"name": "NuGet 구성",
"description": "NuGet 패키지를 검색할 위치를 구성하는 파일",
"postActions/chmod/description": "Apply permissions",
"postActions/chmod/manualInstructions/default/text": "Run 'chmod 600 nuget.config'",
"postActions/open-file/description": "편집기에서 nuget.config를 엽니다"
}
Loading