Skip to content

[Automated] Update podman CLI Options - #4874

Closed
thomhurst wants to merge 3 commits into
issue-4848-generated-service-awaitsfrom
automated/update-cli-options-podman-issue-4848-generated-service-awaits
Closed

thomhurst wants to merge 3 commits into
issue-4848-generated-service-awaitsfrom
automated/update-cli-options-podman-issue-4848-generated-service-awaits

Conversation

@thomhurst

Copy link
Copy Markdown
Owner

Summary

This PR contains automatically generated updates to podman CLI options classes.

The generator scraped the latest CLI help output from the installed tool.

Changes

  • Updated options classes to reflect latest CLI documentation
  • Added new commands if any were detected
  • Updated option types and descriptions

Assembly-wide public API impact

Affected API families: Assembly/common, Podman.

  • Added APIs: 168
  • Removed or changed APIs: 23
  • Members with matching names but changed signatures: 2

Breaking changes are present. Consumers may need to update method arguments, option property types or nullability, enum members, and references to removed APIs.

Representative removed or changed members:

  • ModularPipelines.Podman.Enums.PodmanComposeProgress.Json = 3 -> ModularPipelines.Podman.Enums.PodmanComposeProgress
  • ModularPipelines.Podman.Enums.PodmanComposeProgress.Quiet = 4 -> ModularPipelines.Podman.Enums.PodmanComposeProgress
  • ModularPipelines.Podman.Enums.PodmanComposeProgress.Tty = 1 -> ModularPipelines.Podman.Enums.PodmanComposeProgress
  • ModularPipelines.Podman.Enums.PodmanContainerCreateSystemd.Always = 2 -> ModularPipelines.Podman.Enums.PodmanContainerCreateSystemd
  • ModularPipelines.Podman.Enums.PodmanContainerCreateSystemd.True = 0 -> ModularPipelines.Podman.Enums.PodmanContainerCreateSystemd

Representative added members:

  • ModularPipelines.Podman.Enums.PodmanComposeProgress.Json = 1 -> ModularPipelines.Podman.Enums.PodmanComposeProgress
  • ModularPipelines.Podman.Enums.PodmanComposeProgress.Quiet = 3 -> ModularPipelines.Podman.Enums.PodmanComposeProgress
  • ModularPipelines.Podman.Enums.PodmanComposeProgress.Tty = 4 -> ModularPipelines.Podman.Enums.PodmanComposeProgress
  • ModularPipelines.Podman.Enums.PodmanContainerCreateSystemd.Always = 0 -> ModularPipelines.Podman.Enums.PodmanContainerCreateSystemd
  • ModularPipelines.Podman.Enums.PodmanContainerCreateSystemd.True = 2 -> ModularPipelines.Podman.Enums.PodmanContainerCreateSystemd

Command coverage

Command coverage report:

  • podman (podman version 6.1.1): 258 commands, tree 1173613661b2e99570a995b22aeebec1e2ff1858aa1ea713d8f9cf737e06a14c
    • Baseline comparison: 255 commands at podman version 5.8.4 -> 258 commands at podman version 6.1.1
    • Added: podman machine os upgrade, podman machine restart, podman volume rename

Verification

  • Solution builds successfully

🤖 Generated with ModularPipelines.OptionsGenerator

@thomhurst thomhurst added automated dependencies Pull requests that update a dependency file labels Sep 13, 2026
@coderabbitai

coderabbitai Bot commented Sep 13, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

🗂️ Base branches to auto review (1)
  • main

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 4c2b326e-6b5b-4692-bdc7-225730136d0e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 13, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-13T17:53:31.393677Z 9f0831c PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@greptile-apps

greptile-apps Bot commented Sep 13, 2026

Copy link
Copy Markdown

Greptile Summary

This PR regenerates the Podman integration from Podman 6.1.1, adding three command surfaces, numerous new options, updated help text, and ConfigureAwait(false) across generated service calls. The generated command coverage and service routing are internally aligned, but reordering published enums changes their underlying values and can silently alter commands emitted by already-compiled consumers.

  • Adds podman machine os upgrade, podman machine restart, and podman volume rename.
  • Refreshes typed options and documentation from Podman 6.1.1.
  • Updates generated async services to avoid capturing synchronization contexts.
  • Changes published enum numeric assignments in a behaviorally incompatible way.

Confidence Score: 4/5

The PR is not safe to merge until published enum numeric assignments are preserved, because existing compiled consumers can silently emit different Podman option values.

The command additions and regenerated option routes are consistent, but the implicit enum reordering changes values embedded into consumer binaries; a previously compiled Tty value can now be interpreted and rendered as Json.

Files Needing Attention: src/ModularPipelines.Podman/Enums/PodmanComposeProgress.Generated.cs and the other reordered generated Podman enum files

Important Files Changed

