Skip to content

butane/openshift: stabilize spec 5.0.0 - #2334

Merged
prestist merged 4 commits into
coreos:mainfrom
prestist:butane-openshift-5.0
Oct 2, 2026
Merged

prestist merged 4 commits into
coreos:mainfrom
prestist:butane-openshift-5.0

Conversation

@prestist

@prestist prestist commented Sep 28, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • Stabilize Butane openshift 5.0.0, based on the existing 4.22 implementation and targeting Ignition 3.5.0, which OCP 5.0's MCO currently parses.
  • Add openshift 5.1.0-experimental by copying the existing 4.23 experimental implementation, including its Ignition 3.7.0-experimental target and experimental GRUB behavior. Keep 4.23.0-experimental available and unchanged in behavior.
  • Add translation, validation, dispatch, experimental-parity, and documentation regression coverage, plus generated specs, upgrade guidance, and release notes.

Related to #2333. Follows the stabilization and next-experimental-spec structure from coreos/butane#704, accounting for the compatibility correction discussed in coreos/butane#715.

Commit structure

  1. butane/openshift: stabilize spec 5.0.0
  2. butane/openshift: add v5_1_exp
  3. butane/docs: update for OpenShift 5.0.0 stabilization
  4. butane/openshift: add stabilization regression tests

Compatibility and scope

OpenShift spec Ignition target GRUB in MachineConfig output
5.0.0 3.5.0 Rejected, matching stable 4.22
5.1.0-experimental 3.7.0-experimental Retains the experimental 4.23 implementation
4.23.0-experimental 3.7.0-experimental Unchanged

The inspected MCO release-5.0 revision imports config/v3_5 and uses its ParseCompatibleVersion entry point:
https://github.com/openshift/machine-config-operator/blob/cafc37a760319b235d5301e3790f83e2de9d78f7/pkg/controller/common/helpers.go#L32-L33

Stable 5.0 therefore uses fcos/v1_6, base/v0_6, and Ignition config/v3_5, with the MCO restrictions tracked in #2279. Experimental 5.1 mirrors 4.23 using fcos/v1_8_exp, base/v0_8_exp, and config/v3_7_experimental. Experimental features are for development and testing and do not imply OCP 5.0 MCO support.

No existing translator behavior, Ignition specs, or dependencies are changed. OCP 4.23 stabilization remains separate.

Documentation distinguishes stable and experimental features, fixes prerelease matching for the special-mode-bit warning, and refreshes generated OpenShift specs/navigation. Regenerating the 4.23 experimental page also picks up its existing virtiofs documentation. Unrelated FCOS and Flatcar generated-documentation drift is excluded.

Validation

  • go test ./butane/...
  • Root ./test: license, formatting, vet, race-enabled unit tests, and documentation validation passed. The local run excluded unrelated nested .claude/ worktrees from the script's source-file scan.
  • go test -race -count=3 ./butane/config ./butane/config/openshift/v5_0/... ./butane/config/openshift/v5_1_exp/... ./butane/internal/doc
  • go vet ./butane/config/openshift/v5_1_exp/...
  • ./build butane and ./build ignition-validate
  • CLI smoke tests for stable and experimental output and raw Ignition validation; identical 4.23/5.1 experimental GRUB output; stable 5.0 GRUB rejection; rejected unregistered versions
  • Experimental parity tests for GRUB, OpenShift-only fields, validation errors, and raw output
  • Generated documentation reproducibility and special-mode-bit wording checks

Draft follow-up

Reconfirm the Ignition target against the OCP 5.0 release payload and validate generated MachineConfigs on an OCP 5.0 cluster before marking ready. Local tests exercise the Ignition 3.5 parser used by the MCO; they do not replace cluster validation.

@coderabbitai

coderabbitai Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

🧰 Additional context used
📚 Code guidelines (1)
AGENTS.md — auto-discovered

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: coreos/ignition/.coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 2c7412e5-79cd-4157-a3b4-f6a901260673

📥 Commits

Reviewing files that changed from the base of the PR and between f3e779e and 78cf80b.

