Skip to content

Commit ec373ec

Browse files
committed
Fixes around BuildArguments with Publish and Swap.
1 parent 6dbdb58 commit ec373ec

File tree

6 files changed

+55
-16
lines changed

6 files changed

+55
-16
lines changed

src/PostSharp.Engineering.BuildTools/Build/Model/BuildArguments.cs

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,14 @@ private BuildArguments( string? packageVersion, string configuration, string msB
5959
public static BuildArguments ReadFromArtifactManifest( BuildContext context, BuildConfiguration buildConfiguration )
6060
=> ArtifactManifestFile.CreateParametricStringArguments( context, buildConfiguration );
6161

62+
[Obsolete( "Renamed TryReadFromAutoUpdatedVersions." )]
6263
public static bool TryCreate( BuildContext context, BuildConfiguration configuration, [NotNullWhen( true )] out BuildArguments? buildArguments )
64+
=> TryReadFromAutoUpdatedVersionsFile( context, configuration, out buildArguments );
65+
66+
public static bool TryReadFromAutoUpdatedVersionsFile(
67+
BuildContext context,
68+
BuildConfiguration configuration,
69+
[NotNullWhen( true )] out BuildArguments? buildArguments )
6370
{
6471
if ( !MainVersionFile.TryRead( context, out var mainVersionFile ) )
6572
{
@@ -84,5 +91,43 @@ public static bool TryCreate( BuildContext context, BuildConfiguration configura
8491

8592
return true;
8693
}
94+
95+
public static bool TryCreate(
96+
BuildContext context,
97+
BuildSettings settings,
98+
[NotNullWhen( true )] out BuildArguments? buildArguments )
99+
=> TryCreate( context, settings.BuildConfiguration, settings.GetVersionSpec( settings.BuildConfiguration ), settings.UserName, out buildArguments );
100+
101+
public static bool TryCreate(
102+
BuildContext context,
103+
BuildConfiguration configuration,
104+
VersionSpec versionSpec,
105+
string? userName,
106+
[NotNullWhen( true )] out BuildArguments? buildArguments )
107+
{
108+
if ( !MainVersionFile.TryRead( context, out var mainVersionFile ) )
109+
{
110+
buildArguments = null;
111+
112+
return false;
113+
}
114+
115+
116+
if ( !VersionComponents.TryCompute( context, configuration, mainVersionFile, null, versionSpec, userName, out var versionComponents ) )
117+
{
118+
buildArguments = null;
119+
120+
return false;
121+
}
122+
123+
buildArguments = new BuildArguments()
124+
{
125+
MSBuildConfiguration = context.Product.DependencyDefinition.MSBuildConfiguration[configuration],
126+
Configuration = configuration.ToString(),
127+
PackageVersion = versionComponents.PackageVersion
128+
};
129+
130+
return true;
131+
}
87132
}
88133
}

src/PostSharp.Engineering.BuildTools/Build/Model/VersionComponents.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ public static bool TryCompute(
127127
BuildContext context,
128128
BuildConfiguration configuration,
129129
MainVersionFile mainVersionFile,
130-
string? inheritedMainVersion,
130+
string? mainVersionOverride,
131131
VersionSpec versionSpec,
132132
string? userName,
133133
[NotNullWhen( true )] out VersionComponents? version )
@@ -137,16 +137,18 @@ public static bool TryCompute(
137137

138138
version = null;
139139

140+
var mainVersion = mainVersionOverride ?? mainVersionFile.MainVersion;
141+
140142
if ( !string.IsNullOrEmpty( mainVersionFile.OverriddenPatchVersion )
141-
&& !mainVersionFile.OverriddenPatchVersion.StartsWith( inheritedMainVersion ?? mainVersionFile.MainVersion + ".", StringComparison.Ordinal ) )
143+
&& !mainVersionFile.OverriddenPatchVersion.StartsWith( mainVersionOverride ?? mainVersionFile.MainVersion + ".", StringComparison.Ordinal ) )
142144
{
143145
context.Console.WriteError(
144-
$"The OverriddenPatchVersion property in MainVersion.props ({mainVersionFile.OverriddenPatchVersion}) does not match the MainVersion property value ({inheritedMainVersion ?? mainVersionFile.MainVersion})." );
146+
$"The OverriddenPatchVersion property in MainVersion.props ({mainVersionFile.OverriddenPatchVersion}) does not match the MainVersion property value ({mainVersion})." );
145147

146148
return false;
147149
}
148150

149-
var versionPrefix = inheritedMainVersion ?? mainVersionFile.MainVersion;
151+
var versionPrefix = mainVersion;
150152
string versionSuffix;
151153
int patchNumber;
152154

@@ -217,7 +219,7 @@ public static bool TryCompute(
217219
throw new InvalidOperationException();
218220
}
219221

220-
version = new VersionComponents( inheritedMainVersion ?? mainVersionFile.MainVersion, versionPrefix, patchNumber, versionSuffix, configuration, product );
222+
version = new VersionComponents( mainVersion, versionPrefix, patchNumber, versionSuffix, configuration, product );
221223

222224
return true;
223225
}

src/PostSharp.Engineering.BuildTools/Build/Publishing/PublishCommand.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ private static bool Execute( BuildContext context, PublishSettings settings )
9696

9797
var configuration = settings.BuildConfiguration;
9898

99-
if ( !BuildArguments.TryCreate( context, configuration, out var buildArguments ) )
99+
if ( !BuildArguments.TryCreate( context, settings, out var buildArguments ) )
100100
{
101101
return false;
102102
}

src/PostSharp.Engineering.BuildTools/Build/Swapping/SwapCommand.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,7 @@ private static bool Execute( BuildContext context, SwapSettings settings )
2727
var product = context.Product;
2828
var configuration = product.Configurations.GetValue( settings.BuildConfiguration );
2929

30-
if ( !BuildArguments.TryCreate( context, settings.BuildConfiguration, out var buildArguments ) )
31-
{
32-
return false;
33-
}
30+
var buildArguments = BuildArguments.ReadFromArtifactManifest( context, settings.BuildConfiguration );
3431

3532
var directories = product.GetArtifactsAbsoluteDirectories( context, settings.BuildConfiguration );
3633

src/PostSharp.Engineering.BuildTools/Build/Swapping/SwapSettings.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public class SwapSettings : CommonCommandSettings
1212
{
1313
[Description( "Sets the build configuration (Debug | Release | Public) to swap" )]
1414
[CommandOption( "-c|--configuration" )]
15-
public BuildConfiguration BuildConfiguration { get; set; }
15+
public BuildConfiguration BuildConfiguration { get; init; }
1616

1717
[Description( "Prints the command line, but does not execute it" )]
1818
[CommandOption( "--dry" )]

src/PostSharp.Engineering.BuildTools/Tools/VerifyCommand.cs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,6 @@ public static bool Execute( BuildContext context, PublishSettings settings )
2020

2121
if ( configuration == BuildConfiguration.Public )
2222
{
23-
if ( !BuildArguments.TryCreate( context, configuration, out var buildArguments ) )
24-
{
25-
return false;
26-
}
27-
2823
var directories = product.GetArtifactsAbsoluteDirectories( context, configuration );
2924

3025
// Verify that public packages have no private dependencies.

0 commit comments

Comments
 (0)