Skip to content

Commit

Permalink
Merge branch 'hotfix/0.28.1' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
patriksvensson committed Jun 18, 2018
2 parents de28ecc + 26e9214 commit 1da1ea2
Show file tree
Hide file tree
Showing 6 changed files with 47 additions and 29 deletions.
5 changes: 5 additions & 0 deletions ReleaseNotes.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
### New in 0.28.1 (Released 2018/06/18)

* 2176 Skipped tasks show up multiple times in report
* 2190 Suppress NuGet dependency warnings related to Cake.Core

### New in 0.28.0 (Released 2018/05/31)

* 2008 Allow defining a typed context to be used throughout a Cake script.
Expand Down
27 changes: 27 additions & 0 deletions src/Cake.Core.Tests/Unit/CakeEngineTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,33 @@ public async Task Should_Skip_Tasks_Where_Boolean_Criterias_Are_Not_Fulfilled()
Assert.Contains(fixture.Log.Entries, e => e.Message == "Skipping task: B");
}

[Fact]
public async Task Should_Only_Write_Single_Skipped_Entry_To_Report_If_Multiple_Boolean_Criterias_Evaluated_To_False()
{
// Given
var fixture = new CakeEngineFixture();
var engine = fixture.CreateEngine();
engine.RegisterTask("Default").IsDependentOn("A");
engine.RegisterTask("A")
.WithCriteria(() => false)
.WithCriteria(() => false, "Foo")
.WithCriteria(context => false)
.WithCriteria(context => false, "Bar")
.WithCriteria<string>((context, data) => false)
.WithCriteria<string>((context, data) => false, "Baz");

// When
var result = await engine.RunTargetAsync(fixture.Context, fixture.ExecutionStrategy, "Default");
var entries = result.ToList();

// Then
Assert.Equal(2, entries.Count);
Assert.Equal("A", entries[0].TaskName);
Assert.Equal(CakeTaskExecutionStatus.Skipped, entries[0].ExecutionStatus);
Assert.Equal("Default", entries[1].TaskName);
Assert.Equal(CakeTaskExecutionStatus.Delegated, entries[1].ExecutionStatus);
}

[Fact]
public async Task Should_Skip_Tasks_Where_Boolean_Criterias_Are_Not_Fulfilled_And_Write_Reason_To_Log()
{
Expand Down
1 change: 1 addition & 0 deletions src/Cake.Core/CakeEngine.cs
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,7 @@ public async Task<CakeReport> RunTargetAsync(ICakeContext context, IExecutionStr
{
SkipTask(context, strategy, task, report, criteria);
skipped = true;
break;
}
}

Expand Down
18 changes: 6 additions & 12 deletions src/Cake.NuGet/Install/NuGetFolderProject.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,10 @@

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Cake.Core.Configuration;
using Cake.Core.Diagnostics;
using Cake.Core.IO;
using Cake.NuGet.Install.Extensions;
using NuGet.Frameworks;
using NuGet.Packaging;
using NuGet.Packaging.Core;
Expand All @@ -26,7 +23,6 @@ internal sealed class NugetFolderProject : FolderNuGetProject
private readonly ISet<PackageIdentity> _installedPackages;
private readonly IFileSystem _fileSystem;
private readonly INuGetContentResolver _contentResolver;
private readonly ICakeConfiguration _config;
private readonly ICakeLog _log;
private readonly PackagePathResolver _pathResolver;

Expand All @@ -41,18 +37,17 @@ internal sealed class NugetFolderProject : FolderNuGetProject
public NugetFolderProject(
IFileSystem fileSystem,
INuGetContentResolver contentResolver,
ICakeConfiguration config,
ICakeLog log,
PackagePathResolver pathResolver,
string root,
NuGetFramework targetFramework) : base(root, pathResolver)
{
_fileSystem = fileSystem ?? throw new ArgumentNullException(nameof(fileSystem));
_contentResolver = contentResolver ?? throw new ArgumentNullException(nameof(contentResolver));
_config = config ?? throw new ArgumentNullException(nameof(config));
_log = log ?? throw new ArgumentNullException(nameof(log));
_pathResolver = pathResolver ?? throw new ArgumentNullException(nameof(pathResolver));
_installedPackages = new HashSet<PackageIdentity>();

TargetFramework = targetFramework ?? throw new ArgumentNullException(nameof(targetFramework));
InternalMetadata[NuGetProjectMetadataKeys.TargetFramework] = TargetFramework;
}
Expand All @@ -67,6 +62,7 @@ public override Task<bool> InstallPackageAsync(PackageIdentity packageIdentity,
_log.Debug("Package {0} has already been installed.", packageIdentity.ToString());
return Task.FromResult(true);
}

return base.InstallPackageAsync(packageIdentity, downloadResourceResult, nuGetProjectContext, token);
}

