diff --git a/CHANGELOG.md b/CHANGELOG.md
index cbd4ff4c8..5dfca1c92 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,6 +6,15 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
## [vNext]
+## [8.1.3] / 2024-11-05
+- Fixed naming from `NukeBuild.IsSucessful` to `IsSucceeding`
+- Fixed `NukeBuild.IsSucceeding` to negate `IsFailing`
+- Fixed NJsonSchema reference version
+- Fixed `:secrets` command to find secret parameters
+- Fixed argument format in `DotNetTasks`
+- Fixed definite argument in `EntityFrameworkTasks`
+- Fixed deprecated argument in `MinVerTasks`
+
## [8.1.2] / 2024-10-13
- Fixed exclusion of skipped target from lookup for skippable dependencies
- Fixed resolution of empty environment variables to false
@@ -1162,7 +1171,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
- Added CLT tasks for Git
- Fixed background color in console output
-[vNext]: https://github.com/nuke-build/nuke/compare/8.1.2...HEAD
+[vNext]: https://github.com/nuke-build/nuke/compare/8.1.3...HEAD
+[8.1.3]: https://github.com/nuke-build/nuke/compare/8.1.2...8.1.3
[8.1.2]: https://github.com/nuke-build/nuke/compare/8.1.1...8.1.2
[8.1.1]: https://github.com/nuke-build/nuke/compare/8.1.0...8.1.1
[8.1.0]: https://github.com/nuke-build/nuke/compare/8.0.0...8.1.0
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 2fa67976d..aa0bd6413 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -5,23 +5,24 @@
-
-
-
-
-
+
+
+
+
+
-
+
-
+
-
+
+
-
+
@@ -37,24 +38,24 @@
-
+
-
+
-
-
+
+
-
-
-
-
-
+
+
+
+
+
diff --git a/source/Nuke.Build.Shared/CompletionUtility.cs b/source/Nuke.Build.Shared/CompletionUtility.cs
index edaaaca26..a210358a4 100644
--- a/source/Nuke.Build.Shared/CompletionUtility.cs
+++ b/source/Nuke.Build.Shared/CompletionUtility.cs
@@ -14,14 +14,21 @@ namespace Nuke.Common.Utilities;
public static class CompletionUtility
{
- public static IReadOnlyDictionary GetItemsFromSchema(AbsolutePath schemaFile, IEnumerable profileNames)
+ public static IReadOnlyDictionary GetItemsFromSchema(
+ AbsolutePath schemaFile,
+ IEnumerable profileNames = null,
+ Func filter = null)
{
var schema = JsonDocument.Parse(schemaFile.ReadAllText());
- return GetItemsFromSchema(schema, profileNames);
+ return GetItemsFromSchema(schema, profileNames, filter);
}
- public static IReadOnlyDictionary GetItemsFromSchema(JsonDocument schema, IEnumerable profileNames)
+ public static IReadOnlyDictionary GetItemsFromSchema(
+ JsonDocument schema,
+ IEnumerable profileNames = null,
+ Func filter = null)
{
+ filter ??= _ => true;
var definitions = schema.RootElement.GetProperty("definitions").EnumerateObject().ToDictionary(x => x.Name, x => x);
var parameterProperties = schema.RootElement.GetProperty("definitions").TryGetProperty("NukeBuild", out var nukebuildProperty)
@@ -30,19 +37,22 @@ public static IReadOnlyDictionary GetItemsFromSchema(JsonDocum
: definitions["build"].Value.GetProperty("properties").EnumerateObject();
return parameterProperties
+ .Where(filter)
.Select(x => (x.Name, Values: GetValues(x)))
.Where(x => x.Values != null)
- .ToDictionary(x => x.Name, x => x.Values)
- .SetKeyValue(Constants.LoadedLocalProfilesParameterName, profileNames.ToArray()).AsReadOnly();
+ .ToDictionary(x => x.Name, x => x.Values).AsReadOnly();
string[] GetValues(JsonProperty property)
{
+ if (property.Name == Constants.LoadedLocalProfilesParameterName)
+ return profileNames.ToArray();
+
if (property.Value.TryGetProperty("type", out var typeProperty))
{
var types = typeProperty.ValueKind != JsonValueKind.Array
? [typeProperty.GetString()]
: typeProperty.EnumerateArray().Select(x => x.GetString()).ToArray();
- if (types.ContainsAnyOrdinalIgnoreCase(["string", "boolean", "integer"]))
+ if (types.ContainsAnyOrdinalIgnoreCase("string", "boolean", "integer"))
{
return property.Value.TryGetProperty("enum", out var enumProperty)
? enumProperty.EnumerateArray().Select(x => x.GetString()).ToArray()
diff --git a/source/Nuke.Build/Execution/BuildManager.cs b/source/Nuke.Build/Execution/BuildManager.cs
index cd74bd03f..904f5baab 100644
--- a/source/Nuke.Build/Execution/BuildManager.cs
+++ b/source/Nuke.Build/Execution/BuildManager.cs
@@ -75,7 +75,7 @@ public static int Execute(Expression>[] defaultTargetExpressi
build,
ParameterService.GetParameter(() => build.SkippedTargets));
- return build.ExitCode ??= build.IsSuccessful ? 0 : ErrorExitCode;
+ return build.ExitCode ??= build.IsSucceeding ? 0 : ErrorExitCode;
}
catch (Exception exception)
{
diff --git a/source/Nuke.Build/Host.cs b/source/Nuke.Build/Host.cs
index 044b01f43..f0570ab00 100644
--- a/source/Nuke.Build/Host.cs
+++ b/source/Nuke.Build/Host.cs
@@ -163,7 +163,7 @@ static string GetInformation(ExecutableTarget target)
protected internal virtual void WriteBuildOutcome(INukeBuild build)
{
Debug();
- if (build.IsSuccessful)
+ if (build.IsSucceeding)
Success($"Build succeeded on {DateTime.Now.ToString(CultureInfo.CurrentCulture)}. \(^ᴗ^)/");
else
Error($"Build failed on {DateTime.Now.ToString(CultureInfo.CurrentCulture)}. (╯°□°)╯︵ ┻━┻");
diff --git a/source/Nuke.Build/INukeBuild.cs b/source/Nuke.Build/INukeBuild.cs
index e1000b8e6..9ce70beed 100644
--- a/source/Nuke.Build/INukeBuild.cs
+++ b/source/Nuke.Build/INukeBuild.cs
@@ -35,7 +35,7 @@ public interface INukeBuild
IReadOnlyCollection SucceededTargets { get; }
IReadOnlyCollection FinishedTargets { get; }
- bool IsSuccessful { get; }
+ bool IsSucceeding { get; }
bool IsFailing { get; }
bool IsFinished { get; }
int? ExitCode { get; set; }
diff --git a/source/Nuke.Build/Nuke.Build.csproj b/source/Nuke.Build/Nuke.Build.csproj
index 94c5801ed..38bf36e3a 100644
--- a/source/Nuke.Build/Nuke.Build.csproj
+++ b/source/Nuke.Build/Nuke.Build.csproj
@@ -20,6 +20,7 @@
+
diff --git a/source/Nuke.Build/NukeBuild.cs b/source/Nuke.Build/NukeBuild.cs
index 91e2a4038..ca9d3fcc4 100644
--- a/source/Nuke.Build/NukeBuild.cs
+++ b/source/Nuke.Build/NukeBuild.cs
@@ -184,10 +184,7 @@ protected static int Execute(params Expression>[] defaultTarg
internal IEnumerable TargetNames => ExecutableTargetFactory.GetTargetProperties(GetType()).Select(x => x.GetDisplayShortName());
internal IEnumerable HostNames => Host.AvailableTypes.Select(x => x.Name);
- public bool IsSuccessful => ExecutionPlan.All(x => x.Status is
- ExecutionStatus.Succeeded or
- ExecutionStatus.Skipped or
- ExecutionStatus.Collective);
+ public bool IsSucceeding => !IsFailing;
public bool IsFailing => ExecutionPlan.Any(x => x.Status is
ExecutionStatus.Failed or
diff --git a/source/Nuke.Build/Utilities/SchemaUtility.cs b/source/Nuke.Build/Utilities/SchemaUtility.cs
index b5a7acbbf..6ad75e1b9 100644
--- a/source/Nuke.Build/Utilities/SchemaUtility.cs
+++ b/source/Nuke.Build/Utilities/SchemaUtility.cs
@@ -13,6 +13,7 @@
using Newtonsoft.Json.Serialization;
using NJsonSchema;
using NJsonSchema.Generation;
+using NJsonSchema.NewtonsoftJson.Generation;
using NuGet.Packaging;
using Nuke.Common.Utilities;
using Nuke.Common.ValueInjection;
@@ -38,7 +39,7 @@ public static JsonSchema Generate(T build) where T : INukeBuild
{
return new SchemaGenerator(
build,
- new JsonSchemaGeneratorSettings
+ new NewtonsoftJsonSchemaGeneratorSettings
{
FlattenInheritanceHierarchy = true,
SerializerSettings =
diff --git a/source/Nuke.Common/Tools/DotNet/DotNet.Generated.cs b/source/Nuke.Common/Tools/DotNet/DotNet.Generated.cs
index ef3aac717..ee4ae103e 100644
--- a/source/Nuke.Common/Tools/DotNet/DotNet.Generated.cs
+++ b/source/Nuke.Common/Tools/DotNet/DotNet.Generated.cs
@@ -205,12 +205,15 @@ public static IReadOnlyCollection
///
/// - -- via
+ /// - --arch via
/// - --configuration via
+ /// - --disable-build-servers via
/// - --disable-parallel via
/// - --force via
/// - --force-evaluate via
/// - --framework via
/// - --ignore-failed-sources via
+ /// - --interactive via
/// - --launch-profile via
/// - --lock-file-path via
/// - --locked-mode via
@@ -219,12 +222,16 @@ public static IReadOnlyCollection
///
public static IReadOnlyCollection