[Automated] Update podman CLI Options - #3970
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (89)
📒 Files selected for processing (8)
Included review availability: Your plan includes up to 3 reviews per rolling hour; 0 remain after this review. 📝 WalkthroughWalkthroughThe OptionsGenerator now supports typed compatibility forwarding and Podman-specific CLI corrections. The change adds scraper extension hooks, improves positional argument metadata, expands generated compatibility properties, adds tests, and documents additional Podman commands. ChangesPodman CLI compatibility generation
Estimated code review effort: 3 (Moderate) | ~25 minutes Merge Risk: 🟡 Moderate · up to This update changes generated Podman command and option APIs, but the API compatibility gate is failing, which may break existing consumers; merge should wait until the failure is resolved or explicitly accepted. The documentation build should also be validated. Possibly related issues
Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8ef7582bcc
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Review: [Automated] Update podman CLI Options (#3970)This is an auto-generated PR from
|
|
Addressed the review findings in ee5fae1. The Podman scraper now:
The seven affected generated option files were regenerated through OptionsClassGenerator, not edited by hand. Validation:
The broader Podman solution/project builds reached the repository agent memory guard (exit 137) after restore, so I did not retry them with higher limits. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: ee5fae1a55
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Review: follow-up on ee5fae1Re-reviewed against the earlier finding (the
No remaining issues. This looks correct and ready to merge from a code standpoint. 🤖 Generated with Claude Code |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2360b83048
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8befd42631
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| [CliOption("--image", Format = OptionFormat.EqualsSeparated)] | ||
| public string? Image { get; set; } |
There was a problem hiding this comment.
Preserve the machine-init compatibility properties
When consumers upgrade while using PodmanMachineInitOptions.ImagePath, replacing it outright with Image breaks source compilation and can cause MissingMethodException for already-compiled consumers; VolumeDriver is likewise removed from this record without a shim. Since this patch already retains removed NoTrunc and SaveKeys members, add a forwarding ImagePath compatibility property and an obsolete no-effect VolumeDriver property in the Podman scraper, then regenerate the options class.
AGENTS.md reference: AGENTS.md:L164-L168
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Fixed in 46e6b6585e. PodmanCliScraper now supplies machine init compatibility metadata so ImagePath forwards to Image and VolumeDriver remains as an obsolete no-effect property; PodmanMachineInitOptions.Generated.cs was regenerated through OptionsClassGenerator rather than edited as the source of truth.
Validation:
- focused machine-init scraper regression: 1/1 passed
- full OptionsGenerator suite: 823/823 passed
- OptionsGenerator Release build: 0 warnings/errors
- scoped formatting: passed, including the regenerated Podman record
- Podman solution/project builds reached the repository's fixed 2 GB agent guard after compiling core dependencies, so I did not raise the limit; CI will complete that gate
Code reviewRe-reviewed the commits added since my last pass ( No issues found. These changes look correct and are well-covered:
The earlier breaking-change concern ( |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 46e6b6585e
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| /// </summary> | ||
| [CliOption("--output", ShortForm = "-o", Format = OptionFormat.EqualsSeparated)] | ||
| public string? Output { get; set; } | ||
| public IEnumerable<string>? Output { get; set; } |
There was a problem hiding this comment.
Preserve existing build option property types
When an application compiled against the previous package accesses Output, changing its getter/setter signature from string to IEnumerable<string> causes a MissingMethodException; source consumers assigning a string also stop compiling. The same regression occurs for the Timestamp change from int? to string? in PodmanBuildOptions, PodmanImageBuildOptions, and PodmanFarmBuildOptions. Keep the existing properties and expose broader CLI values through compatibility additions generated by the scraper.
AGENTS.md reference: AGENTS.md:L164-L168
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Fixed in 045521c. The Podman scraper now emits the broader CLI-bound Outputs and TimestampValue properties while generating obsolete forwarding aliases with the original Output:string? and Timestamp:int? signatures. The aliases convert scalar-to-collection and nullable-int-to-invariant-string without creating duplicate switches; all three generated build records were regenerated. Full OptionsGenerator tests pass 833/833 and its Release build is clean (0 warnings/errors). The Podman build compiled core dependencies before reaching the fixed 2 GB local guard at 2103 MB; the cap was not raised.
| [CliSubCommand("inspect")] | ||
| public record PodmanInspectOptions( | ||
| [property: CliArgument(0, Phase = CommandLinePhase.Passthrough, Required = true)] IEnumerable<string> Container | ||
| [property: CliArgument(0, Phase = CommandLinePhase.Passthrough, Required = true)] IEnumerable<string> Artifact |
There was a problem hiding this comment.
Retain existing positional property names
When consumers upgrade while reading PodmanInspectOptions.Container or using that constructor parameter by name, renaming the synthesized property to Artifact breaks source compatibility and compiled property access; the command still accepts containers, so the new name is also misleading. The same generated rename affects Image in manifest add/annotate/remove. Preserve the previous names or emit forwarding compatibility properties from the generator.
AGENTS.md reference: AGENTS.md:L164-L168
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Fixed in 045521c. Podman positional metadata is now normalized back to the established CLR names: Container for inspect and Image for manifest add/annotate/remove, while retaining the current CLI cardinality and operand behavior. The seven affected generated records were regenerated from Podman 5.8.4; focused traversal coverage includes all four renamed commands, and the full OptionsGenerator suite passes 833/833.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 045521c88b
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| /// <summary> | ||
| /// Gets the artifact sub-domain service. | ||
| /// </summary> | ||
| IPodmanArtifact Artifact { get; } |
There was a problem hiding this comment.
Provide defaults for new sub-domain getters
When a consumer supplies its own IPodman implementation, upgrading now fails with CS0535 because the new Artifact and Quadlet getters are abstract. The regenerated command methods below deliberately use default interface bodies to preserve implementors, so generate equivalent throwing getter bodies for both new sub-domains in ServiceInterfaceGenerator and regenerate this file.
AGENTS.md reference: AGENTS.md:L164-L168
Useful? React with 👍 / 👎.
Code review: 8befd42 → 045521cRe-reviewed the full state of the PR (diffed against merge-base One structural gap is worth fixing before this pattern gets copied to the next CLI-scraped tool: Compatibility-property forwarding has no validation on the CLI-scraper path (design gap)
For JSON-defined external tools, this exact class of mismatch is caught at generation time: Why this matters: if a future Suggested fix: route CLI-scraped commands through the same Minor, lower-confidence (not blocking)
No other correctness issues found in this pass. |
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
Command coverage
Command coverage report:
Verification
🤖 Generated with ModularPipelines.OptionsGenerator
Summary by CodeRabbit
New Features
Bug Fixes
Tests