📒 Files selected for processing (38)
  • butane/config/config.go
  • butane/config/config_test.go
  • butane/config/openshift/v5_0/result/schema.go
  • butane/config/openshift/v5_0/schema.go
  • butane/config/openshift/v5_0/translate.go
  • butane/config/openshift/v5_0/translate_test.go
  • butane/config/openshift/v5_0/validate.go
  • butane/config/openshift/v5_0/validate_test.go
  • butane/config/openshift/v5_1_exp/result/schema.go
  • butane/config/openshift/v5_1_exp/schema.go
  • butane/config/openshift/v5_1_exp/translate.go
  • butane/config/openshift/v5_1_exp/translate_test.go
  • butane/config/openshift/v5_1_exp/validate.go
  • butane/config/openshift/v5_1_exp/validate_test.go
  • butane/docs/config-openshift-v4_10.md
  • butane/docs/config-openshift-v4_11.md
  • butane/docs/config-openshift-v4_12.md
  • butane/docs/config-openshift-v4_13.md
  • butane/docs/config-openshift-v4_14.md
  • butane/docs/config-openshift-v4_15.md
  • butane/docs/config-openshift-v4_16.md
  • butane/docs/config-openshift-v4_17.md
  • butane/docs/config-openshift-v4_18.md
  • butane/docs/config-openshift-v4_19.md
  • butane/docs/config-openshift-v4_20.md
  • butane/docs/config-openshift-v4_21.md
  • butane/docs/config-openshift-v4_22.md
  • butane/docs/config-openshift-v4_23-exp.md
  • butane/docs/config-openshift-v4_8.md
  • butane/docs/config-openshift-v4_9.md
  • butane/docs/config-openshift-v5_0.md
  • butane/docs/config-openshift-v5_1-exp.md
  • butane/docs/specs.md
  • butane/docs/upgrading-openshift.md
  • butane/internal/doc/butane.yaml
  • butane/internal/doc/main.go
  • butane/internal/doc/main_test.go
  • docs/release-notes.md

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 11 remain after this review.

📜 Recent review details
🧰 Additional context used
📓 Path-based instructions (2)
Documentation served via GitHub Pages/Jekyll.

⚙️ CodeRabbit configuration file

Files:

  • docs/release-notes.md
Source excerpt: **License header**: Required on all `.go` files (Apache 2.0, 13-line header)

📄 CodeRabbit inference engine (AGENTS.md)

Files:

  • butane/internal/doc/main.go
  • butane/config/openshift/v5_0/result/schema.go
  • butane/internal/doc/main_test.go
  • butane/config/openshift/v5_1_exp/schema.go
  • butane/config/config.go
  • butane/config/openshift/v5_0/schema.go
  • butane/config/openshift/v5_0/validate.go
  • butane/config/openshift/v5_1_exp/result/schema.go
  • butane/config/config_test.go
  • butane/config/openshift/v5_1_exp/validate.go
  • butane/config/openshift/v5_1_exp/validate_test.go
  • butane/config/openshift/v5_0/translate_test.go
  • butane/config/openshift/v5_1_exp/translate_test.go
  • butane/config/openshift/v5_0/validate_test.go
  • butane/config/openshift/v5_1_exp/translate.go
  • butane/config/openshift/v5_0/translate.go
🪛 LanguageTool
butane/docs/config-openshift-v5_1-exp.md

[style] ~11-~11: ‘without warning’ might be wordy. Consider a shorter alternative.
Context: ...een stabilized. It is subject to change without warning or announcement.** The OpenShift confi...

(EN_WORDINESS_PREMIUM_WITHOUT_WARNING)


[style] ~66-~66: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: ...isk`. * wipe_table (boolean): whether or not the partition tables shall be wiped. Wh...

(WHETHER)


[style] ~75-~75: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: .... * should_exist (boolean): whether or not the partition with the specified `numbe...

(WHETHER)


[style] ~75-~75: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ail, depending on wipePartitionEntry. If false number must be specified and no...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~76-~76: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: ...mitted. * resize (boolean): whether or not the existing partition should be resize...

(WHETHER)


[style] ~87-~87: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: ... * wipe_filesystem (boolean): whether or not to wipe the device before filesystem cr...

(WHETHER)


[style] ~106-~106: It’s more common nowadays to write this noun as one word.
Context: ...owner. * name (string): the user name of the owner. * group (object...

(RECOMMENDED_COMPOUNDS)


[style] ~128-~128: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: ...ume. * wipe_volume (boolean): whether or not to wipe the device before volume creati...

(WHETHER)


[style] ~134-~134: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: ...isioning. * tpm2 (boolean): whether or not to use a tpm2 device. * **_thresh...

(WHETHER)


[style] ~139-~139: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: ... * needs_network (boolean): whether or not the device requires networking. * *...

(WHETHER)


[style] ~141-~141: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: ...evice. * enabled (boolean): whether or not to enable cex compatibility for luks. I...

(WHETHER)


[style] ~156-~156: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: ...rvice"). * enabled (boolean): whether or not the service shall be enabled. When true...

(WHETHER)


[style] ~156-~156: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...d. When false, the service is disabled. When omitted, the service is unmodified. In ...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~157-~157: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: ...ll section. * mask (boolean): whether or not the service shall be masked. When true,...

(WHETHER)


[style] ~187-~187: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: ...ovisioning. * tpm2 (boolean): whether or not to use a tpm2 device. * **_threshol...

(WHETHER)


[style] ~191-~191: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: ...evice. * enabled (boolean): whether or not to enable cex compatibility for luks. I...

(WHETHER)


[style] ~196-~196: It’s more common nowadays to write this noun as one word.
Context: ...uperusers. * name (string): the user name. * password_hash (string): the ...

(RECOMMENDED_COMPOUNDS)


[style] ~202-~202: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: ... on the node. * fips (boolean): whether or not to enable FIPS 140-2 compatibility. If ...

(WHETHER)

butane/docs/config-openshift-v5_0.md

[style] ~64-~64: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: ...isk`. * wipe_table (boolean): whether or not the partition tables shall be wiped. Wh...

(WHETHER)


[style] ~73-~73: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: .... * should_exist (boolean): whether or not the partition with the specified `numbe...

(WHETHER)


[style] ~73-~73: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ail, depending on wipePartitionEntry. If false number must be specified and no...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~74-~74: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: ...mitted. * resize (boolean): whether or not the existing partition should be resize...

(WHETHER)


[style] ~85-~85: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: ... * wipe_filesystem (boolean): whether or not to wipe the device before filesystem cr...

(WHETHER)


[style] ~104-~104: It’s more common nowadays to write this noun as one word.
Context: ...owner. * name (string): the user name of the owner. * group (object...

(RECOMMENDED_COMPOUNDS)


[style] ~126-~126: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: ...ume. * wipe_volume (boolean): whether or not to wipe the device before volume creati...

(WHETHER)


[style] ~132-~132: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: ...isioning. * tpm2 (boolean): whether or not to use a tpm2 device. * **_thresh...

(WHETHER)


[style] ~137-~137: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: ... * needs_network (boolean): whether or not the device requires networking. * *...

(WHETHER)


[style] ~139-~139: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: ...evice. * enabled (boolean): whether or not to enable cex compatibility for luks. I...

(WHETHER)


[style] ~146-~146: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: ...rvice"). * enabled (boolean): whether or not the service shall be enabled. When true...

(WHETHER)


[style] ~146-~146: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...d. When false, the service is disabled. When omitted, the service is unmodified. In ...

(ENGLISH_WORD_REPEAT_BEGINNING_RULE)


[style] ~147-~147: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: ...ll section. * mask (boolean): whether or not the service shall be masked. When true,...

(WHETHER)


[style] ~168-~168: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: ...ovisioning. * tpm2 (boolean): whether or not to use a tpm2 device. * **_threshol...

(WHETHER)


[style] ~172-~172: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: ...evice. * enabled (boolean): whether or not to enable cex compatibility for luks. I...

(WHETHER)


[style] ~183-~183: Consider shortening this phrase to just ‘whether’, unless you mean ‘regardless of whether’.
Context: ... on the node. * fips (boolean): whether or not to enable FIPS 140-2 compatibility. If ...

(WHETHER)

🔇 Additional comments (36)
butane/config/openshift/v5_0/schema.go (1)

1-39: LGTM!

butane/config/openshift/v5_0/result/schema.go (1)

1-48: LGTM!

butane/config/openshift/v5_0/validate.go (1)

1-68: LGTM!

butane/config/openshift/v5_0/validate_test.go (1)

1-444: LGTM!

butane/config/openshift/v5_0/translate.go (1)

1-261: LGTM!

butane/config/openshift/v5_0/translate_test.go (1)

1-487: LGTM!

butane/config/openshift/v5_1_exp/schema.go (1)

1-39: LGTM!

butane/config/openshift/v5_1_exp/result/schema.go (1)

1-48: LGTM!

butane/config/openshift/v5_1_exp/validate.go (1)

1-68: LGTM!

butane/config/openshift/v5_1_exp/validate_test.go (1)

1-370: LGTM!

butane/config/openshift/v5_1_exp/translate.go (1)

1-285: LGTM!

butane/config/openshift/v5_1_exp/translate_test.go (1)

1-456: LGTM!

butane/config/config.go (1)

51-52: LGTM!

Also applies to: 101-102

butane/config/config_test.go (1)

18-19: LGTM!

Also applies to: 23-24, 27-27, 30-104, 106-116, 118-161

butane/internal/doc/main.go (1)

68-69: LGTM!

Also applies to: 141-141, 157-157

butane/internal/doc/butane.yaml (1)

42-46: LGTM!

Also applies to: 293-295, 320-322, 445-447, 457-459, 469-471, 482-484

butane/internal/doc/main_test.go (1)

1-75: LGTM!

butane/docs/config-openshift-v4_8.md (1)

6-6: LGTM!

butane/docs/config-openshift-v4_9.md (1)

6-6: LGTM!

butane/docs/config-openshift-v4_10.md (1)

6-6: LGTM!

butane/docs/config-openshift-v4_11.md (1)

6-6: LGTM!

butane/docs/config-openshift-v4_12.md (1)

6-6: LGTM!

butane/docs/config-openshift-v4_13.md (1)

6-6: LGTM!

butane/docs/config-openshift-v4_14.md (1)

6-6: LGTM!

butane/docs/config-openshift-v4_15.md (1)

6-6: LGTM!

butane/docs/config-openshift-v4_16.md (1)

6-6: LGTM!

butane/docs/config-openshift-v4_17.md (1)

6-6: LGTM!

butane/docs/config-openshift-v4_18.md (1)

6-6: LGTM!

butane/docs/config-openshift-v4_19.md (1)

6-6: LGTM!

butane/docs/config-openshift-v4_20.md (1)

6-6: LGTM!

butane/docs/config-openshift-v4_21.md (1)

6-6: LGTM!

butane/docs/config-openshift-v4_22.md (1)

6-6: LGTM!

butane/docs/config-openshift-v5_0.md (1)

1-183: LGTM!

butane/docs/specs.md (1)

30-30: LGTM!

Also applies to: 61-61, 102-103

butane/docs/upgrading-openshift.md (1)

16-50: LGTM!

docs/release-notes.md (1)

13-16: LGTM!


📝 Walkthrough

Walkthrough

Adds stable OpenShift 5.0.0 and experimental 5.1.0 support. Both versions include configuration schemas, validation, and translation to MachineConfig or Ignition output. The change also registers the versions and updates generated specifications, upgrade guidance, and release notes.

Changes

OpenShift 5.0 and 5.1 support

Layer / File(s) Summary
Define and validate the v5.0 config
butane/config/openshift/v5_0/schema.go, butane/config/openshift/v5_0/result/schema.go, butane/config/openshift/v5_0/validate.go, butane/config/openshift/v5_0/validate_test.go
Adds the v5.0 configuration and MachineConfig schemas. Adds metadata and kernel type validation, CEX kernel-argument checks, and related validation tests.
Translate v5.0 configs and check support
butane/config/openshift/v5_0/translate.go, butane/config/openshift/v5_0/translate_test.go
Adds MachineConfig and Ignition translation, support checks for RHCOS and MCO constraints, and tests for output, reports, and error cases.
Define and validate the v5.1 experimental config
butane/config/openshift/v5_1_exp/schema.go, butane/config/openshift/v5_1_exp/result/schema.go, butane/config/openshift/v5_1_exp/validate.go, butane/config/openshift/v5_1_exp/validate_test.go
Adds the experimental configuration and MachineConfig schemas. Adds metadata and kernel type validation, CEX kernel-argument checks, and related validation tests.
Translate v5.1 experimental configs and check support
butane/config/openshift/v5_1_exp/translate.go, butane/config/openshift/v5_1_exp/translate_test.go
Adds MachineConfig and Ignition translation, GRUB sugar conversion, support checks for RHCOS and MCO constraints, and related tests.
Register versions and generate their specifications
butane/config/config.go, butane/config/config_test.go, butane/internal/doc/butane.yaml, butane/internal/doc/main.go, butane/internal/doc/main_test.go
Registers both translators and tests supported versions, unknown versions, and experimental parity. Adds both versions to documentation generation and checks generated output.
Publish specifications and upgrade guidance
butane/docs/config-openshift-v5_0.md, butane/docs/config-openshift-v5_1-exp.md, butane/docs/specs.md, butane/docs/upgrading-openshift.md, butane/docs/config-openshift-v4_*, docs/release-notes.md
Adds the v5.0 and v5.1 specification pages, version mappings, upgrade guidance, and release notes. Updates existing navigation order and v4.23 experimental field descriptions.

Priority: ➖ Normal

Estimated code review effort: 4 (Complex) | ~60 minutes

Change: Feature

Sequence Diagram(s)

sequenceDiagram
  participant Caller
  participant ToConfigBytes
  participant IgnitionOutput
  participant MachineConfigOutput
  Caller->>ToConfigBytes: provide input bytes and translation options
  alt Raw output
    ToConfigBytes->>IgnitionOutput: translate to the version's Ignition config
  else MachineConfig output
    ToConfigBytes->>MachineConfigOutput: translate to the version's MachineConfig
  end
Loading

Merge Risk: ⚪ Minimal · up to 78cf8

The new versions consistently distinguish stable and experimental support. The special-mode documentation matches translation behavior; no actionable merge-blocking issue remains after normal checks.

🚥 Pre-merge checks | ✅ 5 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 51.52% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 33 functions across 16 files. (22 skipped… Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title follows the required subsystem: lowercase description format, uses imperative mood, has lowercase text after the colon, and accurately describes the main change.
Description check ✅ Passed The description clearly explains the stable OpenShift 5.0.0 implementation, experimental 5.1.0 addition, tests, documentation, compatibility, and validation work.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Commit Message Convention ✅ Passed All four non-merge commits follow the required format: each uses a subsystem prefix, a colon and space, a lowercase imperative description (stabilize, add, or update), and no trailing period.
Full details: Docstring Coverage

Explanation

Docstring coverage is 51.52% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 33 functions across 16 files. (22 skipped: 22 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Sep 28, 2026 •

Copy link
Copy Markdown

Binary size report (bin/amd64/ignition)

Size
Base (main) 33MiB
PR (#2334) 33MiB
Delta +77KiB (0.23%)

Target Ignition 3.5.0 to match OCP 5.0's MCO, using the 4.22 stable implementation and its restrictions. Preserve the existing 4.23 experimental spec for its separate stabilization.

Refs coreos#2333
@prestist
prestist force-pushed the butane-openshift-5.0 branch from 61d2ea7 to f0a8d65 Compare September 28, 2026 19:58
Start the next OpenShift development spec from v4_23_exp, retaining its Ignition 3.7 experimental target and GRUB behavior. Keep the existing 4.23 development line available for its separate stabilization.

Refs coreos#2333
Document the stable 5.0 and experimental 5.1 feature sets and their different Ignition targets. Regenerate OpenShift specs, correct experimental mode-bit wording, and add upgrade guidance and release notes.
Guard dispatch, parser compatibility, and generated documentation across stable and experimental OpenShift versions. Verify the new 5.1 development line mirrors 4.23 experimental, including GRUB behavior and MCO restrictions.
@prestist
prestist force-pushed the butane-openshift-5.0 branch from f0a8d65 to 78cf80b Compare September 28, 2026 20:27
@prestist
prestist marked this pull request as ready for review October 1, 2026 16:10

@yasminvalim yasminvalim left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM :)

@prestist
prestist merged commit 9417372 into coreos:main Oct 2, 2026
13 checks passed
@prestist prestist mentioned this pull request Oct 6, 2026
19 tasks done
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.

2 participants