Skip to content

Commit db82965

Browse files
committed
Make Signed package reference Polly-Signed
Make Signed package reference Polly-Signed. Bump version number to 1.1.0.
1 parent 13e8677 commit db82965

File tree

20 files changed

+427
-36
lines changed

20 files changed

+427
-36
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Polly.Caching.MemoryCache change log
22

3+
## 1.1.0
4+
5+
- Polly.Caching.MemoryCache-Signed now references Polly-Signed
6+
- Reference Polly v5.9.0 to bring in cache fixes
7+
38
## 1.0-RC
49

510
- Upgrade to Polly v5.4.0

GitVersionConfig.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
next-version: 1.0.0
1+
next-version: 1.1.0

build.cake

Lines changed: 81 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -37,18 +37,27 @@ var artifactsDir = Directory("./artifacts");
3737
var testResultsDir = artifactsDir + Directory("test-results");
3838

3939
// NuGet
40-
var nuspecFilename = projectName + ".nuspec";
41-
var nuspecSrcFile = srcDir + File(nuspecFilename);
42-
var nuspecDestFile = buildDir + File(nuspecFilename);
43-
var nupkgDestDir = artifactsDir + Directory("nuget-package");
40+
var nuspecExtension = ".nuspec";
41+
var signed = "-Signed";
42+
var nuspecFolder = "nuget-package";
43+
var nuspecSrcFile = srcDir + File(projectName + nuspecExtension);
44+
var nuspecDestFile = buildDir + File(projectName + nuspecExtension);
45+
var nuspecSignedDestFile = buildDir + File(projectName + signed + nuspecExtension);
46+
var nupkgDestDir = artifactsDir + Directory(nuspecFolder);
4447
var snkFile = srcDir + File(keyName);
4548

4649
var projectToNugetFolderMap = new Dictionary<string, string[]>() {
47-
{ "Net45" , new [] {"net45"} },
48-
{ "NetStandard13", new [] {"netstandard1.3"} },
49-
{ "Net40Async" , new [] {"net40"} },
50+
{ "Net45" , new [] {"net45"} },
51+
{ "NetStandard13" , new [] {"netstandard1.3"} },
52+
{ "Net40Async" , new [] {"net40"} },
53+
{ "Net45-Signed" , new [] {"net45"} },
54+
{ "NetStandard13-Signed", new [] {"netstandard1.3"} },
55+
{ "Net40Async-Signed" , new [] {"net40"} },
5056
};
5157