Filename Overview
src/ModularPipelines.Podman/Enums/PodmanComposeProgress.Generated.cs Reorders published enum members, changing integer assignments and silently reinterpreting constants embedded in existing consumer binaries.
src/ModularPipelines.Podman/PublicAPI.Unshipped.txt Records the enum-value replacements and the broader generated API additions and removals.
src/ModularPipelines.Podman/Options/PodmanMachineOsUpgradeOptions.Generated.cs Adds the typed route and options for podman machine os upgrade.
src/ModularPipelines.Podman/Options/PodmanVolumeRenameOptions.Generated.cs Adds the two required operands for podman volume rename.
src/ModularPipelines.Podman/Services/PodmanMachine.Generated.cs Exposes the new machine restart command and updates generated awaits to use ConfigureAwait(false).
src/ModularPipelines.Podman/Generated/Podman.CommandCoverage.json Updates the baseline to Podman 6.1.1 and consistently records the three added commands.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
    Consumer[Pipeline consumer] --> Options[Generated Podman options]
    Options --> Service[Generated Podman service]
    Service --> Renderer[Command-line renderer]
    Renderer --> Podman[Podman 6.1.1]
    Enum[Published enum value] --> Options
    Coverage[Command coverage manifest] --> Options
Loading

Reviews (1): Last reviewed commit: "chore: Update podman CLI options" | Re-trigger Greptile

Comment on lines +22 to +23
[EnumValue("json")]
Json,

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Enum Values Silently Change

Existing binaries compiled against these enums embed their former integer constants. This reorder assigns those integers to different members: for example, a consumer compiled with PodmanComposeProgress.Tty embeds 1, but this version interprets 1 as Json, causing the command renderer to emit --progress=json instead of --progress=tty. The same problem affects the reordered systemd and push-format enums. Preserve the published numeric assignments while retaining the current EnumValue mappings.

Knowledge Base Used: Restore generated CLI API compatibility safeguards

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

The requested compatibility preservation conflicts with the repository contract: current tool output is authoritative, including breaking generated APIs; handwritten numeric assignments or compatibility shims must not preserve earlier output. These enums reflect the shared deterministic generator ordering. The breaking numeric/API changes remain visible in the generated baseline diff. This output is incorporated in #4872 as b4ae654, where all three Podman tests and the integration Release build pass. Fresh regeneration and review remain required on #4872 before merge.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Understood. Given the repository contract that generated CLI output and deterministic generator ordering are authoritative, the enum ordinal changes are intentional breaking API changes rather than a compatibility defect. The validation in #4872 supports the generated result, so this comment is non-actionable; fresh regeneration and review there remain the appropriate final checks.

@github-actions

Copy link
Copy Markdown
Contributor

Review: Automated podman CLI options update (#4874)

This is an automated regeneration of the podman tool options against podman 6.1.1 (previously 5.8.4), produced by ModularPipelines.OptionsGenerator.

Scope check (per repo policy that generated options must never be hand-edited):

  • All 86 changed files fall within the expected generated surface: src/ModularPipelines.Podman/{Options,Enums,Services}/*.Generated.cs, the two generation metadata files (Podman.CommandCoverage.json, Podman.Generation.json), PublicAPI.Shipped.txt/PublicAPI.Unshipped.txt, and the docs/docs/mp-packages/cli/podman.md command table. No hand-written source was touched, and no shims/aliases/forwarding members were added to preserve old signatures — consistent with the "current tool output is authoritative" policy.
  • New commands (podman machine os upgrade, podman machine restart, podman volume rename) got full, consistently-shaped generated option records, service methods, and interface members — nothing partial.
  • The enum reordering (e.g. PodmanComposeProgress, PodmanContainerCreateSystemd) and the resulting PublicAPI breaking changes are a direct, expected consequence of the underlying CLI's help output changing order — correctly flagged as breaking in the PR description, and not something to work around with compat shims.
  • Spot-checked the --pause flag changing from [CliFlag] to [CliOption(..., Format = OptionFormat.EqualsSeparated)] on PodmanCommitOptions/PodmanContainerCommitOptions: this matches the existing generator convention already used elsewhere for "(default true)" boolean options (e.g. PodmanComposeCommitOptions.Pause, PodmanAttachOptions.SigProxy), so it's a correct convention match rather than an inconsistency.
  • The added .ConfigureAwait(false) calls across Services/*.Generated.cs are consistent with the base branch (issue-4848-generated-service-awaits) this PR is built on top of, and match the repo's rule that library code under src/ uses ConfigureAwait(false).

No prior substantive review comments exist on this PR to reconcile against (only automated CodeRabbit/Codex bot placeholders, no actionable findings from either).

No actionable issues found — this looks like a clean, correctly-scoped generator output update.

@thomhurst
thomhurst force-pushed the issue-4848-generated-service-awaits branch from 7f2288d to 4dbd41a Compare September 13, 2026 19:53
@thomhurst

Copy link
Copy Markdown
Owner Author

Generated output is incorporated in #4872 (b4ae654, confirmed in remote head 4dbd41a). Closing this intermediate PR; #4872 remains open for fresh regeneration, integration validation, and review before merging to main.

@thomhurst thomhurst closed this Sep 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automated dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant