Skip to content

test(e2e): retry flaky tests with cargo-nextest - #322

Merged
onedr0p merged 1 commit into
mainfrom
test/e2e-nextest-retries
Jul 29, 2026
Merged

onedr0p merged 1 commit into
mainfrom
test/e2e-nextest-retries

Conversation

@onedr0p

@onedr0p onedr0p commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

What

Runs the e2e harness (crates/e2e run task) through cargo-nextest with a dedicated e2e profile that sets retries = 2, so a transiently-failing test is retried in a fresh process inside the same check run instead of failing the whole CI shard.

  • .config/nextest.toml: new e2e profile - retries = 2, test-threads = 1 (the suite is stateful against one shared kind cluster; matches the old libtest --test-threads=1).
  • crates/e2e/mise.toml: cargo test → cargo nextest run --profile e2e; flag mapping is 1:1 (--include-ignored → --run-ignored all, --nocapture → --no-capture, --no-fail-fast and --test <bin> sharding unchanged).
  • .mise/config.toml + lockfile: pin cargo-nextest 0.9.140 via the aqua backend, locked for all 7 platforms.

The hermetic unit suite stays on plain cargo test - its second invocation compile-checks feature-gated targets, which nextest does not replace.

Why

On #307 two consecutive merge-queue runs failed on different e2e shards (apiserver-flap + cli-multicluster, then restore) with the same PR head, and the third unchanged attempt passed. Each flake evicts the queue entry (~30 min) and disarms auto-merge, requiring a manual re-queue. Retrying at the test level absorbs the flake where it happens; a retried-then-passed test reports FLAKY in the job log, so flakes stay visible instead of silently swallowed.

Verified

  • cargo nextest list -P e2e -p kopiur-e2e --features e2e --run-ignored all compiles and enumerates every test binary with the new profile, no config warnings.
  • The exact task invocation (incl. --test sharding and a name filter) parses and selects correctly.
  • Behavior note: a name filter matching zero tests now fails (error: no tests to run) where libtest exited 0 - CI shards always match tests, so this only surfaces a typo'd KOPIUR_E2E_TESTFILTER locally, which failing loudly seems right for.

The e2e suite occasionally flakes on GitHub runners: on PR #307 two
merge-queue attempts failed on different shards (apiserver-flap +
cli-multicluster, then restore) with the same head, and the third
unchanged attempt passed. Each flake evicts the queue entry and needs a
manual re-queue.

Run the e2e harness through cargo-nextest with a dedicated profile
(retries = 2), so a transiently-failing test retries in a fresh process
inside the same check run instead of failing the shard. A
retried-then-passed test reports FLAKY in the job log, keeping the
flake visible. Execution stays serial and unfiltered-ignored, matching
the old libtest flags; the hermetic unit suite stays on plain
cargo test.

Signed-off-by: Devin Buhl <devin@buhl.casa>
@onedr0p
onedr0p enabled auto-merge July 29, 2026 01:05
@greptile-apps

greptile-apps Bot commented Jul 29, 2026

Copy link
Copy Markdown

Greptile Summary

This PR moves the stateful end-to-end suite to cargo-nextest with serial execution and per-test retries.

  • Adds a dedicated e2e nextest profile with two retries and one test thread.
  • Preserves ignored-test execution, output streaming, sharding, filtering, and no-fail-fast behavior.
  • Pins cargo-nextest 0.9.140 through mise and locks its supported platform artifacts.
  • Leaves the unit-test suite on standard cargo test.

Confidence Score: 5/5

The PR appears safe to merge with no actionable defects identified.

The e2e task runs from the workspace root, loads the requested nextest profile, preserves existing test-selection semantics, and receives cargo-nextest through the repository’s established mise provisioning.

T-Rex T-Rex Logs

What T-Rex did

  • The validation summary log consolidates version, warning-free enumeration, exact test selection, runtime execution, and effective profile assertions.
  • The before-and-after e2e profile logs capture the requested profile parsing/listing, showing the state before and after.
  • The profile consumption logs show the before/after values for NEXTEST_TEST_THREADS and NEXTEST_TOTAL_ATTEMPTS, changing from NEXTEST_TEST_THREADS=4 and NEXTEST_TOTAL_ATTEMPTS=1 to NEXTEST_TEST_THREADS=1 and NEXTEST_TOTAL_ATTEMPTS=3.
  • The retries-after log captures the actual execution of the selected ignored e2e test under the changed command shape.

View all artifacts

T-Rex Ran code and verified through T-Rex

Important Files Changed

Filename Overview
.config/nextest.toml Defines the dedicated e2e profile with the intended retry and serial-execution settings.
crates/e2e/mise.toml Correctly migrates the e2e task from libtest to equivalent nextest arguments while preserving CI sharding and filtering.
.mise/config.toml Adds the pinned cargo-nextest tool to the root mise configuration used by CI and nested tasks.
.mise/mise.lock Locks cargo-nextest 0.9.140 artifacts and checksums for the relevant supported platforms.

Reviews (1): Last reviewed commit: "test(e2e): retry flaky tests with cargo-..." | Re-trigger Greptile