58+
var netStandard = "NetStandard";
59+
var specs = "Specs";
60+
5261
// Gitversion
5362
var gitVersionPath = ToolsExePath("GitVersion.exe");
5463
Dictionary<string, object> gitVersionOutput;
@@ -83,12 +92,16 @@ Teardown(_ =>
8392
Task("__Clean")
8493
.Does(() =>
8594
{
86-
CleanDirectories(new DirectoryPath[] {
95+
DirectoryPath[] cleanDirectories = new DirectoryPath[] {
8796
buildDir,
88-
artifactsDir,
8997
testResultsDir,
90-
nupkgDestDir
91-
});
98+
nupkgDestDir,
99+
artifactsDir
100+
};
101+
102+
CleanDirectories(cleanDirectories);
103+
104+
foreach(var path in cleanDirectories) { EnsureDirectoryExists(path); }
92105

93106
foreach(var path in solutionPaths)
94107
{
@@ -132,11 +145,18 @@ Task("__UpdateDotNetStandardAssemblyVersionNumber")
132145
// NOTE: TEMPORARY fix only, while GitVersionTask does not support .Net Standard assemblies. See https://github.com/App-vNext/Polly/issues/176.
133146
// This build Task can be removed when GitVersionTask supports .Net Standard assemblies.
134147
var assemblySemVer = gitVersionOutput["AssemblySemVer"].ToString();
135-
Information("Updating NetStandard1.3 AssemblyVersion to {0}", assemblySemVer);
136-
var replacedFiles = ReplaceRegexInFiles("./src/Polly.Caching.MemoryCache.NetStandard13/Properties/AssemblyInfo.cs", "AssemblyVersion[(]\".*\"[)]", "AssemblyVersion(\"" + assemblySemVer +"\")");
137-
if (!replacedFiles.Any())
138-
{
139-
Information("NetStandard1.3 AssemblyVersion could not be updated.");
148+
Information("Updating NetStandard AssemblyVersions to {0}", assemblySemVer);
149+
var assemblyInfosToUpdate = GetFiles("./src/**/Properties/AssemblyInfo.cs")
150+
.Select(f => f.FullPath)
151+
.Where(f => f.Contains(netStandard))
152+
.Where(f => !f.Contains(specs));
153+
154+
foreach(var assemblyInfo in assemblyInfosToUpdate) {
155+
var replacedFiles = ReplaceRegexInFiles(assemblyInfo, "AssemblyVersion[(]\".*\"[)]", "AssemblyVersion(\"" + assemblySemVer +"\")");
156+
if (!replacedFiles.Any())
157+
{
158+
throw new Exception("AssemblyVersion could not be updated in " + assemblyInfo + ".");
159+
}
140160
}
141161
});
142162

@@ -177,16 +197,24 @@ Task("__RunTests")
177197
Task("__RunDotnetTests")
178198
.Does(() =>
179199
{
180-
DotNetCoreTest("./src/Polly.Caching.MemoryCache.NetStandard13.Specs/Polly.Caching.MemoryCache.NetStandard13.Specs.csproj", new DotNetCoreTestSettings {
181-
Configuration = configuration,
182-
NoBuild = true
183-
});
200+
foreach(var specsProj in GetFiles("./src/**/*.Specs.csproj")
201+
.Select(f => f.FullPath)
202+
.Where(f => f.Contains(netStandard))
203+
) {
204+
DotNetCoreTest(specsProj, new DotNetCoreTestSettings {
205+
Configuration = configuration,
206+
NoBuild = true
207+
});
208+
}
184209
});
185210

186-
Task("__CopyOutputToNugetFolder")
211+
212+
Task("__CopyNonSignedOutputToNugetFolder")
187213
.Does(() =>
188214
{
189-
foreach(var project in projectToNugetFolderMap.Keys) {
215+
foreach(var project in projectToNugetFolderMap.Keys
216+
.Where(p => !p.Contains(signed))
217+
) {
190218
var sourceDir = srcDir + Directory(projectName + "." + project) + Directory("bin") + Directory(configuration);
191219

192220
foreach(var targetFolder in projectToNugetFolderMap[project]) {
@@ -200,7 +228,32 @@ Task("__CopyOutputToNugetFolder")
200228
CopyFile(nuspecSrcFile, nuspecDestFile);
201229
});
202230

203-
Task("__CreateNugetPackage")
231+
Task("__CopySignedOutputToNugetFolder")
232+
.Does(() =>
233+
{
234+
foreach(var project in projectToNugetFolderMap.Keys
235+
.Where(p => p.Contains(signed))
236+
) {
237+
var sourceDir = srcDir + Directory(projectName + "." + project) + Directory("bin") + Directory(configuration);
238+
239+
foreach(var targetFolder in projectToNugetFolderMap[project]) {
240+
var destDir = buildDir + Directory("lib");
241+
242+
Information("Copying {0} -> {1}.", sourceDir, destDir);
243+
CopyDirectory(sourceDir, destDir);
244+
}
245+
}
246+
247+
CopyFile(nuspecSrcFile, nuspecSignedDestFile);
248+
249+
var replacedFiles = ReplaceRegexInFiles(nuspecSignedDestFile, "dependency id=\"(Polly\\S*)\"", "dependency id=\"$1-Signed\"");
250+
if (!replacedFiles.Any())
251+
{
252+
throw new Exception("Could not set Polly dependency to Polly-Signed, for -Signed nuget package.");
253+
}
254+
});
255+
256+
Task("__CreateNonSignedNugetPackage")
204257
.Does(() =>
205258
{
206259
var nugetVersion = gitVersionOutput["NuGetVersion"].ToString();
@@ -238,7 +291,7 @@ Task("__CreateSignedNugetPackage")
238291
.Does(() =>
239292
{
240293
var nugetVersion = gitVersionOutput["NuGetVersion"].ToString();
241-
var packageName = projectName + "-Signed";
294+
var packageName = projectName + signed;
242295

243296
Information("Building {0}.{1}.nupkg", packageName, nugetVersion);
244297

@@ -249,7 +302,7 @@ Task("__CreateSignedNugetPackage")
249302
OutputDirectory = nupkgDestDir
250303
};
251304

252-
NuGetPack(nuspecDestFile, nuGetPackSettings);
305+
NuGetPack(nuspecSignedDestFile, nuGetPackSettings);
253306
});
254307

255308

@@ -266,8 +319,9 @@ Task("Build")
266319
.IsDependentOn("__BuildSolutions")
267320
.IsDependentOn("__RunTests")
268321
.IsDependentOn("__RunDotnetTests")
269-
.IsDependentOn("__CopyOutputToNugetFolder")
270-
.IsDependentOn("__CreateNugetPackage")
322+
.IsDependentOn("__CopyNonSignedOutputToNugetFolder")
323+
.IsDependentOn("__CreateNonSignedNugetPackage")
324+
.IsDependentOn("__CopySignedOutputToNugetFolder")
271325
.IsDependentOn("__StronglySignAssemblies")
272326
.IsDependentOn("__CreateSignedNugetPackage");
273327

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
<PropertyGroup>
3+
<TargetFramework>net45</TargetFramework>
4+
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
5+
</PropertyGroup>
6+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
7+
<DebugType>full</DebugType>
8+
<DefineConstants>DEBUG;TRACE;NET45</DefineConstants>
9+
</PropertyGroup>
10+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
11+
<DebugType>pdbonly</DebugType>
12+
<Optimize>true</Optimize>
13+
<DefineConstants>TRACE;RELEASE;NET45</DefineConstants>
14+
</PropertyGroup>
15+
<ItemGroup>
16+
<Reference Include="System" />
17+
<Reference Include="System.Core" />
18+
<Reference Include="System.Data" />
19+
<Reference Include="System.Data.DataSetExtensions" />
20+
<Reference Include="System.Net" />
21+
<Reference Include="System.Net.Http" />
22+
<Reference Include="System.Runtime.Caching" />
23+
<Reference Include="System.Xml" />
24+
<Reference Include="System.Xml.Linq" />
25+
<Reference Include="Microsoft.CSharp" />
26+
</ItemGroup>
27+
<ItemGroup>
28+
<PackageReference Include="FluentAssertions" Version="4.17.0" />
29+
<PackageReference Include="Microsoft.Bcl" Version="1.1.10" />
30+
<PackageReference Include="Microsoft.Bcl.Async" Version="1.0.168" />
31+
<PackageReference Include="Microsoft.Bcl.Build" Version="1.0.21" />
32+
<PackageReference Include="Polly.Net40Async-Signed" Version="5.9.0" />
33+
<PackageReference Include="xunit" Version="2.1.0" />
34+
<PackageReference Include="xunit.extensibility.execution" Version="2.1.0" />
35+
</ItemGroup>
36+
<ItemGroup>
37+
<Compile Include="..\GlobalAssemblyInfo.cs">
38+
<Link>Properties\GlobalAssemblyInfo.cs</Link>
39+
</Compile>
40+
</ItemGroup>
41+
<ItemGroup>
42+
<ProjectReference Include="..\Polly.Caching.MemoryCache.Net40Async-Signed\Polly.Caching.MemoryCache.Net40Async-Signed.csproj" />
43+
</ItemGroup>
44+
<ItemGroup>
45+
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
46+
</ItemGroup>
47+
<Import Project="..\Polly.Caching.MemoryCache.SharedSpecs\Polly.Caching.MemoryCache.SharedSpecs.projitems" Label="Shared" />
48+
</Project>
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
using System.Reflection;
2+
using Xunit;
3+
4+
[assembly: AssemblyTitle("Polly.Caching.MemoryCache.Net40Async.Specs")]
5+
[assembly: CollectionBehavior(DisableTestParallelization = true)]
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
This project exists to test Polly.Caching.MemoryCache.Net40Async-Signed.csproj.
2+
3+
Polly.Caching.MemoryCache.Net40Async.csproj is compiled against .NET4.5, and has to be, to use XUnit version 2.0, on which we depend. This is however a valid way of xunit-testing a .NET40 assembly. See https://github.com/xunit/xunit/issues/241#issuecomment-67725679
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
<PropertyGroup>
3+
<RootNamespace>Polly.Caching.MemoryCache</RootNamespace>
4+
<TargetFramework>net40</TargetFramework>
5+
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
6+
<GenerateDocumentationFile>true</GenerateDocumentationFile>
7+
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
8+
<SkipValidatePackageReferences>true</SkipValidatePackageReferences>
9+
</PropertyGroup>
10+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
11+
<DebugType>full</DebugType>
12+
<DefineConstants>TRACE;DEBUG;NET40</DefineConstants>
13+
</PropertyGroup>
14+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
15+
<DebugType>pdbonly</DebugType>
16+
<Optimize>true</Optimize>
17+
<DefineConstants>TRACE;RELEASE;NET40</DefineConstants>
18+
</PropertyGroup>
19+
<ItemGroup>
20+
<Reference Include="System" />
21+
<Reference Include="System.Core" />
22+
<Reference Include="System.Runtime.Caching" />
23+
</ItemGroup>
24+
<ItemGroup>
25+
<PackageReference Include="GitVersionTask" Version="3.1.2" />
26+
<PackageReference Include="Microsoft.Bcl" Version="1.1.10" />
27+
<PackageReference Include="Microsoft.Bcl.Build" Version="1.0.21" />
28+
<PackageReference Include="Nito.AsyncEx" Version="3.0.1" />
29+
<PackageReference Include="Polly.Net40Async-Signed" Version="5.9.0" />
30+
</ItemGroup>
31+
<ItemGroup>
32+
<Compile Include="..\GlobalAssemblyInfo.cs">
33+
<Link>Properties\GlobalAssemblyInfo.cs</Link>
34+
</Compile>
35+
</ItemGroup>
36+
<Import Project="..\Polly.Caching.MemoryCache.Shared\Polly.Caching.MemoryCache.Shared.projitems" Label="Shared" />
37+
</Project>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
using System;
2+
using System.Reflection;
3+
using System.Runtime.CompilerServices;
4+
5+
[assembly: AssemblyTitle("Polly.Caching.MemoryCache")]
6+
[assembly: CLSCompliant(false)] // Because Nito.AsycEx, on which Polly.Net40Async depends, is not CLSCompliant.
7+
8+
9+
[assembly: InternalsVisibleTo("Polly.Caching.MemoryCache.Net40Async-Signed.Specs")]
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<configuration>
3+
<runtime>
4+
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
5+
<dependentAssembly>
6+
<assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
7+
<bindingRedirect oldVersion="0.0.0.0-2.6.10.0" newVersion="2.6.10.0" />
8+
</dependentAssembly>
9+
<dependentAssembly>
10+
<assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
11+
<bindingRedirect oldVersion="0.0.0.0-2.6.10.0" newVersion="2.6.10.0" />
12+
</dependentAssembly>
13+
</assemblyBinding>
14+
</runtime>
15+
</configuration>
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
<PropertyGroup>
3+
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
4+
<TargetFramework>net45</TargetFramework>
5+
<OutputType>Library</OutputType>
6+
<RootNamespace>Polly.Caching.MemoryCache.Net45.Specs</RootNamespace>
7+
</PropertyGroup>
8+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
9+
<DebugType>full</DebugType>
10+
<DefineConstants>TRACE;DEBUG;NET45</DefineConstants>
11+
</PropertyGroup>
12+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
13+
<DebugType>pdbonly</DebugType>
14+
<Optimize>true</Optimize>
15+
<DefineConstants>TRACE;RELEASE;NET45</DefineConstants>
16+
</PropertyGroup>
17+
<ItemGroup>
18+
<Reference Include="System" />
19+
<Reference Include="System.Core" />
20+
<Reference Include="System.Data" />
21+
<Reference Include="System.Data.DataSetExtensions" />
22+
<Reference Include="System.Net.Http" />
23+
<Reference Include="System.Runtime.Caching" />
24+
<Reference Include="System.Xml" />
25+
<Reference Include="System.Xml.Linq" />
26+
<Reference Include="Microsoft.CSharp" />
27+
</ItemGroup>
28+
<ItemGroup>
29+
<PackageReference Include="Polly-Signed" Version="5.9.0" />
30+
<PackageReference Include="FluentAssertions" Version="4.17.0" />
31+
<PackageReference Include="xunit" Version="2.1.0" />
32+
<PackageReference Include="xunit.extensibility.execution" Version="2.1.0" />
33+
</ItemGroup>
34+
<ItemGroup>
35+
<Compile Include="..\GlobalAssemblyInfo.cs">
36+
<Link>Properties\GlobalAssemblyInfo.cs</Link>
37+
</Compile>
38+
</ItemGroup>
39+
<ItemGroup>
40+
<ProjectReference Include="..\Polly.Caching.MemoryCache.Net45-Signed\Polly.Caching.MemoryCache.Net45-Signed.csproj" />
41+
</ItemGroup>
42+
<ItemGroup>
43+
<Service Include="{82a7f48d-3b50-4b1e-b82e-3ada8210c358}" />
44+
</ItemGroup>
45+
<Import Project="..\Polly.Caching.MemoryCache.SharedSpecs\Polly.Caching.MemoryCache.SharedSpecs.projitems" Label="Shared" />
46+
</Project>

0 commit comments

Comments
 (0)