Expand All @@ -78,22 +74,20 @@ public IReadOnlyCollection<IFile> GetFiles(DirectoryPath directoryPath, PackageR
{
if (_blackListedPackages.Contains(installedPackage.Id))
{
_log.Warning("Package {0} depends on package {1}. Will not load this dependency...",
packageReference.Package, installedPackage.ToString());
const string format = "Package {0} depends on package {1}. This dependency won't be loaded.";
_log.Debug(format, packageReference.Package, installedPackage.ToString());
continue;
}

var installPath = new DirectoryPath(_pathResolver.GetInstallPath(installedPackage));

if (!_fileSystem.Exist(installPath))
{
_log.Warning("Package {0} is not installed.", installedPackage.Id);
continue;
}

// If the installed package is not the target package,
// create a new PackageReference which is passed to the content resolver.
// This makes logging make more sense.
// If the installed package is not the target package, create a new PackageReference
// which is passed to the content resolver. This makes logging make more sense.
var installedPackageReference = installedPackage.Id.Equals(packageReference.Package, StringComparison.OrdinalIgnoreCase) ?
packageReference :
new PackageReference($"nuget:?package={installedPackage.Id}");
Expand Down
19 changes: 5 additions & 14 deletions src/Cake.NuGet/Install/NuGetPackageInstaller.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Cake.Core;
using Cake.Core.Configuration;
using Cake.Core.Diagnostics;
Expand Down Expand Up @@ -69,18 +68,12 @@ public NuGetPackageInstaller(
_nugetLogger = new NuGetLogger(_log);

var nugetConfig = GetNuGetConfigPath(_environment, _config);

var nugetConfigDirectoryPath = nugetConfig.Item1;
var nugetConfigFilePath = nugetConfig.Item2;

if (nugetConfigFilePath != null)
{
_log.Debug($"Found NuGet.config at: {nugetConfigFilePath}");
}
else
{
_log.Debug("NuGet.config not found.");
}
_log.Debug(nugetConfigFilePath != null
? $"Found NuGet.config at: {nugetConfigFilePath}"
: "NuGet.config not found.");

_nugetSettings = Settings.LoadDefaultSettings(
nugetConfigDirectoryPath.FullPath,
Expand Down Expand Up @@ -114,7 +107,7 @@ public IReadOnlyCollection<IFile> Install(PackageReference package, PackageType
var targetFramework = type == PackageType.Addin ? _currentFramework : NuGetFramework.AnyFramework;
var sourceRepositoryProvider = new NuGetSourceRepositoryProvider(_nugetSettings, _config, package);
var pathResolver = new PackagePathResolver(packageRoot);
var project = new NugetFolderProject(_fileSystem, _contentResolver, _config, _log, pathResolver, packageRoot, targetFramework);
var project = new NugetFolderProject(_fileSystem, _contentResolver, _log, pathResolver, packageRoot, targetFramework);
var packageManager = new NuGetPackageManager(sourceRepositoryProvider, _nugetSettings, project.Root)
{
PackagesFolderNuGetProject = project
Expand Down Expand Up @@ -208,9 +201,7 @@ private static NuGetVersion GetNuGetVersion(PackageReference package, NuGetPacka

// Find the highest possible version
version = version ?? foundVersion;
if (foundVersion != null &&
version != null &&
foundVersion > version)
if (foundVersion != null && foundVersion > version)
{
version = foundVersion;
}
Expand Down
6 changes: 3 additions & 3 deletions src/SolutionInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
using System.Reflection;

[assembly: AssemblyProduct("Cake")]
[assembly: AssemblyVersion("0.28.0.0")]
[assembly: AssemblyFileVersion("0.28.0.0")]
[assembly: AssemblyInformationalVersion("0.28.0-beta.1+0.Branch.release/0.28.0.Sha.23688ed84195572aba78f4613c6667bcff3ee233")]
[assembly: AssemblyVersion("0.28.1.0")]
[assembly: AssemblyFileVersion("0.28.1.0")]
[assembly: AssemblyInformationalVersion("0.28.1-beta.1+4.Branch.hotfix/0.28.1.Sha.93fb5dc4f85859e1c01ab906019eb337df769cb3")]
[assembly: AssemblyCopyright("Copyright (c) .NET Foundation and Contributors")]

0 comments on commit 1da1ea2

Please sign in to comment.