Skip to content

Tags: dotnet/dotnet-operator-sdk

Tags

v13.3.0

Toggle v13.3.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
deps(tools): update dependency nuget-license to v4.0.18 (#1259)

This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [nuget-license](https://redirect.github.com/sensslen/nuget-license) |
`4.0.17` → `4.0.18` |
![age](https://developer.mend.io/api/mc/badges/age/nuget/nuget-license/4.0.18?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/nuget-license/4.0.17/4.0.18?slim=true)
|

---

### Release Notes

<details>
<summary>sensslen/nuget-license (nuget-license)</summary>

###
[`v4.0.18`](https://redirect.github.com/sensslen/nuget-license/releases/tag/v4.0.18)

[Compare
Source](https://redirect.github.com/sensslen/nuget-license/compare/v4.0.17...v4.0.18)

#### What's Changed

- Retry the url-to-license test on an empty response by
[@&#8203;sensslen](https://redirect.github.com/sensslen) in
[#&#8203;655](https://redirect.github.com/sensslen/nuget-license/pull/655)
- Update dependency TUnit to 1.67.0 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;659](https://redirect.github.com/sensslen/nuget-license/pull/659)
- Freeze Microsoft.Build 18.9 for the net10.0 reference by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;657](https://redirect.github.com/sensslen/nuget-license/pull/657)
- Use central package management and replace Verify by
[@&#8203;sensslen](https://redirect.github.com/sensslen) in
[#&#8203;661](https://redirect.github.com/sensslen/nuget-license/pull/661)
- Update dependency Microsoft.NET.Test.Sdk to 18.10.1 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;662](https://redirect.github.com/sensslen/nuget-license/pull/662)
- Update tunit monorepo to 1.68.0 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;663](https://redirect.github.com/sensslen/nuget-license/pull/663)
- Update tunit monorepo to 1.68.17 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;664](https://redirect.github.com/sensslen/nuget-license/pull/664)
- Update dependency Sensslen.SPDX.Licenses.Net to 3.29.0 by
[@&#8203;renovate](https://redirect.github.com/renovate)\[bot] in
[#&#8203;665](https://redirect.github.com/sensslen/nuget-license/pull/665)

**Full Changelog**:
<sensslen/nuget-license@v4.0.17...v4.0.18>

</details>

---

### Configuration

📅 **Schedule**: (in timezone Europe/Zurich)

- Branch creation
  - "after 9pm,before 6am"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/dotnet/dotnet-operator-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMDMuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjEwMy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

v13.3.0-prerelease.4

Toggle v13.3.0-prerelease.4's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
deps(core): update opentelemetry-dotnet-contrib monorepo to 1.19.0 (#…

…1254)

This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [OpenTelemetry.Instrumentation.Http](https://opentelemetry.io/)
([source](https://redirect.github.com/open-telemetry/opentelemetry-dotnet-contrib))
| `1.18.0` → `1.19.0` |
![age](https://developer.mend.io/api/mc/badges/age/nuget/OpenTelemetry.Instrumentation.Http/1.19.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/OpenTelemetry.Instrumentation.Http/1.18.0/1.19.0?slim=true)
|
| [OpenTelemetry.Instrumentation.Runtime](https://opentelemetry.io/)
([source](https://redirect.github.com/open-telemetry/opentelemetry-dotnet-contrib))
| `1.18.0` → `1.19.0` |
![age](https://developer.mend.io/api/mc/badges/age/nuget/OpenTelemetry.Instrumentation.Runtime/1.19.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/OpenTelemetry.Instrumentation.Runtime/1.18.0/1.19.0?slim=true)
|

---

### Configuration

📅 **Schedule**: (in timezone Europe/Zurich)

- Branch creation
  - "after 9pm,before 6am"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/dotnet/dotnet-operator-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMDMuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjEwMy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

v13.3.0-prerelease.3

Toggle v13.3.0-prerelease.3's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
deps(core): update dependency messagepack to 3.1.9 (#1253)

This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[MessagePack](https://redirect.github.com/MessagePack-CSharp/MessagePack-CSharp)
| `3.1.8` → `3.1.9` |
![age](https://developer.mend.io/api/mc/badges/age/nuget/MessagePack/3.1.9?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/MessagePack/3.1.8/3.1.9?slim=true)
|

---

### Release Notes

<details>
<summary>MessagePack-CSharp/MessagePack-CSharp (MessagePack)</summary>

###
[`v3.1.9`](https://redirect.github.com/MessagePack-CSharp/MessagePack-CSharp/releases/tag/v3.1.9)

#### What's Changed

##### Security fix

- Fix [Nested arrays can blow past buffer length
limits](https://redirect.github.com/MessagePack-CSharp/MessagePack-CSharp/security/advisories/GHSA-qhrr-8q5h-9q3h)
via
[`7fd78bb`](https://redirect.github.com/MessagePack-CSharp/MessagePack-CSharp/commit/7fd78bbf3476)

##### Other fixes

- Update DynamicAssembly usage to honor different AssemblyLoadContext's
by [@&#8203;BertanAygun](https://redirect.github.com/BertanAygun) in
[#&#8203;2183](https://redirect.github.com/MessagePack-CSharp/MessagePack-CSharp/pull/2183)
- Update v2.x to build again by
[@&#8203;AArnott](https://redirect.github.com/AArnott) in
[#&#8203;2264](https://redirect.github.com/MessagePack-CSharp/MessagePack-CSharp/pull/2264)
- Add more types to the default disallow list of named types to be
deserialized by [@&#8203;AArnott](https://redirect.github.com/AArnott)
in
[#&#8203;2263](https://redirect.github.com/MessagePack-CSharp/MessagePack-CSharp/pull/2263)
- Add several known unsafe 'gadgets' to the disallow list by
[@&#8203;AArnott](https://redirect.github.com/AArnott) in
[#&#8203;2269](https://redirect.github.com/MessagePack-CSharp/MessagePack-CSharp/pull/2269)
- Revise end-of-life date for version 2.x by
[@&#8203;AArnott](https://redirect.github.com/AArnott) in
[#&#8203;2282](https://redirect.github.com/MessagePack-CSharp/MessagePack-CSharp/pull/2282)
- Fix OldSpec byte\[] encoding emitting unsupported str8 headers by
[@&#8203;AArnott](https://redirect.github.com/AArnott) with
[@&#8203;Copilot](https://redirect.github.com/Copilot) in
[#&#8203;2287](https://redirect.github.com/MessagePack-CSharp/MessagePack-CSharp/pull/2287)
- v2 to master by [@&#8203;AArnott](https://redirect.github.com/AArnott)
in
[#&#8203;2295](https://redirect.github.com/MessagePack-CSharp/MessagePack-CSharp/pull/2295)
- Fix build warning and Windows build break by
[@&#8203;AArnott](https://redirect.github.com/AArnott) in
[#&#8203;2300](https://redirect.github.com/MessagePack-CSharp/MessagePack-CSharp/pull/2300)
- Fix source generator snapshot ordering by
[@&#8203;AArnott](https://redirect.github.com/AArnott) in
[#&#8203;2303](https://redirect.github.com/MessagePack-CSharp/MessagePack-CSharp/pull/2303)
- Test before versioned release build by
[@&#8203;AArnott](https://redirect.github.com/AArnott) in
[#&#8203;2304](https://redirect.github.com/MessagePack-CSharp/MessagePack-CSharp/pull/2304)

**Full Changelog**:
<MessagePack-CSharp/MessagePack-CSharp@v3.1.8...v3.1.9>

</details>

---

### Configuration

📅 **Schedule**: (in timezone Europe/Zurich)

- Branch creation
  - "after 9pm,before 6am"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/dotnet/dotnet-operator-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC45Ni4zIiwidXBkYXRlZEluVmVyIjoiNDQuOTYuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

v13.3.0-prerelease.2

Toggle v13.3.0-prerelease.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix(transpiler): terminate type-graph walks that never end (#1252)

## Problem

The CRD transpiler walks the type graph twice — once for the schema
(`Map`/`MapObjectType`) and once for printer columns
(`MapPrinterColumns`). Both terminate via a path-scoped `HashSet<Type>`
of ancestors. Two classes of input escape that guard:

**1. The ancestor set only grows inside `MapObjectType`.** The
enumerable and dictionary branches passed `ancestors` through unchanged,
so a type that *is* a collection or dictionary of itself never passed
through a guarded frame:

```csharp
public class Tree : List<Tree>;                     // Map -> MapEnumerationType -> Map -> ...
public class Config : Dictionary<string, Config>;   // Map -> Map -> ...
public class A : List<B>;  public class B : List<A>;
```

These recursed until the process died with `Stack overflow.` — not
catchable, so neither the `catch` in `Transpile` nor the
`[PreserveUnknownFields]` fallback could turn it into a diagnostic.

**2. Cycle detection compares `Type` identity.** A recursively
constructed generic produces an endless chain of *distinct* types, so
the guard can never match:

```csharp
public class Wrapper<T> { public Wrapper<Wrapper<T>>? Inner { get; set; } }
```

In the schema walk this overflowed the stack. In the printer-column walk
— which is iterative — it was a genuine infinite loop: a measured run
sat at 2 minutes 26 seconds and 2.8 GB RSS, still growing, and had to be
killed. That path was reachable even when the property was annotated
`[Ignore]`, because printer-column discovery did not evaluate
`[Ignore]`.

## Changes

- **Record the current type in the enumerable and dictionary branches**
before descending into the item/value type. The item or value type is
reported rather than the collection, so the message for the
already-covered case `class A { List<A> X; }` keeps naming `A`.
- **Cap the length of a single path through the type graph**
(`MaxTypeGraphDepth = 100`) in both walks. A guard on the generic type
definition was considered and rejected: it would reject legitimate
nesting such as `List<List<string>>`. The new exception is a
`CircularTypeReferenceException`, so existing catch clauses and the
`[PreserveUnknownFields]` degradation keep working.
- **Skip `[Ignore]` properties during printer-column discovery.** A
column below an ignored property referenced a JSON path that does not
exist in the generated schema.

## Verification

Each case run through `Transpile` before and after:

| Input | Before | After |
|---|---|---|
| `class Node { List<Node> Children; }` (control) |
`TranspilationFailedException … circular … 'Node'` | unchanged |
| `class Tree : List<Tree>` | `Stack overflow.` | `… circular … 'Tree'`
|
| `class Config : Dictionary<string, Config>` | `Stack overflow.` | `…
circular … 'Config'` |
| `Wrapper<Wrapper<T>>`, schema walk | `Stack overflow.` (1470 frames) |
`… exceeds the maximum nesting depth of 100 …` |
| `Wrapper<Wrapper<T>>` behind `[Ignore]` | infinite loop, 2m26s / 2.8
GB RSS | transpiles immediately |

`KubeOps.Transpiler.Test` 241/241, `KubeOps.Generator.Test` 61/61,
`KubeOps.Cli.Test` 31/31 (2 skipped). `dotnet build -c Release` with no
new warnings, `dotnet format --verify-no-changes` clean. Seven new tests
in `Crds.Mlc.CircularReference.Test.cs`, including a negative test
asserting the depth limit does not fire on `List<List<string>>`.

## Behaviour changes

- Type graphs that previously crashed or hung now fail with a
descriptive `TranspilationFailedException` during generation.
- An `[AdditionalPrinterColumn]` below an `[Ignore]` property is no
longer emitted. It previously produced a column whose `jsonPath` pointed
at a field absent from the schema.
- `[PreserveUnknownFields]` still opts a subtree out of the schema only,
not out of printer-column discovery. That inconsistency is left
untouched here.

## Relation to #1233

The `[Ignore]` filter in `MapPrinterColumns` is the same change as #1233
and will conflict textually. The stack overflow described in that PR's
title is the case `class Tree { List<Tree> Children; }`, which is
already handled by the cycle guards from #1141/#1201; what remains
reachable through an ignored member is the infinite loop measured above.

Docs updated in `docs/docs/operator/building-blocks/entities.mdx`.

v13.3.0-prerelease.1

Toggle v13.3.0-prerelease.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
feat(cli/rbac): add explicit --rbac-scope option (#1251)

Follow-up to #1230. Static discovery of the watch namespace does not
cover all cases, so this adds a simple, deterministic opt-in and fixes
two discovery bugs.

## Changes

- **New CLI option** `--rbac-scope auto|cluster|namespaced` on `generate
operator`:
  - `auto` (default) keeps the existing discovery behaviour
  - `cluster` always generates `ClusterRole`/`ClusterRoleBinding`
- `namespaced` always generates `Role`/`RoleBinding` — also when the
namespace is only known at runtime (e.g. `WATCH_NAMESPACE`)
- Namespace for `namespaced`: `--namespace` → statically discovered
namespace → `<operator-name>-system` (in the fallback case the namespace
resource is generated, so the kustomization stays relocatable).
- The cluster-wide fallback warning now points to `--rbac-scope
namespaced`.
- Passed through by MSBuild (`KubeOpsRbacScope`, `KubeOpsNamespace`) and
Aspire (`KubeOpsKubernetesManifestOptions.RbacScope`). `--namespace`
intentionally does **not** imply namespaced RBAC — Aspire always sends
it.
- **Bugfixes** in `OperatorWatchScopeDiscovery`: an enclosing `try` is
no longer treated as a conditional (`catch` still is), and the ancestor
walk stops at the analyzed configuration lambda. The common `try { … }
finally { Log.CloseAndFlush(); }` host shape no longer defeats
discovery.

## Tests

- New `OperatorRbacTargetResolverTest` covering all scope/namespace
combinations including the mismatch error.
- New discovery tests for `try/finally`, conditional registration, and
assignment inside `catch`.

No breaking changes, the default stays `auto`.

Refs #1213

v13.2.2-prerelease.1

Toggle v13.2.2-prerelease.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
deps(core): update aspire monorepo (#1248)

This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [Aspire.Hosting](https://redirect.github.com/microsoft/aspire) |
`13.5.3` → `13.5.4` |
![age](https://developer.mend.io/api/mc/badges/age/nuget/Aspire.Hosting/13.5.4?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/Aspire.Hosting/13.5.3/13.5.4?slim=true)
|
|
[Aspire.Hosting.Kubernetes](https://redirect.github.com/microsoft/aspire)
| `13.5.3-preview.1.26425.3` → `13.5.4-preview.1.26464.4` |
![age](https://developer.mend.io/api/mc/badges/age/nuget/Aspire.Hosting.Kubernetes/13.5.4-preview.1.26464.4?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/Aspire.Hosting.Kubernetes/13.5.3-preview.1.26425.3/13.5.4-preview.1.26464.4?slim=true)
|
| [Aspire.Hosting.Testing](https://redirect.github.com/microsoft/aspire)
| `13.5.3` → `13.5.4` |
![age](https://developer.mend.io/api/mc/badges/age/nuget/Aspire.Hosting.Testing/13.5.4?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/Aspire.Hosting.Testing/13.5.3/13.5.4?slim=true)
|

---

### Release Notes

<details>
<summary>microsoft/aspire (Aspire.Hosting)</summary>

###
[`v13.5.4`](https://redirect.github.com/microsoft/aspire/compare/v13.5.3...v13.5.4)

</details>

---

### Configuration

📅 **Schedule**: (in timezone Europe/Zurich)

- Branch creation
  - "after 9pm,before 6am"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/dotnet/dotnet-operator-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC45My40IiwidXBkYXRlZEluVmVyIjoiNDQuOTMuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

v13.2.1

Toggle v13.2.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
deps(test): update dependency fluentassertions to 8.11.0 (#1247)

This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[FluentAssertions](https://xceed.com/products/unit-testing/fluent-assertions/)
([source](https://redirect.github.com/fluentassertions/fluentassertions))
| `8.10.0` → `8.11.0` |
![age](https://developer.mend.io/api/mc/badges/age/nuget/FluentAssertions/8.11.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/FluentAssertions/8.10.0/8.11.0?slim=true)
|

---

### Release Notes

<details>
<summary>fluentassertions/fluentassertions (FluentAssertions)</summary>

###
[`v8.11.0`](https://redirect.github.com/fluentassertions/fluentassertions/releases/tag/8.11.0)

[Compare
Source](https://redirect.github.com/fluentassertions/fluentassertions/compare/8.10.0...8.11.0)

<!-- Release notes generated using configuration in .github/release.yml
at main -->

#### What's Changed

##### New features

- Add `ThatSatisfy` for methods and properties by
[@&#8203;jnyrup](https://redirect.github.com/jnyrup) in
[#&#8203;3257](https://redirect.github.com/fluentassertions/fluentassertions/pull/3257)
- Add BeSupersetOf, BeProperSubsetOf and BeProperSupersetOf collection
assertions by
[@&#8203;dennisdoomen](https://redirect.github.com/dennisdoomen) in
[#&#8203;3271](https://redirect.github.com/fluentassertions/fluentassertions/pull/3271)
- Add BeJsonSerializable round-trip assertions by
[@&#8203;dennisdoomen](https://redirect.github.com/dennisdoomen) in
[#&#8203;3293](https://redirect.github.com/fluentassertions/fluentassertions/pull/3293)
- Support asserting on delegates that return a value task by
[@&#8203;dennisdoomen](https://redirect.github.com/dennisdoomen) in
[#&#8203;3301](https://redirect.github.com/fluentassertions/fluentassertions/pull/3301)

##### Improvements

- BeEmpty for IEnumerable<T> assertions now lists the first 10 items in…
by [@&#8203;Xceed-DelvaJB](https://redirect.github.com/Xceed-DelvaJB) in
[#&#8203;3198](https://redirect.github.com/fluentassertions/fluentassertions/pull/3198)
- Clean-up the stack trace further by
[@&#8203;jnyrup](https://redirect.github.com/jnyrup) in
[#&#8203;3290](https://redirect.github.com/fluentassertions/fluentassertions/pull/3290)
- Add HaveLineCount()/NotHaveLineCount() and
ContainLine()/NotContainLine() to StringAssertions by
[@&#8203;dennisdoomen](https://redirect.github.com/dennisdoomen) in
[#&#8203;3297](https://redirect.github.com/fluentassertions/fluentassertions/pull/3297)
- Add public ValueTypeAssertions\<TSubject, TAssertions> base class by
[@&#8203;dennisdoomen](https://redirect.github.com/dennisdoomen) in
[#&#8203;3308](https://redirect.github.com/fluentassertions/fluentassertions/pull/3308)

##### Fixes

- Fix JsonNodeAssertions.HaveProperty/NotHaveProperty for properties
with explicit null values by
[@&#8203;dennisdoomen](https://redirect.github.com/dennisdoomen) with
[@&#8203;Copilot](https://redirect.github.com/Copilot) in
[#&#8203;3282](https://redirect.github.com/fluentassertions/fluentassertions/pull/3282)
- Fix exception on `HaveProperty` on `JsonArray` by
[@&#8203;jnyrup](https://redirect.github.com/jnyrup) in
[#&#8203;3295](https://redirect.github.com/fluentassertions/fluentassertions/pull/3295)
- Fix potential NREs when using AssertionScope
([#&#8203;3178](https://redirect.github.com/fluentassertions/fluentassertions/issues/3178))
by [@&#8203;dennisdoomen](https://redirect.github.com/dennisdoomen) in
[#&#8203;3323](https://redirect.github.com/fluentassertions/fluentassertions/pull/3323)

##### Documentation

- Fix typos by [@&#8203;jnyrup](https://redirect.github.com/jnyrup) in
[#&#8203;3310](https://redirect.github.com/fluentassertions/fluentassertions/pull/3310)
- Fix typo in exceptions page by
[@&#8203;jpgomezv](https://redirect.github.com/jpgomezv) in
[#&#8203;3317](https://redirect.github.com/fluentassertions/fluentassertions/pull/3317)

##### Others

- Simplify GetMinValue/GetMaxValue by
[@&#8203;jnyrup](https://redirect.github.com/jnyrup) in
[#&#8203;3210](https://redirect.github.com/fluentassertions/fluentassertions/pull/3210)
- Revert "Bump coverlet.collector from 6.0.4 to 8.0.1" by
[@&#8203;jnyrup](https://redirect.github.com/jnyrup) in
[#&#8203;3218](https://redirect.github.com/fluentassertions/fluentassertions/pull/3218)
- Update nugets by [@&#8203;jnyrup](https://redirect.github.com/jnyrup)
in
[#&#8203;3226](https://redirect.github.com/fluentassertions/fluentassertions/pull/3226)
- Convert the build pipeline from Nuke to Fallout by
[@&#8203;dennisdoomen](https://redirect.github.com/dennisdoomen) in
[#&#8203;3234](https://redirect.github.com/fluentassertions/fluentassertions/pull/3234)
- Expose ShouldThrowOnCyclicReference on IEquivalencyValidationContext
by [@&#8203;dennisdoomen](https://redirect.github.com/dennisdoomen) in
[#&#8203;3242](https://redirect.github.com/fluentassertions/fluentassertions/pull/3242)
- Prevent pwn-request RCE via the Qodana workflow by
[@&#8203;dennisdoomen](https://redirect.github.com/dennisdoomen) in
[#&#8203;3217](https://redirect.github.com/fluentassertions/fluentassertions/pull/3217)
- Harden NPM install by
[@&#8203;jnyrup](https://redirect.github.com/jnyrup) in
[#&#8203;3258](https://redirect.github.com/fluentassertions/fluentassertions/pull/3258)
- Pin System.Security.Cryptography.Xml to patched version to fix build
restore failures by
[@&#8203;dennisdoomen](https://redirect.github.com/dennisdoomen) in
[#&#8203;3283](https://redirect.github.com/fluentassertions/fluentassertions/pull/3283)
- Exclude dependabot PRs from auto-generated release notes by
[@&#8203;dennisdoomen](https://redirect.github.com/dennisdoomen) in
[#&#8203;3294](https://redirect.github.com/fluentassertions/fluentassertions/pull/3294)
- Fix Qodana PR scans failing on pull requests from forks by
[@&#8203;dennisdoomen](https://redirect.github.com/dennisdoomen) in
[#&#8203;3299](https://redirect.github.com/fluentassertions/fluentassertions/pull/3299)
- Cancel duplicate CI runs when a push triggers both push and
pull\_request events by
[@&#8203;dennisdoomen](https://redirect.github.com/dennisdoomen) in
[#&#8203;3298](https://redirect.github.com/fluentassertions/fluentassertions/pull/3298)
- Fix Qodana-flagged possible multiple enumeration and unused
auto-property warnings by
[@&#8203;dennisdoomen](https://redirect.github.com/dennisdoomen) in
[#&#8203;3300](https://redirect.github.com/fluentassertions/fluentassertions/pull/3300)
- Document lessons learned from
[#&#8203;3291](https://redirect.github.com/fluentassertions/fluentassertions/issues/3291)
in agents.md by
[@&#8203;dennisdoomen](https://redirect.github.com/dennisdoomen) in
[#&#8203;3307](https://redirect.github.com/fluentassertions/fluentassertions/pull/3307)
- Pin SDK to workaround 10.0.400 by
[@&#8203;jnyrup](https://redirect.github.com/jnyrup) in
[#&#8203;3309](https://redirect.github.com/fluentassertions/fluentassertions/pull/3309)
- Stop the Build workflow from running twice on same-repo PRs by
[@&#8203;dennisdoomen](https://redirect.github.com/dennisdoomen) in
[#&#8203;3311](https://redirect.github.com/fluentassertions/fluentassertions/pull/3311)
- Update NuGet.Frameworks to workaround Fallout issue by
[@&#8203;jnyrup](https://redirect.github.com/jnyrup) in
[#&#8203;3318](https://redirect.github.com/fluentassertions/fluentassertions/pull/3318)
- Prefer Count > 0 over Any() by
[@&#8203;jnyrup](https://redirect.github.com/jnyrup) in
[#&#8203;3321](https://redirect.github.com/fluentassertions/fluentassertions/pull/3321)
- Correct the arguments passed to `string.Format` on failure by
[@&#8203;jnyrup](https://redirect.github.com/jnyrup) in
[#&#8203;3325](https://redirect.github.com/fluentassertions/fluentassertions/pull/3325)
- Migrate xunit v3 test projects off the VSTest pipeline by
[@&#8203;dennisdoomen](https://redirect.github.com/dennisdoomen) in
[#&#8203;3320](https://redirect.github.com/fluentassertions/fluentassertions/pull/3320)
- Include PackageGuard risk report and SBOM in pipeline by
[@&#8203;dennisdoomen](https://redirect.github.com/dennisdoomen) in
[#&#8203;3324](https://redirect.github.com/fluentassertions/fluentassertions/pull/3324)

#### New Contributors

- [@&#8203;jpgomezv](https://redirect.github.com/jpgomezv) made their
first contribution in
[#&#8203;3317](https://redirect.github.com/fluentassertions/fluentassertions/pull/3317)

**Full Changelog**:
<fluentassertions/fluentassertions@8.10.0...8.11.0>

</details>

---

### Configuration

📅 **Schedule**: (in timezone Europe/Zurich)

- Branch creation
  - "after 9pm,before 6am"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/dotnet/dotnet-operator-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC43OS4xIiwidXBkYXRlZEluVmVyIjoiNDQuNzkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

v13.2.1-prerelease.5

Toggle v13.2.1-prerelease.5's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
deps(core): update dependency ziggycreatures.fusioncache to 2.8.0 (#1245

)

This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
|
[ZiggyCreatures.FusionCache](https://redirect.github.com/ZiggyCreatures/FusionCache)
| `2.7.2` → `2.8.0` |
![age](https://developer.mend.io/api/mc/badges/age/nuget/ZiggyCreatures.FusionCache/2.8.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/ZiggyCreatures.FusionCache/2.7.2/2.8.0?slim=true)
|

---

### Release Notes

<details>
<summary>ZiggyCreatures/FusionCache
(ZiggyCreatures.FusionCache)</summary>

###
[`v2.8.0`](https://redirect.github.com/ZiggyCreatures/FusionCache/releases/tag/v2.8.0)

##### 🔒 Fix for distributed lock release when skipping L2 write

Community member
[@&#8203;joaopbnogueira](https://redirect.github.com/joaopbnogueira)
spotted a problem with an edge case: when using
`SkipDistributedCacheWrite` the distributed locker was not being
properly disposed, which was unfortunate.
Now this has been fixed.

See
[here](https://redirect.github.com/ZiggyCreatures/FusionCache/issues/644)
for the issue.

##### 🏷️ Fix for tag marker re-materialization

Community member
[@&#8203;igor-henriques](https://redirect.github.com/igor-henriques)
noticed an issues because of which when the tag marker (the special
cache entry containing the `RemoveByTag()` timestamp) expired, it was
being re-materialized with a newer timestamp: this could have led to the
same results as a new `RemoveByTag()` call.
That was unfortunate, but it has now been fixed.

See
[here](https://redirect.github.com/ZiggyCreatures/FusionCache/issues/627)
for the issue.

##### 🏷️ Better handling of `RemoveByTagBehavior.Remove`

Community member [@&#8203;gpetrou](https://redirect.github.com/gpetrou)
asked for some help regarding a certain scenario, and during the
explanation/investigation it emerged that FusionCache could have handled
`RemoveByTagBehavior.Remove` in a slightly better way.
It was mostly an edge case, but still: now the way it is internally
handled is even better than before.

See
[here](https://redirect.github.com/ZiggyCreatures/FusionCache/issues/638)
for the issue.

##### 🔭 Better observability for user-initiated cancellations

Community member
[@&#8203;dzmitry-tsarevich](https://redirect.github.com/dzmitry-tsarevich)
highlighted that user-initiated cancellations were being handled in a
little-too-aggressive way from the oint of view of observability: too
much background noise was being generated, which could lead to bloat.
Now this has been made better, slimmer.

See
[here](https://redirect.github.com/ZiggyCreatures/FusionCache/pull/641)
for the issue.

##### 👷 New builder ext methods

Community member [@&#8203;Stepami](https://redirect.github.com/Stepami)
noticed the lack of a specific ext method on the builder to register the
distributed locker based on Redis, basically
`WithRedisDistributedLocker()`.

After accepting his PR, I noticed a couple of extra ones were also
missing, and so I added them.

See
[here](https://redirect.github.com/ZiggyCreatures/FusionCache/issues/619)
for the issue.

Also, community member
[@&#8203;petriceko](https://redirect.github.com/petriceko) asked for a
new overload of the `WithOptions()` ext method with better DI support:
promptly, community member
[@&#8203;vrbyjimmy](https://redirect.github.com/vrbyjimmy) made a PR to
add that, which I merged.
Talk about community collaboration 🙂

See
[here](https://redirect.github.com/ZiggyCreatures/FusionCache/issues/605)
for the issue.

</details>

---

### Configuration

📅 **Schedule**: (in timezone Europe/Zurich)

- Branch creation
  - "after 9pm,before 6am"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/dotnet/dotnet-operator-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC43OS4xIiwidXBkYXRlZEluVmVyIjoiNDQuNzkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

v13.2.1-prerelease.4

Toggle v13.2.1-prerelease.4's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
fix(cli): prevent CLI assembly inspection (#1237)

- Skip inspecting assemblies loaded from the CLI directory to avoid
runtime errors.
- Add `AssemblyLoaderTest` to validate CLI assembly handling logic.
- Document CLI exit codes for enhanced error handling in scripts and CI
pipelines.

v13.2.1-prerelease.3

Toggle v13.2.1-prerelease.3's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
deps(core): update dotnet monorepo to 10.10.0 (#1239)

This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [Microsoft.Extensions.Http.Resilience](https://dot.net/)
([source](https://redirect.github.com/dotnet/extensions)) | `10.9.0` →
`10.10.0` |
![age](https://developer.mend.io/api/mc/badges/age/nuget/Microsoft.Extensions.Http.Resilience/10.10.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/Microsoft.Extensions.Http.Resilience/10.9.0/10.10.0?slim=true)
|
| [Microsoft.Extensions.ServiceDiscovery](https://dot.net/)
([source](https://redirect.github.com/dotnet/extensions)) | `10.9.0` →
`10.10.0` |
![age](https://developer.mend.io/api/mc/badges/age/nuget/Microsoft.Extensions.ServiceDiscovery/10.10.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/Microsoft.Extensions.ServiceDiscovery/10.9.0/10.10.0?slim=true)
|
| [Microsoft.Extensions.TimeProvider.Testing](https://dot.net/)
([source](https://redirect.github.com/dotnet/extensions)) | `10.9.0` →
`10.10.0` |
![age](https://developer.mend.io/api/mc/badges/age/nuget/Microsoft.Extensions.TimeProvider.Testing/10.10.0?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/nuget/Microsoft.Extensions.TimeProvider.Testing/10.9.0/10.10.0?slim=true)
|

---

### Configuration

📅 **Schedule**: (in timezone Europe/Zurich)

- Branch creation
  - "after 9pm,before 6am"
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/dotnet/dotnet-operator-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC43MS4wIiwidXBkYXRlZEluVmVyIjoiNDQuNzEuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>