diff --git a/DecSm.Atom.Analyzers.Tests/DecSm.Atom.Analyzers.Tests.csproj b/DecSm.Atom.Analyzers.Tests/DecSm.Atom.Analyzers.Tests.csproj
index b343e7dd..730d5cc6 100644
--- a/DecSm.Atom.Analyzers.Tests/DecSm.Atom.Analyzers.Tests.csproj
+++ b/DecSm.Atom.Analyzers.Tests/DecSm.Atom.Analyzers.Tests.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/DecSm.Atom.Module.AzureStorage/AzureBlobArtifactProvider.cs b/DecSm.Atom.Module.AzureStorage/AzureBlobArtifactProvider.cs
index 154a5afb..14f5686f 100644
--- a/DecSm.Atom.Module.AzureStorage/AzureBlobArtifactProvider.cs
+++ b/DecSm.Atom.Module.AzureStorage/AzureBlobArtifactProvider.cs
@@ -209,7 +209,7 @@ public async Task RetrieveArtifacts(
{
Prefix = artifactBlobDir,
},
- cancellationToken: cancellationToken);
+ cancellationToken);
await foreach (var blobItem in blobs)
{
@@ -272,7 +272,7 @@ public async Task Cleanup(IReadOnlyList runIdentifiers, CancellationToke
{
Prefix = $"{buildName}/{buildIdPath}/",
},
- cancellationToken: cancellationToken);
+ cancellationToken);
await foreach (var blob in blobs)
{
@@ -324,7 +324,7 @@ public async Task> GetStoredRunIdentifiers(
{
Prefix = $"{buildName}/",
},
- cancellationToken: cancellationToken);
+ cancellationToken);
var buildIds = new List();
diff --git a/DecSm.Atom.Module.DevopsWorkflows.Tests/DecSm.Atom.Module.DevopsWorkflows.Tests.csproj b/DecSm.Atom.Module.DevopsWorkflows.Tests/DecSm.Atom.Module.DevopsWorkflows.Tests.csproj
index fa7950cc..73670abb 100644
--- a/DecSm.Atom.Module.DevopsWorkflows.Tests/DecSm.Atom.Module.DevopsWorkflows.Tests.csproj
+++ b/DecSm.Atom.Module.DevopsWorkflows.Tests/DecSm.Atom.Module.DevopsWorkflows.Tests.csproj
@@ -13,13 +13,13 @@
-
+
-
+
-
+
diff --git a/DecSm.Atom.Module.GitVersion/IGitVersion.cs b/DecSm.Atom.Module.GitVersion/IGitVersion.cs
index 8fe0e7aa..c998df7a 100644
--- a/DecSm.Atom.Module.GitVersion/IGitVersion.cs
+++ b/DecSm.Atom.Module.GitVersion/IGitVersion.cs
@@ -8,6 +8,7 @@
/// GitVersion for generating build IDs and version numbers, ensuring consistent and
/// semantically versioned builds based on your Git history.
///
+[PublicAPI]
[ConfigureHostBuilder]
public partial interface IGitVersion
{
diff --git a/DecSm.Atom.Module.GithubWorkflows.Tests/DecSm.Atom.Module.GithubWorkflows.Tests.csproj b/DecSm.Atom.Module.GithubWorkflows.Tests/DecSm.Atom.Module.GithubWorkflows.Tests.csproj
index 5d789b75..c81c5307 100644
--- a/DecSm.Atom.Module.GithubWorkflows.Tests/DecSm.Atom.Module.GithubWorkflows.Tests.csproj
+++ b/DecSm.Atom.Module.GithubWorkflows.Tests/DecSm.Atom.Module.GithubWorkflows.Tests.csproj
@@ -13,13 +13,13 @@
-
+
-
+
-
+
diff --git a/DecSm.Atom.Module.GithubWorkflows/Expressions.cs b/DecSm.Atom.Module.GithubWorkflows/Expressions.cs
index c2ad0b0f..4649e67b 100644
--- a/DecSm.Atom.Module.GithubWorkflows/Expressions.cs
+++ b/DecSm.Atom.Module.GithubWorkflows/Expressions.cs
@@ -10,6 +10,8 @@ namespace DecSm.Atom.Module.GithubWorkflows;
[PublicAPI]
public abstract record IGithubExpression
{
+ public string Expression => $"${{{{ {Write()} }}}}";
+
///
/// Writes the expression to its GitHub Actions string representation.
///
@@ -20,8 +22,6 @@ public abstract record IGithubExpression
public override string ToString() =>
Write();
- public string Expression => $"${{{{ {Write()} }}}}";
-
///
/// Implicitly converts an to its string representation.
///
diff --git a/DecSm.Atom.SourceGenerators.Tests/DecSm.Atom.SourceGenerators.Tests.csproj b/DecSm.Atom.SourceGenerators.Tests/DecSm.Atom.SourceGenerators.Tests.csproj
index f66d866d..fc7db21f 100644
--- a/DecSm.Atom.SourceGenerators.Tests/DecSm.Atom.SourceGenerators.Tests.csproj
+++ b/DecSm.Atom.SourceGenerators.Tests/DecSm.Atom.SourceGenerators.Tests.csproj
@@ -14,12 +14,12 @@
-
+
-
+
diff --git a/DecSm.Atom.TestUtils/DecSm.Atom.TestUtils.csproj b/DecSm.Atom.TestUtils/DecSm.Atom.TestUtils.csproj
index 34f61ea7..ae59efd7 100644
--- a/DecSm.Atom.TestUtils/DecSm.Atom.TestUtils.csproj
+++ b/DecSm.Atom.TestUtils/DecSm.Atom.TestUtils.csproj
@@ -5,7 +5,7 @@
-
+
diff --git a/DecSm.Atom.Tests/ApiSurfaceTests/PublicApiSurfaceTests.cs b/DecSm.Atom.Tests/ApiSurfaceTests/PublicApiSurfaceTests.cs
index 1883c623..cd219999 100644
--- a/DecSm.Atom.Tests/ApiSurfaceTests/PublicApiSurfaceTests.cs
+++ b/DecSm.Atom.Tests/ApiSurfaceTests/PublicApiSurfaceTests.cs
@@ -45,12 +45,10 @@ public async Task VerifyPublicApiSurface()
};
}
-public sealed record Type(string Name, IReadOnlyList Members);
+public sealed record Type(string Name, [UsedImplicitly] IReadOnlyList Members);
public interface IMember
{
- string ToString();
-
string Name { get; }
}
diff --git a/DecSm.Atom.Tests/BuildTests/Workflows/WorkflowTests.Workflows_WhenDirtyAndHeadless_RegeneratesWorkflows.verified.txt b/DecSm.Atom.Tests/BuildTests/Workflows/WorkflowTests.Workflows_WhenDirtyAndHeadless_RegeneratesWorkflows.verified.txt
index 964ccd6c..d0a5019d 100644
--- a/DecSm.Atom.Tests/BuildTests/Workflows/WorkflowTests.Workflows_WhenDirtyAndHeadless_RegeneratesWorkflows.verified.txt
+++ b/DecSm.Atom.Tests/BuildTests/Workflows/WorkflowTests.Workflows_WhenDirtyAndHeadless_RegeneratesWorkflows.verified.txt
@@ -3,6 +3,6 @@
InvalidOperationException: One or more workflows are dirty.
Run 'atom -g' to regenerate them
- at async Task ExecuteAsync(CancellationToken stoppingToken
- ) in AtomService.cs:112
+ at async Task ExecuteAsync(CancellationToken
+ stoppingToken) in AtomService.cs:112
diff --git a/DecSm.Atom.Tests/DecSm.Atom.Tests.csproj b/DecSm.Atom.Tests/DecSm.Atom.Tests.csproj
index 4db6ae16..d491d28c 100644
--- a/DecSm.Atom.Tests/DecSm.Atom.Tests.csproj
+++ b/DecSm.Atom.Tests/DecSm.Atom.Tests.csproj
@@ -13,13 +13,13 @@
-
+
-
+
-
+
diff --git a/DecSm.Atom.Tool.Tests/DecSm.Atom.Tool.Tests.csproj b/DecSm.Atom.Tool.Tests/DecSm.Atom.Tool.Tests.csproj
index 5daf35cf..f154b18e 100644
--- a/DecSm.Atom.Tool.Tests/DecSm.Atom.Tool.Tests.csproj
+++ b/DecSm.Atom.Tool.Tests/DecSm.Atom.Tool.Tests.csproj
@@ -11,12 +11,12 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
-
+
diff --git a/DecSm.Atom/DecSm.Atom.csproj b/DecSm.Atom/DecSm.Atom.csproj
index 5560b666..8a3fd8c5 100644
--- a/DecSm.Atom/DecSm.Atom.csproj
+++ b/DecSm.Atom/DecSm.Atom.csproj
@@ -17,7 +17,7 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
all
diff --git a/DecSm.Atom/Logging/SpectreLogger.cs b/DecSm.Atom/Logging/SpectreLogger.cs
index 1f065502..c0622a25 100644
--- a/DecSm.Atom/Logging/SpectreLogger.cs
+++ b/DecSm.Atom/Logging/SpectreLogger.cs
@@ -42,11 +42,15 @@ public void Log(
if (!IsEnabled(logLevel))
return;
- if (logLevel is LogLevel.Debug or LogLevel.Trace && !LogOptions.IsVerboseEnabled)
- return;
+ switch (logLevel)
+ {
+ case LogLevel.None:
+ case LogLevel.Debug or LogLevel.Trace when !LogOptions.IsVerboseEnabled:
+ return;
+ }
- var levelText = string.Empty;
- var levelColour = string.Empty;
+ string levelText;
+ string levelColour;
var levelBackground = string.Empty;
var messageStyle = string.Empty;
@@ -92,8 +96,6 @@ public void Log(
break;
case LogLevel.None:
- break;
-
default:
throw new UnreachableException();
}
@@ -133,7 +135,9 @@ public void Log(
: "dim";
var columns = new Columns(new Text(" "),
- new Markup($"[{messageStyle}]{message}[/]").LeftJustified()).Collapse();
+ new Markup(messageStyle is { Length: > 0 }
+ ? $"[{messageStyle}]{message}[/]"
+ : message).LeftJustified()).Collapse();
ServiceStaticAccessor.Service?.Write(columns);
@@ -148,7 +152,9 @@ public void Log(
.AddRow($"[dim]{time:yy-MM-dd zzz}[/]",
$"[dim]{FormatCategoryName(categoryName.EscapeMarkup(), command)}:[/]")
.AddRow($"[dim]{time:HH:mm:ss.fff}[/] [bold {levelColour}{levelBackground}]{levelText}[/]",
- $"[{messageStyle}]{message}[/]")
+ messageStyle is { Length: > 0 }
+ ? $"[{messageStyle}]{message}[/]"
+ : message)
.AddRow(string.Empty);
if (exception is not null)
diff --git a/DecSm.Atom/Reports/ConsoleOutcomeReportWriter.cs b/DecSm.Atom/Reports/ConsoleOutcomeReportWriter.cs
index 320011fd..fa7d4207 100644
--- a/DecSm.Atom/Reports/ConsoleOutcomeReportWriter.cs
+++ b/DecSm.Atom/Reports/ConsoleOutcomeReportWriter.cs
@@ -23,12 +23,11 @@ IParamService paramService
public Task ReportRunOutcome(CancellationToken cancellationToken)
{
var table = new Table()
- .LeftAligned()
.HideHeaders()
.Border(TableBorder.Minimal)
- .AddColumn("Target")
- .AddColumn("Outcome")
- .AddColumn("Duration");
+ .AddColumn("Target", c => c.LeftAligned())
+ .AddColumn("Outcome", c => c.LeftAligned())
+ .AddColumn("Duration", c => c.LeftAligned());
foreach (var state in buildModel
.TargetStates
@@ -203,9 +202,8 @@ private void Write(List reportData)
return;
var table = new Table()
- .Alignment(Justify.Left)
- .AddColumn("Name")
- .AddColumn("Path")
+ .AddColumn("Name", c => c.LeftAligned())
+ .AddColumn("Path", c => c.LeftAligned())
.Border(TableBorder.Minimal);
foreach (var artifact in reportData)
@@ -252,9 +250,7 @@ private void Write(ICustomReportData reportData)
///
private void Write(TableReportData reportData)
{
- var table = new Table()
- .Alignment(Justify.Left)
- .Border(TableBorder.Minimal);
+ var table = new Table().Border(TableBorder.Minimal);
var columnCount = reportData
.Rows