@onedr0p
onedr0p added this pull request to the merge queue Jul 29, 2026
Merged via the queue into main with commit 558ac85 Jul 29, 2026
38 checks passed
@onedr0p
onedr0p deleted the test/e2e-nextest-retries branch July 29, 2026 01:48
gabrielcosi pushed a commit to gabrielcosi/home-ops that referenced this pull request Jul 29, 2026
….9.0 ➔ 0.9.1) (#184)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/home-operations/charts/kopiur](https://github.com/home-operations/kopiur) | patch | `0.9.0` → `0.9.1` |

---

### Release Notes

<details>
<summary>home-operations/kopiur (ghcr.io/home-operations/charts/kopiur)</summary>

### [`v0.9.1`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#091-2026-07-29)

[Compare Source](home-operations/kopiur@0.9.0...0.9.1)

##### Features

- **rust:** update crate http (1.4.2 → 1.5.0) ([#&#8203;323](home-operations/kopiur#323)) ([cf0b149](home-operations/kopiur@cf0b149))

##### Bug Fixes

- **controller:** survive a slow API server instead of abdicating on the first one ([#&#8203;319](home-operations/kopiur#319)) ([#&#8203;324](home-operations/kopiur#324)) ([df7e90c](home-operations/kopiur@df7e90c))
- **rust:** update crate rustls (0.23.42 → 0.23.43) ([#&#8203;326](home-operations/kopiur#326)) ([2f5123e](home-operations/kopiur@2f5123e))

##### Tests

- **e2e:** retry flaky tests with cargo-nextest ([#&#8203;322](home-operations/kopiur#322)) ([558ac85](home-operations/kopiur@558ac85))

##### Miscellaneous Chores

- **mise:** Update tool aqua:astral-sh/uv (0.11.33 → 0.12.0) ([#&#8203;320](home-operations/kopiur#320)) ([66ec350](home-operations/kopiur@66ec350))
- **mise:** Update tool node (24.18.0 → v24.18.1) ([#&#8203;325](home-operations/kopiur#325)) ([1c833a4](home-operations/kopiur@1c833a4))

</details>

---

### Configuration

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

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, 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 has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4wLjAiLCJ1cGRhdGVkSW5WZXIiOiI0NC4wLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvcGF0Y2giXX0=-->

Reviewed-on: https://git.xcd.dev/gabrielcosi/home-ops/pulls/184
doonga pushed a commit to greyrock-labs/home-ops that referenced this pull request Jul 30, 2026
….9.0 ➔ 0.9.1) (#210)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/home-operations/charts/kopiur](https://github.com/home-operations/kopiur) | patch | `0.9.0` → `0.9.1` |

---

### Release Notes

<details>
<summary>home-operations/kopiur (ghcr.io/home-operations/charts/kopiur)</summary>

### [`v0.9.1`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#091-2026-07-29)

[Compare Source](home-operations/kopiur@0.9.0...0.9.1)

##### Features

- **rust:** update crate http (1.4.2 → 1.5.0) ([#&#8203;323](home-operations/kopiur#323)) ([cf0b149](home-operations/kopiur@cf0b149))

##### Bug Fixes

- **controller:** survive a slow API server instead of abdicating on the first one ([#&#8203;319](home-operations/kopiur#319)) ([#&#8203;324](home-operations/kopiur#324)) ([df7e90c](home-operations/kopiur@df7e90c))
- **rust:** update crate rustls (0.23.42 → 0.23.43) ([#&#8203;326](home-operations/kopiur#326)) ([2f5123e](home-operations/kopiur@2f5123e))

##### Tests

- **e2e:** retry flaky tests with cargo-nextest ([#&#8203;322](home-operations/kopiur#322)) ([558ac85](home-operations/kopiur@558ac85))

##### Miscellaneous Chores

- **mise:** Update tool aqua:astral-sh/uv (0.11.33 → 0.12.0) ([#&#8203;320](home-operations/kopiur#320)) ([66ec350](home-operations/kopiur@66ec350))
- **mise:** Update tool node (24.18.0 → v24.18.1) ([#&#8203;325](home-operations/kopiur#325)) ([1c833a4](home-operations/kopiur@1c833a4))

</details>

---

### Configuration

📅 **Schedule**: (in timezone America/New_York)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, 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 has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4wLjAiLCJ1cGRhdGVkSW5WZXIiOiI0NC4wLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvcGF0Y2giXX0=-->

Reviewed-on: https://git.greyrock.io/greyrock-labs/home-ops/pulls/210
eleboucher pushed a commit to eleboucher/homelab that referenced this pull request Jul 31, 2026
….9.0 ➔ 0.9.1) (#1780)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/home-operations/charts/kopiur](https://github.com/home-operations/kopiur) | patch | `0.9.0` → `0.9.1` |

---

> ⚠️ **Warning**
>
> Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/567) for more information.

---

### Release Notes

<details>
<summary>home-operations/kopiur (ghcr.io/home-operations/charts/kopiur)</summary>

### [`v0.9.1`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#091-2026-07-29)

[Compare Source](home-operations/kopiur@0.9.0...0.9.1)

##### Features

- **rust:** update crate http (1.4.2 → 1.5.0) ([#&#8203;323](home-operations/kopiur#323)) ([cf0b149](home-operations/kopiur@cf0b149))

##### Bug Fixes

- **controller:** survive a slow API server instead of abdicating on the first one ([#&#8203;319](home-operations/kopiur#319)) ([#&#8203;324](home-operations/kopiur#324)) ([df7e90c](home-operations/kopiur@df7e90c))
- **rust:** update crate rustls (0.23.42 → 0.23.43) ([#&#8203;326](home-operations/kopiur#326)) ([2f5123e](home-operations/kopiur@2f5123e))

##### Tests

- **e2e:** retry flaky tests with cargo-nextest ([#&#8203;322](home-operations/kopiur#322)) ([558ac85](home-operations/kopiur@558ac85))

##### Miscellaneous Chores

- **mise:** Update tool aqua:astral-sh/uv (0.11.33 → 0.12.0) ([#&#8203;320](home-operations/kopiur#320)) ([66ec350](home-operations/kopiur@66ec350))
- **mise:** Update tool node (24.18.0 → v24.18.1) ([#&#8203;325](home-operations/kopiur#325)) ([1c833a4](home-operations/kopiur@1c833a4))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, 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 has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDEuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEwMS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL3BhdGNoIl19-->

Reviewed-on: https://git.erwanleboucher.dev/eleboucher/homelab/pulls/1780
hbjydev pushed a commit to hbjydev/phoebe that referenced this pull request Aug 27, 2026
…0.7.3 → 0.10.4) (#273)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/home-operations/charts/kopiur](https://github.com/home-operations/kopiur) | minor | `0.7.3` → `0.10.4` |

---

> ⚠️ **Warning**
>
> Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/141) for more information.

---

### Release Notes

<details>
<summary>home-operations/kopiur (ghcr.io/home-operations/charts/kopiur)</summary>

### [`v0.10.4`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#0104-2026-08-24)

[Compare Source](home-operations/kopiur@0.10.3...0.10.4)

##### Bug Fixes

- **chart:** give flowSchema its doc comment and timings a clean schema entry ([#&#8203;397](home-operations/kopiur#397)) ([7c8dd3f](home-operations/kopiur@7c8dd3f))
- **mover:** read status.resolved via the /status subresource ([#&#8203;408](home-operations/kopiur#408)) ([06fc2f9](home-operations/kopiur@06fc2f9))

##### Miscellaneous Chores

- **github-action:** update action docker/github-builder (v1.16.0 → v1.17.0) ([#&#8203;407](home-operations/kopiur#407)) ([b6d7d04](home-operations/kopiur@b6d7d04))
- **mise:** update mise tools ([#&#8203;400](home-operations/kopiur#400)) ([b1a83f8](home-operations/kopiur@b1a83f8))
- **mise:** update tool kubectl (1.36.3 → 1.36.4) ([#&#8203;405](home-operations/kopiur#405)) ([274e3d6](home-operations/kopiur@274e3d6))
- **mise:** update tool lefthook (2.1.10 → 2.1.11) ([#&#8203;406](home-operations/kopiur#406)) ([2ba700d](home-operations/kopiur@2ba700d))
- **mise:** update tool rust (1.97.1 → 1.98.0) ([#&#8203;403](home-operations/kopiur#403)) ([c655005](home-operations/kopiur@c655005))
- **mise:** update tool yq (4.53.3 → 4.53.4) ([#&#8203;402](home-operations/kopiur#402)) ([d1ed8a7](home-operations/kopiur@d1ed8a7))
- **mise:** update tool yq (4.53.4 → 4.53.6) ([#&#8203;404](home-operations/kopiur#404)) ([dd5878c](home-operations/kopiur@dd5878c))

### [`v0.10.3`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#0103-2026-08-18)

[Compare Source](home-operations/kopiur@0.10.2...0.10.3)

##### Features

- **repository:** seed a fresh repository from its replica — DR for replicated repositories ([#&#8203;380](home-operations/kopiur#380)) ([#&#8203;396](home-operations/kopiur#396)) ([74665dc](home-operations/kopiur@74665dc))

##### Bug Fixes

- **rust:** update crate cel (0.14.2 → 0.14.3) ([#&#8203;387](home-operations/kopiur#387)) ([bf9aa0c](home-operations/kopiur@bf9aa0c))
- **rust:** update crate http-body-util (0.1.4 → 0.1.5) ([#&#8203;381](home-operations/kopiur#381)) ([6354e17](home-operations/kopiur@6354e17))

##### Miscellaneous Chores

- **github-action:** update action jdx/mise-action (v4.2.4 → v4.2.5) ([#&#8203;388](home-operations/kopiur#388)) ([1040c9e](home-operations/kopiur@1040c9e))
- **mise:** update tool aqua:astral-sh/uv (0.12.3 → 0.12.4) ([#&#8203;390](home-operations/kopiur#390)) ([bf3916c](home-operations/kopiur@bf3916c))
- **mise:** update tool aqua:astral-sh/uv (0.12.4 → 0.12.5) ([#&#8203;395](home-operations/kopiur#395)) ([b919878](home-operations/kopiur@b919878))
- **mise:** update tool helm (4.2.3 → 4.2.4) ([#&#8203;389](home-operations/kopiur#389)) ([5b134fa](home-operations/kopiur@5b134fa))
- **mise:** Update tool oxfmt (0.62.0 → 0.63.0) ([#&#8203;386](home-operations/kopiur#386)) ([65db237](home-operations/kopiur@65db237))

### [`v0.10.2`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#0102-2026-08-13)

[Compare Source](home-operations/kopiur@0.10.1...0.10.2)

##### Performance Improvements

- **controller:** store-backed reads, LIST dedup, bounded PVC retries, client-side request metrics ([#&#8203;382](home-operations/kopiur#382)) ([#&#8203;383](home-operations/kopiur#383)) ([2b07022](home-operations/kopiur@2b07022))

### [`v0.10.1`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#0101-2026-08-11)

[Compare Source](home-operations/kopiur@0.10.0...0.10.1)

##### Bug Fixes

- **mise:** something about mise warnings ([#&#8203;373](home-operations/kopiur#373)) ([fde8073](home-operations/kopiur@fde8073))
- **rust:** update crate cel (0.14.1 → 0.14.2) ([#&#8203;379](home-operations/kopiur#379)) ([4a60221](home-operations/kopiur@4a60221))
- **rust:** update crate futures (0.3.33 → 0.3.34) ([#&#8203;378](home-operations/kopiur#378)) ([ff657b8](home-operations/kopiur@ff657b8))
- **rust:** update crate rcgen (0.14.8 → 0.14.9) ([#&#8203;377](home-operations/kopiur#377)) ([e3b3b3f](home-operations/kopiur@e3b3b3f))

##### Miscellaneous Chores

- **mise:** Update tool aqua:astral-sh/uv (0.12.2 → 0.12.3) ([#&#8203;375](home-operations/kopiur#375)) ([952af6d](home-operations/kopiur@952af6d))

### [`v0.10.0`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#0100-2026-08-09)

[Compare Source](home-operations/kopiur@0.9.5...0.10.0)

##### ⚠ BREAKING CHANGES

- **rust:** Update crate base64 (0.22.1 → 0.23.1) ([#&#8203;366](home-operations/kopiur#366))

##### Features

- **rust:** Update crate base64 (0.22.1 → 0.23.1) ([#&#8203;366](home-operations/kopiur#366)) ([2c6e3e7](home-operations/kopiur@2c6e3e7))
- SnapshotReplication (logical snapshot-level replication) + SnapshotPolicy multi-repository fan-out ([#&#8203;370](home-operations/kopiur#370)) ([4e06e42](home-operations/kopiur@4e06e42))

##### Continuous Integration

- **github-action:** Update action Swatinem/rust-cache (v2.9.1 → v2.9.2) ([#&#8203;372](home-operations/kopiur#372)) ([e4ce173](home-operations/kopiur@e4ce173))

##### Miscellaneous Chores

- **mise:** Update mise tools ([#&#8203;367](home-operations/kopiur#367)) ([d6f82f4](home-operations/kopiur@d6f82f4))
- **mise:** Update tool cosign (3.1.2 → 3.1.3) ([#&#8203;371](home-operations/kopiur#371)) ([558b9f4](home-operations/kopiur@558b9f4))

### [`v0.9.5`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#095-2026-08-08)

[Compare Source](home-operations/kopiur@0.9.4...0.9.5)

##### Bug Fixes

- deliver s3 tls.caBundleRef to every kopia invocation ([#&#8203;365](home-operations/kopiur#365)) ([cda0237](home-operations/kopiur@cda0237))
- doctor misses structurally-blocked work ([#&#8203;359](home-operations/kopiur#359)) + phase/gate exhaustiveness ratchet ([#&#8203;363](home-operations/kopiur#363)) ([b844974](home-operations/kopiur@b844974))
- **rust:** update crate thiserror (2.0.19 → 2.0.20) ([#&#8203;360](home-operations/kopiur#360)) ([4aa646d](home-operations/kopiur@4aa646d))

##### Continuous Integration

- **github-action:** Update action docker/github-builder (v1.15.0 → v1.16.0) ([#&#8203;362](home-operations/kopiur#362)) ([db32818](home-operations/kopiur@db32818))

### [`v0.9.4`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#094-2026-08-08)

[Compare Source](home-operations/kopiur@0.9.3...0.9.4)

##### Features

- **docs:** Update README.md ([#&#8203;358](home-operations/kopiur#358)) ([05d2506](home-operations/kopiur@05d2506))

##### Bug Fixes

- implement pvcSelector/groupBy ([#&#8203;346](home-operations/kopiur#346)) and model deduped backups as Unchanged ([#&#8203;351](home-operations/kopiur#351)) ([#&#8203;354](home-operations/kopiur#354)) ([a2b9ae6](home-operations/kopiur@a2b9ae6))
- **rust:** update crate clap (4.6.5 → 4.6.6) ([#&#8203;357](home-operations/kopiur#357)) ([e9ca396](home-operations/kopiur@e9ca396))

##### Miscellaneous Chores

- **mise:** Update tool node (24.18.1 → v24.19.0) ([#&#8203;353](home-operations/kopiur#353)) ([2f28c6d](home-operations/kopiur@2f28c6d))
- **mise:** Update tool oxfmt (0.61.0 → 0.62.0) ([#&#8203;356](home-operations/kopiur#356)) ([e95df6b](home-operations/kopiur@e95df6b))

### [`v0.9.3`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#093-2026-08-05)

[Compare Source](home-operations/kopiur@0.9.2...0.9.3)

##### Features

- repository-level circuit breaker — stop fanning out doomed Jobs when the backend is unreachable ([#&#8203;350](home-operations/kopiur#350)) ([5d787b9](home-operations/kopiur@5d787b9))

##### Bug Fixes

- **rust:** update crate base64 (0.23.0 → 0.23.1) ([#&#8203;349](home-operations/kopiur#349)) ([11e7aa8](home-operations/kopiur@11e7aa8))

##### Continuous Integration

- **github-action:** Update action jdx/mise-action (v4.2.3 → v4.2.4) ([#&#8203;347](home-operations/kopiur#347)) ([1c9cf3b](home-operations/kopiur@1c9cf3b))

##### Miscellaneous Chores

- **renovate:** keep 0.x minors out of automerge ([#&#8203;352](home-operations/kopiur#352)) ([95d672a](home-operations/kopiur@95d672a))

### [`v0.9.2`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#092-2026-08-02)

[Compare Source](home-operations/kopiur@0.9.1...0.9.2)

##### Features

- **repository:** object-lock blob retention ([#&#8203;332](home-operations/kopiur#332)); fix blank volumeSnapshotClassName ([#&#8203;344](home-operations/kopiur#344)) ([dab8fdd](home-operations/kopiur@dab8fdd))

##### Bug Fixes

- **ci:** fail the merge gate on cancelled jobs, and cut e2e artifact time ([#&#8203;330](home-operations/kopiur#330)) ([1847a8a](home-operations/kopiur@1847a8a))
- **rust:** update crate time (0.3.54 → 0.3.55) ([#&#8203;337](home-operations/kopiur#337)) ([ee1b951](home-operations/kopiur@ee1b951))

##### Continuous Integration

- **github-action:** Update action docker/github-builder (v1.14.0 → v1.15.0) ([#&#8203;327](home-operations/kopiur#327)) ([f5514fc](home-operations/kopiur@f5514fc))
- **github-action:** Update action docker/login-action (v4.5.1 → v4.5.2) ([#&#8203;331](home-operations/kopiur#331)) ([d90efdf](home-operations/kopiur@d90efdf))
- **github-action:** Update action docker/login-action (v4.5.2 → v4.6.0) ([#&#8203;339](home-operations/kopiur#339)) ([b783bcc](home-operations/kopiur@b783bcc))
- **github-action:** Update action home-operations/.github/actions/workflow-lint (v1.0.2 → v1.0.3) ([#&#8203;343](home-operations/kopiur#343)) ([4af16d5](home-operations/kopiur@4af16d5))
- update shared actions and use self-repository syntax ([#&#8203;341](home-operations/kopiur#341)) ([559e23f](home-operations/kopiur@559e23f))

##### Miscellaneous Chores

- **deps:** lock file maintenance (pep621) ([#&#8203;334](home-operations/kopiur#334)) ([e19ae0e](home-operations/kopiur@e19ae0e))
- **mise:** Lock file maintenance tool (mise) ([#&#8203;335](home-operations/kopiur#335)) ([666afb5](home-operations/kopiur@666afb5))
- **mise:** prune lockfile to used platforms ([#&#8203;342](home-operations/kopiur#342)) ([741d6a4](home-operations/kopiur@741d6a4))
- **mise:** Update tool aqua:astral-sh/uv (0.12.0 → 0.12.1) ([#&#8203;333](home-operations/kopiur#333)) ([3ed2766](home-operations/kopiur@3ed2766))
- **mise:** Update tool promtool (3.13.1 → 3.13.2) ([#&#8203;329](home-operations/kopiur#329)) ([ac1752e](home-operations/kopiur@ac1752e))
- **mise:** Update tool zizmor (1.28.0 → 1.29.0) ([#&#8203;340](home-operations/kopiur#340)) ([410dc26](home-operations/kopiur@410dc26))
- **release-please:** standardize the release pull request title pattern ([#&#8203;338](home-operations/kopiur#338)) ([21013a3](home-operations/kopiur@21013a3))
- **rust:** lock file maintenance crate (cargo) ([#&#8203;336](home-operations/kopiur#336)) ([8606177](home-operations/kopiur@8606177))

### [`v0.9.1`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#091-2026-07-29)

[Compare Source](home-operations/kopiur@0.9.0...0.9.1)

##### Features

- **rust:** update crate http (1.4.2 → 1.5.0) ([#&#8203;323](home-operations/kopiur#323)) ([cf0b149](home-operations/kopiur@cf0b149))

##### Bug Fixes

- **controller:** survive a slow API server instead of abdicating on the first one ([#&#8203;319](home-operations/kopiur#319)) ([#&#8203;324](home-operations/kopiur#324)) ([df7e90c](home-operations/kopiur@df7e90c))
- **rust:** update crate rustls (0.23.42 → 0.23.43) ([#&#8203;326](home-operations/kopiur#326)) ([2f5123e](home-operations/kopiur@2f5123e))

##### Tests

- **e2e:** retry flaky tests with cargo-nextest ([#&#8203;322](home-operations/kopiur#322)) ([558ac85](home-operations/kopiur@558ac85))

##### Miscellaneous Chores

- **mise:** Update tool aqua:astral-sh/uv (0.11.33 → 0.12.0) ([#&#8203;320](home-operations/kopiur#320)) ([66ec350](home-operations/kopiur@66ec350))
- **mise:** Update tool node (24.18.0 → v24.18.1) ([#&#8203;325](home-operations/kopiur#325)) ([1c833a4](home-operations/kopiur@1c833a4))

### [`v0.9.0`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#090-2026-07-28)

[Compare Source](home-operations/kopiur@0.8.1...0.9.0)

##### ⚠ BREAKING CHANGES

- **rust:** Update crate serial\_test (3.5.0 → 4.0.1) ([#&#8203;307](home-operations/kopiur#307))
- **secctx:** identity-aware mover merge, recorded snapshot identity, restore inherit-from-snapshot ([#&#8203;304](home-operations/kopiur#304))

##### Features

- **rust:** Update crate serial\_test (3.5.0 → 4.0.1) ([#&#8203;307](home-operations/kopiur#307)) ([4392e4a](home-operations/kopiur@4392e4a))
- **secctx:** identity-aware mover merge, recorded snapshot identity, restore inherit-from-snapshot ([#&#8203;304](home-operations/kopiur#304)) ([0632a29](home-operations/kopiur@0632a29))

##### Bug Fixes

- **rust:** update crate cel (0.14.0 → 0.14.1) ([#&#8203;317](home-operations/kopiur#317)) ([00cf539](home-operations/kopiur@00cf539))
- **rust:** update crate schemars (1.2.1 → 1.2.2) ([#&#8203;313](home-operations/kopiur#313)) ([b6e6268](home-operations/kopiur@b6e6268))

##### Build System

- **mise:** add actionlint and refresh the lockfile ([#&#8203;309](home-operations/kopiur#309)) ([e74c9b3](home-operations/kopiur@e74c9b3))

##### Continuous Integration

- adopt the shared workflow-lint and docs-build actions ([#&#8203;310](home-operations/kopiur#310)) ([7d4b329](home-operations/kopiur@7d4b329))
- gate pull requests on Build Success and share the docs build ([#&#8203;306](home-operations/kopiur#306)) ([1b693aa](home-operations/kopiur@1b693aa))
- **github-action:** Update action docker/login-action (v4.5.0 → v4.5.1) ([#&#8203;312](home-operations/kopiur#312)) ([29d00b1](home-operations/kopiur@29d00b1))
- **github-action:** Update action jdx/mise-action (v4.2.1 → v4.2.2) ([#&#8203;311](home-operations/kopiur#311)) ([65bbca4](home-operations/kopiur@65bbca4))
- **github-action:** Update action jdx/mise-action (v4.2.2 → v4.2.3) ([#&#8203;315](home-operations/kopiur#315)) ([5f517d4](home-operations/kopiur@5f517d4))
- skip release-please PRs in checks and drop nightly e2e ([#&#8203;305](home-operations/kopiur#305)) ([ee6d4f5](home-operations/kopiur@ee6d4f5))

##### Miscellaneous Chores

- **krew:** kopiur 0.8.1 manifest ([84df757](home-operations/kopiur@84df757))
- **mise:** Update tool aqua:astral-sh/uv (0.11.32 → 0.11.33) ([#&#8203;318](home-operations/kopiur#318)) ([f63bc3a](home-operations/kopiur@f63bc3a))
- **mise:** Update tool oxfmt (0.60.0 → 0.61.0) ([#&#8203;314](home-operations/kopiur#314)) ([bdbf6c6](home-operations/kopiur@bdbf6c6))
- **renovate:** drop the stale automerge overrides ([#&#8203;308](home-operations/kopiur#308)) ([c13a3d5](home-operations/kopiur@c13a3d5))
- standardize release-please changelog sections ([#&#8203;316](home-operations/kopiur#316)) ([273d0f8](home-operations/kopiur@273d0f8))

### [`v0.8.1`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#081-2026-07-24)

[Compare Source](home-operations/kopiur@0.8.0...0.8.1)

##### Features

- **deps:** update rust crate base64 (0.22.1 → 0.23.0) ([#&#8203;293](home-operations/kopiur#293)) ([5ab14d5](home-operations/kopiur@5ab14d5))
- **deps:** update rust crate kube (4.0.0 → 4.2.0) ([#&#8203;288](home-operations/kopiur#288)) ([b067458](home-operations/kopiur@b067458))
- httpRequest hook headers ([#&#8203;290](home-operations/kopiur#290)) + recovery-aware alerts ([#&#8203;280](home-operations/kopiur#280)) ([#&#8203;296](home-operations/kopiur#296)) ([f388a14](home-operations/kopiur@f388a14))
- **renovate:** automerge if it passes CI ([66f243f](home-operations/kopiur@66f243f))

##### Bug Fixes

- **controller:** survive an API-server outage without exhausting file descriptors ([#&#8203;287](home-operations/kopiur#287)) ([ce184b6](home-operations/kopiur@ce184b6))
- **deps:** update rust crate clap (4.6.2 → 4.6.3) ([#&#8203;277](home-operations/kopiur#277)) ([e3d4113](home-operations/kopiur@e3d4113))
- **deps:** update rust crate libc (0.2.186 → 0.2.189) ([#&#8203;283](home-operations/kopiur#283)) ([2b2e636](home-operations/kopiur@2b2e636))
- **deps:** update rust crate serde\_json (1.0.150 → 1.0.151) ([#&#8203;275](home-operations/kopiur#275)) ([1410f42](home-operations/kopiur@1410f42))
- **deps:** update rust crate time (0.3.53 → 0.3.54) ([#&#8203;276](home-operations/kopiur#276)) ([ff250ff](home-operations/kopiur@ff250ff))
- **deps:** update rust crate tokio (1.53.0 → 1.53.1) ([#&#8203;281](home-operations/kopiur#281)) ([82082e9](home-operations/kopiur@82082e9))
- **helm:** stamp Chart.yaml version on release + document image sub-fields ([#&#8203;289](home-operations/kopiur#289)) ([041549a](home-operations/kopiur@041549a))
- **probe:** stamp the health probe at launch so it stops recycling its Job ([#&#8203;273](home-operations/kopiur#273)) ([#&#8203;278](home-operations/kopiur#278)) ([7fa3657](home-operations/kopiur@7fa3657))
- **release:** use the generic updater for Chart.yaml + stamp README badges ([#&#8203;292](home-operations/kopiur#292)) ([f4a3141](home-operations/kopiur@f4a3141))
- retention-aware adoption stops the adopt/prune/rediscover livelock ([#&#8203;299](home-operations/kopiur#299)) ([4093f12](home-operations/kopiur@4093f12))

##### Styles

- indent markdown at 2 to match embedded yaml ([#&#8203;279](home-operations/kopiur#279)) ([06885e0](home-operations/kopiur@06885e0))

##### Miscellaneous Chores

- **github-release:** Update release helm-unittest/helm-unittest (v1.1.1 → v1.1.2) ([#&#8203;301](home-operations/kopiur#301)) ([e62272d](home-operations/kopiur@e62272d))
- **krew:** kopiur 0.8.0 manifest ([2be416f](home-operations/kopiur@2be416f))
- **mise:** Update tool aqua:astral-sh/uv (0.11.29 → 0.11.30) ([#&#8203;282](home-operations/kopiur#282)) ([e12f96c](home-operations/kopiur@e12f96c))
- **mise:** Update tool aqua:astral-sh/uv (0.11.30 → 0.11.31) ([#&#8203;286](home-operations/kopiur#286)) ([a3f31e6](home-operations/kopiur@a3f31e6))
- **mise:** Update tool aqua:astral-sh/uv (0.11.31 → 0.11.32) ([#&#8203;298](home-operations/kopiur#298)) ([9d8c171](home-operations/kopiur@9d8c171))
- **mise:** Update tool kubectl (1.36.2 → 1.36.3) ([#&#8203;291](home-operations/kopiur#291)) ([ef290f8](home-operations/kopiur@ef290f8))
- **mise:** Update tool oxfmt (0.59.0 → 0.60.0) ([#&#8203;284](home-operations/kopiur#284)) ([ad8a18a](home-operations/kopiur@ad8a18a))
- **mise:** Update tool rust (1.96.1 → 1.97.1) ([#&#8203;222](home-operations/kopiur#222)) ([fbeb2fa](home-operations/kopiur@fbeb2fa))
- **mise:** Update tool zizmor (1.27.0 → 1.28.0) ([#&#8203;285](home-operations/kopiur#285)) ([9ef35ce](home-operations/kopiur@9ef35ce))

### [`v0.8.0`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#080-2026-07-19)

[Compare Source](home-operations/kopiur@0.7.5...0.8.0)

##### ⚠ BREAKING CHANGES

- SnapshotPolicy deletion cascade + auto-adoption of discovered snapshots ([#&#8203;272](home-operations/kopiur#272))

##### Features

- **deps:** update rust crate tokio (1.52.4 → 1.53.0) ([#&#8203;264](home-operations/kopiur#264)) ([6cab0c6](home-operations/kopiur@6cab0c6))
- mass-deletion protection (cascade guard, per-repo breaker, batched deletes) ([#&#8203;265](home-operations/kopiur#265)) ([038ea6d](home-operations/kopiur@038ea6d))
- SnapshotPolicy deletion cascade + auto-adoption of discovered snapshots ([#&#8203;272](home-operations/kopiur#272)) ([9da8c26](home-operations/kopiur@9da8c26))

##### Bug Fixes

- **deps:** update rust crate anyhow (1.0.103 → 1.0.104) ([#&#8203;269](home-operations/kopiur#269)) ([4d81496](home-operations/kopiur@4d81496))
- **deps:** update rust crate clap (4.6.1 → 4.6.2) ([#&#8203;257](home-operations/kopiur#257)) ([c238df1](home-operations/kopiur@c238df1))
- **deps:** update rust crate futures (0.3.32 → 0.3.33) ([#&#8203;268](home-operations/kopiur#268)) ([926b52d](home-operations/kopiur@926b52d))
- **deps:** update rust crate serde (1.0.228 → 1.0.229) ([#&#8203;270](home-operations/kopiur#270)) ([5fbd713](home-operations/kopiur@5fbd713))
- **deps:** update rust crate thiserror (2.0.18 → 2.0.19) ([#&#8203;271](home-operations/kopiur#271)) ([d83730f](home-operations/kopiur@d83730f))
- **deps:** update rust crate tokio (1.52.3 → 1.52.4) ([#&#8203;261](home-operations/kopiur#261)) ([accf6ae](home-operations/kopiur@accf6ae))
- writable backup source ([#&#8203;254](home-operations/kopiur#254)), stuck deletion finalizer ([#&#8203;255](home-operations/kopiur#255)), kopia epoch parameters ([#&#8203;258](home-operations/kopiur#258)) ([#&#8203;263](home-operations/kopiur#263)) ([94f9a15](home-operations/kopiur@94f9a15))

##### Miscellaneous Chores

- **krew:** kopiur 0.7.5 manifest ([16d7390](home-operations/kopiur@16d7390))
- **mise:** Update tool aqua:astral-sh/uv (0.11.28 → 0.11.29) ([#&#8203;256](home-operations/kopiur#256)) ([f822335](home-operations/kopiur@f822335))
- **mise:** Update tool cosign (3.1.1 → 3.1.2) ([#&#8203;267](home-operations/kopiur#267)) ([649ba2e](home-operations/kopiur@649ba2e))

### [`v0.7.5`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#075-2026-07-16)

[Compare Source](home-operations/kopiur@0.7.4...0.7.5)

##### Bug Fixes

- **readme:** update readme admonition ([987957c](home-operations/kopiur@987957c))
- **secctx:** SecurityContextCompatible is verified, not asserted; inherit merges with explicit ([#&#8203;259](home-operations/kopiur#259)) ([cbfd97d](home-operations/kopiur@cbfd97d))

### [`v0.7.4`](https://github.com/home-operations/kopiur/blob/HEAD/CHANGELOG.md#074-2026-07-15)

[Compare Source](home-operations/kopiur@0.7.3...0.7.4)

##### Features

- bound Snapshot CR reconcile cost at scale ([#&#8203;249](home-operations/kopiur#249)) ([#&#8203;253](home-operations/kopiur#253)) ([3697aa9](home-operations/kopiur@3697aa9))
- **docs:** clean up admonitions in docs ([71c5d85](home-operations/kopiur@71c5d85))
- multi-cluster shared repository support — cluster identity, foreign-aware discovery, collision-free maintenance leases ([#&#8203;251](home-operations/kopiur#251)) ([a4593d8](home-operations/kopiur@a4593d8))

##### Bug Fixes

- batch of six open-issue fixes ([#&#8203;248](home-operations/kopiur#248) [#&#8203;238](home-operations/kopiur#238) [#&#8203;245](home-operations/kopiur#245) [#&#8203;196](home-operations/kopiur#196) [#&#8203;237](home-operations/kopiur#237) [#&#8203;250](home-operations/kopiur#250)) ([#&#8203;252](home-operations/kopiur#252)) ([045a5a5](home-operations/kopiur@045a5a5))
- **deps:** update rust crate http-body-util (0.1.3 → 0.1.4) ([#&#8203;244](home-operations/kopiur#244)) ([4878006](home-operations/kopiur@4878006))
- **deps:** update rust crate rustls (0.23.41 → 0.23.42) ([#&#8203;243](home-operations/kopiur#243)) ([13b1dc4](home-operations/kopiur@13b1dc4))

##### Miscellaneous Chores

- **krew:** kopiur 0.7.3 manifest ([d521675](home-operations/kopiur@d521675))
- **mise:** Update tool aqua:EmbarkStudios/cargo-deny (0.19.9 → 0.20.2) ([#&#8203;226](home-operations/kopiur#226)) ([9c109b4](home-operations/kopiur@9c109b4))
- **mise:** Update tool oxfmt (0.58.0 → 0.59.0) ([#&#8203;246](home-operations/kopiur#246)) ([41625e9](home-operations/kopiur@41625e9))
- **mise:** Update tool zizmor (1.26.1 → 1.27.0) ([#&#8203;247](home-operations/kopiur#247)) ([fe10a6a](home-operations/kopiur@fe10a6a))

</details>

---

### Configuration

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

- Branch creation
  - At any time (no schedule defined)
- 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 has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNjAuMiIsInVwZGF0ZWRJblZlciI6IjQ0LjQ2LjUiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvbWlub3IiXX0=-->

Reviewed-on: https://forgejo.hayden.moe/hayden/phoebe/pulls/273
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant