Skip to content

Commit 7cc6f9b

Browse files
authored
Merge pull request #2029 from ThreeMammals/release/23.2
Release 23.2.1
2 parents d2a79ac + a9ab246 commit 7cc6f9b

File tree

6 files changed

+103
-129
lines changed

6 files changed

+103
-129
lines changed

ReleaseNotes.md

+3-53
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,4 @@
1-
## February 2024 (version {0}) aka [Lunar Eclipse](https://www.timeanddate.com/eclipse/lunar/2024-march-25) release
2-
> Codenamed: **[Lunar Eclipse](https://www.bing.com/search?q=Lunar+Eclipse+2024)**
3-
> Read the Docs: [Ocelot 23.2](https://ocelot.readthedocs.io/en/23.2.0/)
1+
## Documentation patch (version {0}) for [{1}](https://github.com/ThreeMammals/Ocelot/releases/tag/{1}) release
2+
> Read the Docs: [Ocelot 23.2](https://ocelot.readthedocs.io/en/{0}/)
43
5-
### What's new?
6-
7-
- **[Configuration](https://ocelot.readthedocs.io/en/latest/features/configuration.html)**: A brand new [Merging files to memory](https://ocelot.readthedocs.io/en/23.2.0/features/configuration.html#merging-files-to-memory) by @ebjornset as a part of the [Merging Configuration Files](https://ocelot.readthedocs.io/en/23.2.0/features/configuration.html#merging-configuration-files) feature.
8-
The `AddOcelot` method merges the **ocelot.*.json** files into a single **ocelot.json** file as the primary configuration file, which is written back to disk and then added to the `IConfigurationBuilder` for the well-known `IConfiguration`. You can now call another `AddOcelot` method that adds the merged JSON directly from memory to the `IConfigurationBuilder`, using `AddJsonStream` instead.
9-
See more details in [Configuration Overview](https://ocelot.readthedocs.io/en/23.2.0/features/dependencyinjection.html#configuration-overview) of [Dependency Injection](https://ocelot.readthedocs.io/en/23.2.0/features/dependencyinjection.html).
10-
- **[Service Fabric](https://ocelot.readthedocs.io/en/latest/features/servicefabric.html)**: Published old undocumented "[Placeholders in Service Name](https://ocelot.readthedocs.io/en/23.2.0/features/servicefabric.html#placeholders-in-service-name)" feature of [Service Fabric](https://ocelot.readthedocs.io/en/23.2.0/features/servicefabric.html) [service discovery provider](https://ocelot.readthedocs.io/en/23.2.0/search.html?q=ServiceDiscoveryProvider).
11-
This feature by @FelixBoers is available starting from version [13.0.0](https://github.com/ThreeMammals/Ocelot/releases/tag/13.0.0).
12-
- **[Quality of Service](https://ocelot.readthedocs.io/en/latest/features/qualityofservice.html)**: A brand new [Polly](https://github.com/App-vNext/Polly) v8 pipelines [Extensibility](https://ocelot.readthedocs.io/en/23.2.0/features/qualityofservice.html#extensibility) feature by @RaynaldM
13-
14-
### Focus On
15-
16-
<details>
17-
<summary><b>Updates of the features</b>: Configuration, Dependency Injection and QoS</summary>
18-
19-
- [Configuration](https://ocelot.readthedocs.io/en/latest/features/configuration.html): New [Merging files to memory](https://ocelot.readthedocs.io/en/23.2.0/features/configuration.html#merging-files-to-memory) feature by @ebjornset
20-
- [Dependency Injection](https://ocelot.readthedocs.io/en/latest/features/dependencyinjection.html): Added new overloaded [AddOcelot methods](https://ocelot.readthedocs.io/en/23.2.0/features/dependencyinjection.html#addocelot-method) by @ebjornset
21-
- [Quality of Service](https://ocelot.readthedocs.io/en/latest/features/qualityofservice.html): Support of new [Polly](https://github.com/App-vNext/Polly) v8 syntax and new [Extensibility](https://ocelot.readthedocs.io/en/23.2.0/features/qualityofservice.html#extensibility) feature by @RaynaldM
22-
</details>
23-
24-
<details>
25-
<summary><b>Ocelot extra packages</b></summary>
26-
27-
- [Ocelot.Provider.Polly](https://www.nuget.org/packages/Ocelot.Provider.Polly): Support of new [Polly](https://github.com/App-vNext/Polly) v8 syntax.
28-
*Polly* [8.0+](https://github.com/App-vNext/Polly/releases) versions introduced the concept of [resilience pipelines](https://www.pollydocs.org/pipelines/).
29-
All [AddPolly extensions](https://github.com/ThreeMammals/Ocelot/blob/develop/src/Ocelot.Provider.Polly/OcelotBuilderExtensions.cs) have been automatically migrated from **v7** to **v8**.
30-
Please note that older **v7** extensions are marked with the `[Obsolete]` attribute and renamed using the `V7` suffix. And the old **v7** implementation has been moved to the [v7 namespace](https://github.com/ThreeMammals/Ocelot/tree/develop/src/Ocelot.Provider.Polly/v7).
31-
See more details in [Polly v7 vs v8](https://ocelot.readthedocs.io/en/23.2.0/features/qualityofservice.html#polly-v7-vs-v8) section of [Quality of Service](https://ocelot.readthedocs.io/en/23.2.0/features/qualityofservice.html) chapter.
32-
</details>
33-
34-
<details>
35-
<summary><b>Stabilization</b> aka bug fixing</summary>
36-
37-
- [683](https://github.com/ThreeMammals/Ocelot/issues/683) by PR [1927](https://github.com/ThreeMammals/Ocelot/pull/1927)
38-
[New rules](https://github.com/search?q=repo%3AThreeMammals%2FOcelot+IsPlaceholderNotDuplicatedIn+IsUpstreamPlaceholderDefinedInDownstream+IsDownstreamPlaceholderDefinedInUpstream&type=code) have been added to Ocelot's configuration validation logic to find duplicate placeholders in path templates.
39-
See more in the [FileConfigurationFluentValidator](https://github.com/search?q=repo%3AThreeMammals%2FOcelot%20FileConfigurationFluentValidator&type=code) class. Thanks to @AlyHKafoury!
40-
- [1518](https://github.com/ThreeMammals/Ocelot/issues/1518) hotfix by PR [1986](https://github.com/ThreeMammals/Ocelot/pull/1986)
41-
Using the default `IServiceCollection` [DI extensions](https://github.com/ThreeMammals/Ocelot/blob/develop/src/Ocelot/DependencyInjection/ServiceCollectionExtensions.cs) to register Ocelot services resulted in the `ServiceCollection` provider being forced to be created by calling `BuildServiceProvider()`.
42-
This resulted in problems with dependency injection libraries, or worse, causing the Ocelot app to crash!
43-
See more in the [ServiceCollectionExtensions](https://github.com/search?q=repo%3AThreeMammals%2FOcelot+ServiceCollectionExtensions&type=code) class. Thanks to @ArwynFr!
44-
- See [all bugs](https://github.com/ThreeMammals/Ocelot/issues?q=is%3Aissue+is%3Aclosed+label%3Abug+milestone%3AFebruary%2724) of the [February'24](https://github.com/ThreeMammals/Ocelot/milestone/5) milestone
45-
</details>
46-
47-
<details>
48-
<summary><b>Documentation</b> for version <a href="https://ocelot.readthedocs.io/en/23.2.0/">23.2</a></summary>
49-
50-
- [Configuration](https://ocelot.readthedocs.io/en/23.2.0/features/configuration.html)
51-
- [Dependency Injection](https://ocelot.readthedocs.io/en/23.2.0/features/dependencyinjection.html)
52-
- [Quality of Service](https://ocelot.readthedocs.io/en/23.2.0/features/qualityofservice.html)
53-
- [Service Fabric](https://ocelot.readthedocs.io/en/23.2.0/features/servicefabric.html)
54-
</details>
4+
This is a technical release: no other information.

build.cake

+32-13
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ var nugetFeedStableSymbolsUploadUrl = "https://www.nuget.org/api/v2/package";
5656
string committedVersion = "0.0.0-dev";
5757
GitVersion versioning = null;
5858
int releaseId = 0;
59+
bool IsTechnicalRelease = true;
5960
string gitHubUsername = "TomPallister";
6061
string gitHubPassword = Environment.GetEnvironmentVariable("OCELOT_GITHUB_API_KEY");
6162

@@ -83,7 +84,7 @@ Task("RunTests")
8384
.IsDependentOn("RunIntegrationTests");
8485

8586
Task("Release")
86-
.IsDependentOn("Build")
87+
//.IsDependentOn("Build")
8788
.IsDependentOn("CreateReleaseNotes")
8889
.IsDependentOn("CreateArtifacts")
8990
.IsDependentOn("PublishGitHubRelease")
@@ -154,12 +155,18 @@ Task("CreateReleaseNotes")
154155

155156
var lastReleaseTags = GitHelper("describe --tags --abbrev=0 --exclude net*");
156157
var lastRelease = lastReleaseTags.First(t => !t.StartsWith("net")); // skip 'net*-vX.Y.Z' tag and take 'major.minor.build'
157-
Information("Last release tag is " + lastRelease);
158-
159158
var releaseVersion = versioning.NuGetVersion;
159+
160160
// Read main header from Git file, substitute version in header, and add content further...
161+
Information("{0} New release tag is " + releaseVersion);
162+
Information("{1} Last release tag is " + lastRelease);
161163
var releaseHeader = string.Format(System.IO.File.ReadAllText("./ReleaseNotes.md"), releaseVersion, lastRelease);
162164
releaseNotes = new List<string> { releaseHeader };
165+
if (IsTechnicalRelease)
166+
{
167+
WriteReleaseNotes();
168+
return;
169+
}
163170

164171
var shortlogSummary = GitHelper($"shortlog --no-merges --numbered --summary {lastRelease}..HEAD")
165172
.ToList();
@@ -298,6 +305,7 @@ Task("CreateReleaseNotes")
298305
}
299306
}
300307
} // END of Top 3
308+
301309
releaseNotes.Add("### Honoring :medal_sports: aka Top Contributors :clap:");
302310
releaseNotes.AddRange(topContributors);
303311
releaseNotes.Add("");
@@ -415,20 +423,23 @@ Task("RunIntegrationTests")
415423

416424
Task("CreateArtifacts")
417425
.IsDependentOn("CreateReleaseNotes")
418-
.IsDependentOn("Compile")
419-
.Does(() =>
426+
//.IsDependentOn("Compile")
427+
.Does(() =>
420428
{
421429
WriteReleaseNotes();
422430
System.IO.File.AppendAllLines(artifactsFile, new[] { "ReleaseNotes.md" });
423431

424-
CopyFiles("./src/**/Release/Ocelot.*.nupkg", packagesDir);
425-
var projectFiles = GetFiles("./src/**/Release/Ocelot.*.nupkg");
426-
foreach(var projectFile in projectFiles)
432+
if (!IsTechnicalRelease)
427433
{
428-
System.IO.File.AppendAllLines(
429-
artifactsFile,
430-
new[] { projectFile.GetFilename().FullPath }
431-
);
434+
CopyFiles("./src/**/Release/Ocelot.*.nupkg", packagesDir);
435+
var projectFiles = GetFiles("./src/**/Release/Ocelot.*.nupkg");
436+
foreach(var projectFile in projectFiles)
437+
{
438+
System.IO.File.AppendAllLines(
439+
artifactsFile,
440+
new[] { projectFile.GetFilename().FullPath }
441+
);
442+
}
432443
}
433444

434445
var artifacts = System.IO.File.ReadAllLines(artifactsFile)
@@ -511,13 +522,21 @@ Task("PublishToNuget")
511522
.IsDependentOn("DownloadGitHubReleaseArtifacts")
512523
.Does(() =>
513524
{
514-
Information("Skipping of publishing to NuGet...");
525+
if (IsTechnicalRelease)
526+
{
527+
Information("Skipping of publishing to NuGet because of technical release...");
528+
return;
529+
}
530+
515531
if (IsRunningOnCircleCI())
516532
{
533+
Information("Publish to NuGet...");
517534
PublishPackages(packagesDir, artifactsFile, nugetFeedStableKey, nugetFeedStableUploadUrl, nugetFeedStableSymbolsUploadUrl);
518535
}
519536
});
520537

538+
Task("Void").Does(() => {});
539+
521540
RunTarget(target);
522541

523542
private void GenerateReport(Cake.Core.IO.FilePath coverageSummaryFile)

0 commit comments

Comments
 (0)