Conversation
WalkthroughConsolidates CLI identifier handling (mutually-exclusive name/UUID flags and runtime exclusion of mixing positional ID with flags), changes Selection precedence to prefer --name → --uuid → positional parsed-as-UUID, expands manpage with editorial/groff fixes and new JSON/docs for create-scheduled, and adds identifier-focused tests. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
participant U as User
participant CLI as snapm CLI
participant AP as ArgumentParser
participant Sel as Selection.from_cmd_args
Note over AP,Sel #E8F3FF: Mutually-exclusive flag groups + runtime ID-vs-flags exclusion
U->>CLI: snapm snapset show ID --name NAME
CLI->>AP: parse args
AP-->>CLI: parsed (IDENTIFIER + --name)
CLI->>AP: runtime validate ID vs flags
AP-->>U: parser.error "argument ID: not allowed with -n/--name or -u/--uuid"
alt No explicit flags supplied
U->>CLI: snapm snapset show ID
CLI->>AP: parse args
AP->>Sel: parsed (IDENTIFIER only)
Sel->>Sel: if --name → name elif --uuid → uuid else try parse IDENTIFIER as UUID
alt IDENTIFIER parses as UUID
Sel-->>CLI: selection by UUID
else
Sel-->>CLI: selection by name
end
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Assessment against linked issues
Out-of-scope changes
✨ Finishing Touches
🧪 Generate unit tests
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
|
Congratulations! One of the builds has completed. 🍾 You can install the built RPMs by following these steps:
Please note that the RPMs should be used only in a testing environment. |
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (3)
man/man8/snapm.8 (3)
1252-1256: Truncated sentence in “SCHEDULE ENABLE”The sentence ends with “To start the” and stops. This breaks rendering and leaves users without guidance.
Minimal fix to remove the dangling fragment:
Enable an existing snapshot set schedule by name. The specified schedule -is enabled and will be started on subsequent reboots. To start the +is enabled and will be started on subsequent reboots.If you intended to document starting the schedule immediately, follow up in a separate sentence once you confirm the exact command (e.g., starting a systemd timer) and unit naming. Happy to add precise wording once you confirm.
1207-1210: Option name drift: use “--bootable” (not “--boot”) in schedule create exampleElsewhere options are documented as
-b|--bootable. The example shows--boot. Align for correctness.-# -.B snapm schedule create --policy-type count --keep-count 2 --boot -.B --revert --size-policy 25%SIZE --calendarspec hourly hourly / /var +# +.B snapm schedule create --policy-type count --keep-count 2 --bootable +.B --revert --size-policy 25%SIZE --calendarspec hourly hourly / /var
1271-1276: Schedule list section mislabeled as snapset reportHeading is “SCHEDULE LIST” but paragraph says “Output a tabular report of snapsets.” Should be “schedules.”
-Output a tabular report of snapsets. +Output a tabular report of schedules.Optional: also replace “snapset(s)” with “schedule(s)” in the subsequent two lines to avoid confusion, e.g., “Displays a report with one schedule per line, containing fields describing the configured schedules.”
🧹 Nitpick comments (5)
man/man8/snapm.8 (5)
943-945: Normalize UUID capitalization in prose to match interface and report fieldsPublic signatures and field names were updated to “UUID” (caps). Several prose paragraphs still say “uuid”. Align these for consistency and searchability.
Apply these diffs:
Delete the specified snapset. The snapset to delete may be specified -either by its \fBname\fP or \fBuuid\fP. +either by its \fBname\fP or \fBUUID\fP.Revert an existing snapset, re-setting the content of the origin volumes to the state they were in at the time the snapset was created. The snapset -to be reverted may be specified either by its \fBname\fP or \fBuuid\fP. +to be reverted may be specified either by its \fBname\fP or \fBUUID\fP.one or more of the snapshots making up the set. The snapshot set to resize may -be specified by either its \fBname\fP or \fBuuid\fP. +be specified by either its \fBname\fP or \fBUUID\fP.system. If a \fBname\fP or \fBuuid\fP is specified then only that snapset will +system. If a \fBname\fP or \fBUUID\fP is specified then only that snapset will be activated.system. If a \fBname\fP or \fBuuid\fP is specified then only that snapset will -be deactivated. +be deactivated.snapsets present on the system. If a snapshot or snapset \fBname\fP or -\fBuuid\fP is specified then only matching volumes will be activated. +\fBUUID\fP is specified then only matching volumes will be activated.snapsets present on the system. If a snapshot or snapset \fBname\fP or -\fBuuid\fP is specified then only matching volumes will be deactivated. +\fBUUID\fP is specified then only matching volumes will be deactivated.Also applies to: 957-960, 969-972, 1014-1018, 1027-1031, 1087-1091, 1100-1104
544-572: Minor grammar/flow improvements in OPTIONS descriptionsA couple of small nits that improve readability:
- Insert a comma after “When creating snapshot sets” (Line 565).
- “generate and append a new, non-negative index value, to create a unique instance name.” → no comma before “to create”.
-When creating snapshot sets treat \fBname\fP as a common basename and -generate and append a new, non-negative index value, to create a unique +When creating snapshot sets, treat \fBname\fP as a common basename and +generate and append a new, non-negative index value to create a unique instance name.
1548-1553: Clarify which “create” subcommands support JSON“create” could be read as both “snapset create” and “schedule create.” Only “snapset create” advertises
--json; “schedule create” does not list it. Clarify to avoid confusion.-All reporting commands can optionally generate output in JSON notation by using -the \fB--json\fP argument. +All reporting commands can optionally generate output in JSON notation by using +the \fB--json\fP argument. .PP -The \fBcreate\fP, \fBcreate-scheduled\fP, and \fBshow\fP sub-commands also -support optional JSON notation using the \fB--json\fP argument. +The \fBsnapset create\fP, \fBsnapset create-scheduled\fP, and \fB[ snapset|snapshot ] show\fP sub-commands also +support optional JSON notation using the \fB--json\fP argument.Alternatively, add
--jsontoCMD_SCHEDULE_CREATEif that’s intended.
1392-1395: Confirm destructive outcome text for revertStating that revert “will also destroy the snapshot set” is clear but high-stakes. Ensure this is true for all providers and configurations, or qualify it (e.g., “for providers implementing merge-on-revert”). If universally true, consider adding a short “This operation is irreversible.” line (similar to prune).
Proposed addition:
Reverting a snapshot set will also destroy the snapshot set since the snapshot volumes are folded back into the origin devices. Following the completion of a revert operation the snapshot set will no longer appear in the output of \fBsnapm snapset list\fP or \fBsnapm snapset show\fP commands. +This operation is irreversible.
651-656: Option parameter names: use consistent placeholdersYou mix
years/number_years,months/number_months, etc., across keep-* options. Pick one style (prefernumber_*or justcount) and apply consistently to avoid confusion.For example:
-.BR --keep-months -.IR number_months +.BR --keep-months +.IR monthsRepeat for weeks/days/hourly, or adopt
number_*everywhere.Also applies to: 678-683, 685-690, 692-697, 699-704, 706-711
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
man/man8/snapm.8(33 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (28)
- GitHub Check: rpm-build:epel-9-x86_64
- GitHub Check: rpm-build:fedora-rawhide-x86_64
- GitHub Check: rpm-build:centos-stream-10-x86_64
- GitHub Check: rpm-build:fedora-41-x86_64
- GitHub Check: rpm-build:fedora-42-x86_64
- GitHub Check: rpm-build:centos-stream-9-x86_64
- GitHub Check: rpm-build:centos-stream-10-x86_64
- GitHub Check: rpm-build:epel-9-x86_64
- GitHub Check: rpm-build:fedora-41-x86_64
- GitHub Check: rpm-build:fedora-rawhide-x86_64
- GitHub Check: rpm-build:fedora-43-x86_64
- GitHub Check: rpm-build:fedora-42-x86_64
- GitHub Check: rpm-build:centos-stream-9-x86_64
- GitHub Check: rpm-build:fedora-43-x86_64
- GitHub Check: rpm-build:fedora-41-x86_64
- GitHub Check: rpm-build:fedora-42-x86_64
- GitHub Check: rpm-build:centos-stream-10-x86_64
- GitHub Check: rpm-build:epel-9-x86_64
- GitHub Check: rpm-build:centos-stream-9-x86_64
- GitHub Check: rpm-build:fedora-rawhide-x86_64
- GitHub Check: rpm-build:centos-stream-10-x86_64
- GitHub Check: rpm-build:fedora-rawhide-x86_64
- GitHub Check: rpm-build:fedora-43-x86_64
- GitHub Check: rpm-build:epel-9-x86_64
- GitHub Check: rpm-build:centos-stream-9-x86_64
- GitHub Check: rpm-build:fedora-42-x86_64
- GitHub Check: rpm-build:fedora-41-x86_64
- GitHub Check: python-basic-tests
🔇 Additional comments (3)
man/man8/snapm.8 (3)
786-790: Nice: Revert semantics and reboot requirement are now explicitThis addresses Issue #39 by documenting that reverts on in-use origins are deferred until next activation and by instructing users to reboot into the revert entry after issuing the revert command.
Also applies to: 1383-1387, 1389-1395
139-146: Synopsis: argument forms updated to “[ name | UUID ]” — ensure parser accepts eitherDocs now consistently show “UUID” instead of “uuid” and support either name or UUID across commands. Confirm the CLI accepts both forms (and that
--uuidexpects uppercase string format in examples and errors). If not already aligned, adjust parser/help output.If you want, I can run a sweep against the codebase to ensure help strings and argument parsing match the man page placeholders.
Also applies to: 151-160, 167-175, 210-218, 225-233, 240-249, 256-264, 280-289, 298-306, 317-325, 335-345, 356-364, 384-396
544-546: Terminology: “snapshot set” wording is accurate and consistentThe intro now consistently describes snapsets as “snapshots taken at a common moment in time,” and replaces rollback with revert. Reads cleanly and matches the command names.
Also applies to: 750-754
f6dec8e to
381689c
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (3)
man/man8/snapm.8 (3)
1207-1207: Use the documented option name: replace--bootwith--bootablein the example.The OPTIONS section documents
-b | --bootable. The example under Schedule Commands uses--boot.Apply this diff:
- .B snapm schedule create --policy-type count --keep-count 2 --boot + .B snapm schedule create --policy-type count --keep-count 2 --bootable
1271-1291: Schedule list section incorrectly describes snapsets and references the wrong help command.This section is for schedules but repeatedly says “snapsets” and points users to
snapm snapset list -o help. It should describe schedules and referencesnapm schedule list -o help.Apply this diff:
-Output a tabular report of snapsets. +Output a tabular report of schedules. .IP -Displays a report with one snapset per line, containing fields describing the -properties of the configured snapshot sets. +Displays a report with one schedule per line, containing fields describing the +configured schedules. .IP -The list of fields to display is given with \fB-o|--options\fP as a comma -separated list of field names. To obtain a list of available fields run -\&'\fBsnapm snapset list -o help\fP'. If the list of fields begins with the +The list of fields to display is given with \fB-o|--options\fP as a comma +separated list of field names. To obtain a list of available fields run +\&'\fBsnapm schedule list -o help\fP'. If the list of fields begins with the \&'\fB+\fP' character the specified fields are appended to the default field list. Otherwise the given list of fields replaces the default set of report fields.
1252-1256: Incomplete sentence inschedule enabledescription.The sentence ends with “To start the” and stops. Either complete it (preferred) or remove the fragment to avoid confusing users.
Minimal safe fix:
-Enable an existing snapshot set schedule by name. The specified schedule -is enabled and will be started on subsequent reboots. To start the +Enable an existing snapshot set schedule by name. The specified schedule +is enabled and will be started on subsequent reboots.If you want, I can draft a precise follow‑up sentence that explains how to start the schedule immediately (timer/service semantics), once you confirm the intended UX.
♻️ Duplicate comments (2)
man/man8/snapm.8 (2)
931-938: Macro reference fixed in SYNOPSIS (good catch).The undefined macro issue is resolved:
.CMD_SNAPSET_CREATE_SCHEDULEDis now correctly invoked in the SYNOPSIS. This will render as intended in man(7).
1565-1569: Example now uses the correct subcommand (snapshots vs snapsets).“List the available snapshots” example correctly shows
snapm snapshot list. Thanks for aligning the example with the section topic.
🧹 Nitpick comments (1)
man/man8/snapm.8 (1)
109-120: Consider listingcreate-scheduledin the generic snapset command synopsis.You added a dedicated synopsis entry for
snapset create-scheduled(great), butARG_SNAPSET_COMMANDSomits it. Optional: add it so the generic synopsis fully reflects available subcommands.Example change:
-.RI [ create | delete | rename | revert | resize | split | activate | deactivate | autoactivate | list | show ] +.RI [ create | create-scheduled | delete | rename | revert | resize | split | activate | deactivate | autoactivate | list | show ]Note: keep the dedicated detailed block; this just improves the quick overview.
Also applies to: 10-12, 52-53
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
man/man8/snapm.8(37 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (29)
- GitHub Check: rpm-build:fedora-42-x86_64
- GitHub Check: rpm-build:fedora-41-x86_64
- GitHub Check: rpm-build:centos-stream-10-x86_64
- GitHub Check: rpm-build:epel-9-x86_64
- GitHub Check: rpm-build:fedora-43-x86_64
- GitHub Check: rpm-build:fedora-rawhide-x86_64
- GitHub Check: rpm-build:centos-stream-9-x86_64
- GitHub Check: rpm-build:fedora-43-x86_64
- GitHub Check: rpm-build:fedora-41-x86_64
- GitHub Check: rpm-build:fedora-42-x86_64
- GitHub Check: rpm-build:centos-stream-10-x86_64
- GitHub Check: rpm-build:epel-9-x86_64
- GitHub Check: rpm-build:centos-stream-9-x86_64
- GitHub Check: rpm-build:fedora-rawhide-x86_64
- GitHub Check: rpm-build:centos-stream-10-x86_64
- GitHub Check: rpm-build:fedora-41-x86_64
- GitHub Check: rpm-build:fedora-43-x86_64
- GitHub Check: rpm-build:fedora-42-x86_64
- GitHub Check: rpm-build:centos-stream-9-x86_64
- GitHub Check: rpm-build:epel-9-x86_64
- GitHub Check: rpm-build:fedora-rawhide-x86_64
- GitHub Check: rpm-build:fedora-43-x86_64
- GitHub Check: rpm-build:centos-stream-10-x86_64
- GitHub Check: rpm-build:fedora-41-x86_64
- GitHub Check: rpm-build:centos-stream-9-x86_64
- GitHub Check: rpm-build:fedora-42-x86_64
- GitHub Check: rpm-build:epel-9-x86_64
- GitHub Check: rpm-build:fedora-rawhide-x86_64
- GitHub Check: python-basic-tests
🔇 Additional comments (3)
man/man8/snapm.8 (3)
88-105: JSON coverage expanded coherently.
- SYNOPSIS now shows
--jsonforsnapset create.- JSON Output section clarifies reporting and create/create‑scheduled/show support.
Also applies to: 1548-1553
38-38: NAME section normalized to lower-casesnapm(as per style objectives).Matches #392’s requirement to refer to the tool as lowercase
snapm.
1371-1396: Terminology shift “rollback” → “revert” and Reverting status documented (good).Prose and status taxonomy now consistently use “revert/Reverting”. This aligns behaviour and reporting semantics.
Also applies to: 786-795, 1479-1488, 1526-1529
|
@coderabbitai could you file issues for the three problems you mentioned outside the diff please? Title them like "doc: fix XYZ in snapm.8", ideally in 72 characters or less. |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chainI need to first identify the three problems I mentioned outside the diff. Let me search for my previous review comments on this PR. 🏁 Script executed: Length of output: 18076 @bmr-cymru I'll create three GitHub issues for the problems I identified outside the diff. Let me file them now: 🏁 Script executed: Length of output: 2068 @bmr-cymru I've successfully created three GitHub issues for the problems I identified outside the diff:
All issues are assigned to you and include the relevant line numbers, problem descriptions, and backlinks to this PR. The titles are all under 72 characters as requested. |
There was a problem hiding this comment.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
man/man8/snapm.8 (1)
633-636: Broaden --json option description to match feature expansion.The current text limits JSON to “show or list,” but you added JSON to create and create-scheduled and documented broader support in the JSON output section. Update the option description to avoid confusing users.
.BR --json .br -Produce show or list output in JSON notation +Produce output in JSON notation where supported. See the JSON output section.
♻️ Duplicate comments (1)
man/man8/snapm.8 (1)
124-133: Correct use of lowercase option names with uppercase metavars (UUID).These updates align with UNIX conventions and the prior clarification: keep long option names lowercase (e.g., --uuid, --snapshot-uuid) and uppercase only the meta-variables (UUID). Nice consistency clean-up for #392.
Also applies to: 155-160, 170-175, 213-218, 228-233, 244-249, 259-264, 283-289, 301-306, 327-329, 340-345, 359-364, 387-395, 725-735
🧹 Nitpick comments (2)
man/man8/snapm.8 (2)
91-106: Avoid mixing manual font escapes inside .BR/.IR; rely on the macros for styling.Using \fB/\fI within .BR/.IR is redundant and can cause subtle formatting glitches depending on the formatter. Keep arguments plain and let the macro handle the font switches.
Apply these diffs:
.de CMD_SNAPSET_CREATE ad l BR snapset - BR \fBcreate + BR create RB [ -b | --bootable ] RB [ -r | --revert ] RB [ -s | --size-policy IR policy ] RB [ -a | --autoindex ] RB [ --json ] - IR \fIname\fP - IR \fIsource[size_policy]\fP ... + IR name + IR source[size_policy] ... ad b ...de CMD_SNAPSET_CREATE_SCHEDULED ad l BR snapset - BR \fBcreate-scheduled + BR create-scheduled RB [ -c | --config IR schedule_name ] RB [ --json ] - IR \fIname\fP - IR \fIsource[size_policy]\fP ... + IR name + IR source[size_policy] ... ad b ..Also applies to: 109-121
1725-1729: .MR macro: remove manual \fB...\fP font escapes..MR already applies the right formatting for cross-refs. Manual bolding inside .MR is unnecessary and can degrade output with some formatters.
-.MR \fBsnapm.conf\fP 5 , -.MR \fBsnapm-plugins.d\fP 5 , -.MR \fBsnapm-schedule.d\fP 5 , -.MR \fBsystemd.time\fP 7 , -.MR \fBboom\fP 8 , +.MR snapm.conf 5 , +.MR snapm-plugins.d 5 , +.MR snapm-schedule.d 5 , +.MR systemd.time 7 , +.MR boom 8 ,
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
man/man8/snapm.8(40 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-08-22T16:15:49.943Z
Learnt from: bmr-cymru
PR: snapshotmanager/snapm#400
File: man/man8/snapm.8:128-133
Timestamp: 2025-08-22T16:15:49.943Z
Learning: In UNIX systems, command line arguments should remain lowercase (e.g., --uuid, --snapshot-uuid) following standard UNIX conventions. Only the metavar (value placeholder) should be uppercase (e.g., UUID). This is different from Windows conventions. Command line option names themselves should never be changed to uppercase.
Applied to files:
man/man8/snapm.8
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (29)
- GitHub Check: rpm-build:fedora-43-x86_64
- GitHub Check: rpm-build:centos-stream-10-x86_64
- GitHub Check: rpm-build:epel-9-x86_64
- GitHub Check: rpm-build:fedora-42-x86_64
- GitHub Check: rpm-build:fedora-rawhide-x86_64
- GitHub Check: rpm-build:centos-stream-9-x86_64
- GitHub Check: rpm-build:fedora-41-x86_64
- GitHub Check: rpm-build:centos-stream-10-x86_64
- GitHub Check: rpm-build:fedora-41-x86_64
- GitHub Check: rpm-build:fedora-43-x86_64
- GitHub Check: rpm-build:fedora-42-x86_64
- GitHub Check: rpm-build:centos-stream-9-x86_64
- GitHub Check: rpm-build:epel-9-x86_64
- GitHub Check: rpm-build:fedora-rawhide-x86_64
- GitHub Check: rpm-build:centos-stream-9-x86_64
- GitHub Check: rpm-build:fedora-43-x86_64
- GitHub Check: rpm-build:epel-9-x86_64
- GitHub Check: rpm-build:fedora-rawhide-x86_64
- GitHub Check: rpm-build:fedora-41-x86_64
- GitHub Check: rpm-build:fedora-42-x86_64
- GitHub Check: rpm-build:centos-stream-10-x86_64
- GitHub Check: rpm-build:centos-stream-10-x86_64
- GitHub Check: rpm-build:fedora-rawhide-x86_64
- GitHub Check: rpm-build:fedora-43-x86_64
- GitHub Check: rpm-build:epel-9-x86_64
- GitHub Check: rpm-build:centos-stream-9-x86_64
- GitHub Check: rpm-build:fedora-42-x86_64
- GitHub Check: rpm-build:fedora-41-x86_64
- GitHub Check: python-basic-tests
🔇 Additional comments (8)
man/man8/snapm.8 (8)
1-1: Header update looks good.Section, date, and title casing align with man(7) conventions.
1207-1209: Example now uses --bootable (not --boot).This addresses the earlier mismatch noted in #403. Thanks for fixing the example and keeping it consistent with OPTIONS.
1256-1257: Completed sentence for --start in schedule enable.This resolves the previously truncated sentence (now clearly instructs how to start the timer immediately).
1273-1292: Schedule list section now correctly describes schedules (not snapsets).Terminology and the help reference look correct: “snapm schedule list -o help”. Addresses the earlier confusion reported in #404.
1335-1344: Font/markup glitches fixed in GC policy docs.The COUNT and AGE sections now use the correct bold/reset sequence and bold option names. This resolves the issues captured in the follow-up.
1549-1555: JSON output section clearly documents broadened support.Explicitly noting create, create-scheduled, and show support reduces ambiguity and aligns with objective #398.
1375-1398: No remaining “root FS required” references in man/man8/snapm.8I’ve verified that there are no statements implying the root filesystem is required in this section of
man/man8/snapm.8. No further edits are needed.
1561-1566: Verify portability of .EX/.EE macros in your manpage toolchainThe snippet in man/man8/snapm.8 uses the
.EX/.EEexamples macros, which are GNU-troff extensions and may not be supported by all renderers (notably mandoc or older troff-based toolchains). Please confirm that your target publishing environment recognizes these macros, and if portability to mandoc (or similar) is required, either:
- Replace each
.EX/.EEpair with explicit literal blocks:.nf SnapsetName Time NrSnapshots Status Sources backup 2024-12-05 17:53:10 4 Active /, /opt, /srv, /var userdata 2024-12-05 17:53:22 2 Inactive /data, /home .fi- Or gate the use of
.EX/.EEbehind a groff-specific build step.This applies at the following locations in man/man8/snapm.8:
- Lines 1561–1566
- Lines 1572–1579
- Lines 1585–1593
- Lines 1599–1609
- Lines 1615–1627
- Lines 1653–1662
- Lines 1669–1685
|
@coderabbitai please file an issue for the 1st nitpick ("doc: Avoid mixing manual font escapes inside .BR/.IR in snapm.8") as a child of #391 and with the same labels etc. as earlier. |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain@bmr-cymru I've successfully created the issue for the 1st nitpick about avoiding mixing manual font escapes inside .BR/.IR macros in snapm.8. The issue has been created as a child of #391 with the same labels (bug, documentation, UI/UX) and assigned to you as requested. The new issue includes:
🐰✨ thoughtfully organizing documentation issues 🏁 Script executed: Length of output: 2064 🏁 Script executed: Length of output: 85 🏁 Script executed: Length of output: 673 @bmr-cymru I've successfully created issue #408: "doc: Avoid mixing manual font escapes inside .BR/.IR in snapm.8" as a child of #391. The issue includes:
The new issue is available at: #408 🐰✨ efficiently organizing documentation tasks |
|
@coderabbitai I've clarified in the main issue (#391) that we only support GNU Groff. |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: Length of output: 192 @bmr-cymru Thank you for that clarification! That's very helpful context - knowing that the project specifically targets GNU Groff and doesn't need to support other troff toolchains will help ensure that all man page formatting recommendations are appropriate and can take advantage of GNU Groff's specific capabilities. This clarification is particularly relevant for issue #408 and any other man page formatting work, as we can now focus specifically on GNU Groff best practices rather than trying to maintain compatibility across different troff implementations. 🐰📚 appreciating the helpful technical clarification ✏️ Learnings added
|
There was a problem hiding this comment.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
man/man8/snapm.8 (1)
1308-1311: Grammar: “scheduled named” → “schedule named”.Minor but user-facing.
-Run the configured garbage collection policy for the scheduled named +Run the configured garbage collection policy for the schedule named \fBname\fP.
♻️ Duplicate comments (1)
man/man8/snapm.8 (1)
725-736: Correct use of lowercase flags with uppercase metavars.Flags remain lowercase (--uuid, --snapshot-uuid) with metavars uppercased (UUID), aligning with UNIX conventions and the earlier clarification. Thanks for fixing the prior confusion.
🧹 Nitpick comments (3)
man/man8/snapm.8 (3)
11-12: Include create-scheduled in the generic snapset commands list.The top-level synopsis omits create-scheduled from ARG_SNAPSET_COMMANDS, even though you define and document it separately. Add it here for completeness and discoverability.
.de ARG_SNAPSET_COMMANDS -. RI [ create | delete | rename | revert | resize | split | activate | deactivate | autoactivate | list | show ] +. RI [ create | create-scheduled | delete | rename | revert | resize | split | activate | deactivate | autoactivate | list | show ] ..
1550-1555: Tighten JSON support wording or align command synopses.“As written,” this asserts that all show sub-commands support --json. If schedule show doesn’t support it, tweak the text; otherwise, update CMD_SCHEDULE_SHOW.
If schedule show is not JSON-capable:
-All reporting commands can optionally generate output in JSON notation by using -the \fB--json\fP argument. +All list-style reporting commands can optionally generate output in JSON +notation by using the \fB--json\fP argument. @@ -The \fBcreate\fP, \fBcreate-scheduled\fP, and \fBshow\fP sub-commands also -support optional JSON notation using the \fB--json\fP argument. +In addition, \fBsnapset create\fP, \fBsnapset create-scheduled\fP, and the +\fBshow\fP sub-commands for \fBsnapset\fP and \fBsnapshot\fP support JSON +notation using the \fB--json\fP argument.
1679-1738: New EXIT STATUS, FILES, BUGS, SEE ALSO sections: nice additions.These improve completeness. One request: confirm that .MR is available in your target man(7) toolchain; if portability to mandoc is a goal, consider a fallback.
If portability is required, a simple fallback is to replace .MR with .BR, e.g.:
-.MR snapm.conf 5 , +.BR snapm.conf (5) ,
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
man/man8/snapm.8(44 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-08-22T16:15:49.943Z
Learnt from: bmr-cymru
PR: snapshotmanager/snapm#400
File: man/man8/snapm.8:128-133
Timestamp: 2025-08-22T16:15:49.943Z
Learning: In UNIX systems, command line arguments should remain lowercase (e.g., --uuid, --snapshot-uuid) following standard UNIX conventions. Only the metavar (value placeholder) should be uppercase (e.g., UUID). This is different from Windows conventions. Command line option names themselves should never be changed to uppercase.
Applied to files:
man/man8/snapm.8
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (29)
- GitHub Check: rpm-build:fedora-rawhide-x86_64
- GitHub Check: rpm-build:epel-9-x86_64
- GitHub Check: rpm-build:fedora-42-x86_64
- GitHub Check: rpm-build:fedora-41-x86_64
- GitHub Check: rpm-build:centos-stream-9-x86_64
- GitHub Check: rpm-build:centos-stream-10-x86_64
- GitHub Check: rpm-build:fedora-43-x86_64
- GitHub Check: rpm-build:centos-stream-10-x86_64
- GitHub Check: rpm-build:epel-9-x86_64
- GitHub Check: rpm-build:fedora-41-x86_64
- GitHub Check: rpm-build:fedora-rawhide-x86_64
- GitHub Check: rpm-build:fedora-43-x86_64
- GitHub Check: rpm-build:fedora-42-x86_64
- GitHub Check: rpm-build:centos-stream-9-x86_64
- GitHub Check: rpm-build:fedora-43-x86_64
- GitHub Check: rpm-build:fedora-41-x86_64
- GitHub Check: rpm-build:fedora-42-x86_64
- GitHub Check: rpm-build:centos-stream-10-x86_64
- GitHub Check: rpm-build:epel-9-x86_64
- GitHub Check: rpm-build:centos-stream-9-x86_64
- GitHub Check: rpm-build:fedora-rawhide-x86_64
- GitHub Check: rpm-build:fedora-43-x86_64
- GitHub Check: rpm-build:centos-stream-10-x86_64
- GitHub Check: rpm-build:fedora-41-x86_64
- GitHub Check: rpm-build:centos-stream-9-x86_64
- GitHub Check: rpm-build:fedora-42-x86_64
- GitHub Check: rpm-build:epel-9-x86_64
- GitHub Check: rpm-build:fedora-rawhide-x86_64
- GitHub Check: python-basic-tests
🔇 Additional comments (8)
man/man8/snapm.8 (8)
109-121: Good addition: CMD_SNAPSET_CREATE_SCHEDULED macro and synopsis.This closes the earlier undefined-macro gap and clearly documents create-scheduled, including --json. Nice.
651-656: Typo fix looks good: --keep-months.Corrects the previous “--keey-months” typo noted in #392.
812-827: Consistent .TP indentation: good application of #393.Switching to “.TP 8” across policy enums and GC policies produces consistent tags/indents. Looks tidy and renders well.
Also applies to: 1330-1372
931-942: SYNOPSIS text for create-scheduled: good placement and wording.Clear explanation that timers usually invoke it, with guidance for manual use. Nicely addresses discoverability concerns.
1374-1398: Non-root boot behavior accurately updated.This section removes the prior implication that root must be included to create boot entries, meeting #396. The revert workflow description is clearer too.
1560-1578: Balanced .EX/.EE blocks and improved example formatting.Examples now render cleanly and are easier to scan. Good use of .EX/.EE.
Also applies to: 1599-1609, 1639-1641, 1653-1662, 1669-1685
167-178: Removed manual font escapes inside .BR/.IR: consistent typography.Swapping “.BR \fBverb” for “.BR verb” avoids mixing escapes with man macros (addressing the nit in #408). Well done.
Also applies to: 185-203, 210-218, 225-233, 240-249, 255-273, 280-291, 297-310, 316-329, 335-349, 355-377, 383-399, 404-419
520-526: schedule show: please verify JSON flag supportThe man page’s JSON section states that the
create,create-scheduled, andshowsub-commands “also support optional JSON notation using the--jsonargument,” but the synopsis forschedule show(man/man8/snapm.8, lines 520–526) does not list--json. I was unable to locate any--jsonhandling in theschedule showcode path.Please verify and adjust accordingly:
- If
snapm schedule showdoes accept--json, add it to the synopsis. For example:.de CMD_SCHEDULE_SHOW ad l BR schedule BR show IR name + RB [ --json ] ad b ..- If it does not support JSON output, tighten the JSON section wording (around lines 1550–1555) to exclude
schedule show.
|
@coderabbitai file an issue for the "scheduled" typo outside the diff as a child of #391 with labels and title as previously. |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chainLet me search more specifically for the typo: @bmr-cymru I've created the issue for the "scheduled" typo as a child of #391. The new issue has been created with:
The issue is now available and follows the same format as the previous documentation issues created for this PR. 🏁 Script executed: Length of output: 8307 🏁 Script executed: Length of output: 570 🏁 Script executed: Length of output: 593 @bmr-cymru I've successfully created issue #409: "doc: fix 'scheduled' typo in snapm.8" as a child of #391. The issue includes:
The issue is now available at: #409 From my search of the file, I can see many instances of "schedule" and "scheduled" throughout the man page, though I wasn't able to pinpoint the specific typo you're referring to. The issue has been created so you can add the specific details about the location and nature of the typo when you have a chance. |
|
@coderabbitai |
|
Tip For best results, initiate chat on the files or code changes. @bmr-cymru You're absolutely right, and I apologize for the confusion! The Since we've already established that snapm uses GNU Groff, I should have been confident about recognizing and supporting standard GNU Groff macros like |
4781c4f to
da32e49
Compare
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (4)
man/man8/snapm.8 (4)
92-106: Documented --json coverage is consistent; consider adding a minimal JSON example.
- The inclusion of .RB [ --json ] in snapset create, snapset create-scheduled, snapset show, schedule show, and plugin list aligns with the “JSON output” section and satisfies #398.
- Suggestion (optional): add one tiny EX/EE example of JSON for “show” (or “create”) to set expectations for structure/field names. This helps users script against a stable shape.
Apply near the JSON output section:
.SS JSON output -All reporting commands can optionally generate output in JSON notation by using +All reporting commands can optionally generate output in JSON notation by using the \fB--json\fP argument. .PP The \fBcreate\fP, \fBcreate-scheduled\fP, and \fBshow\fP sub-commands also support optional JSON notation using the \fB--json\fP argument. This includes the \fBsnapset\fP, \fBsnapshot\fP, and \fBschedule\fP \fBshow\fP sub-commands. +.PP +.EX +# snapm snapset show --json upgrade +{ + "name": "upgrade", + "UUID": "b5752dfa-b3a0-5a1d-ab1d-0cab2c41e0c9", + "nr_snapshots": 3, + "status": "Active", + "autoactivate": "yes", + "bootable": "no" +} +.EEIf you prefer, I can draft examples for create/create-scheduled JSON as well.
Also applies to: 110-121, 289-291, 418-419, 526-527, 635-638, 1552-1558
1728-1736: .MR macro portability: verify groff version or use .BR fallback..mr is only available in groff 1.23+. Many systems still ship 1.22.x; if you must support those, .MR will render literally. Since the project targets GNU groff (per learnings), please confirm minimum groff is 1.23; otherwise, swap to .BR page (section) style.
Proposed portable fallback:
-.MR snapm.conf 5 , -.MR snapm-plugins.d 5 , -.MR snapm-schedule.d 5 , -.MR systemd.time 7 , -.MR boom 8 , +.BR snapm.conf (5) , +.BR snapm-plugins.d (5) , +.BR snapm-schedule.d (5) , +.BR systemd.time (7) , +.BR boom (8) ,If you decide to keep .MR, consider stating the groff>=1.23 requirement in CONTRIBUTING or the build docs.
Also applies to: 1731-1733
1531-1536: Status enums are aligned across snapset/snapshot; consider cross-linking.Both sections enumerate Active/Inactive/Invalid/Reverting. Optional: add a short “See also: Snapshot set and snapshot status” pointer in each to reduce duplication and drift over time.
Also applies to: 1491-1492
1-1: Minor nit: standardize date format in .TH (project-wide).Current header uses “Aug 21 2025”. If other man pages use ISO-8601 (“2025-08-21”) or full month names, consider standardizing across the tree for consistency.
I can scan the repo’s other man pages to suggest a uniform format if useful.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (1)
man/man8/snapm.8(47 hunks)
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: bmr-cymru
PR: snapshotmanager/snapm#0
File: :0-0
Timestamp: 2025-08-22T18:27:31.256Z
Learning: The snapm project only supports GNU Groff markup for man pages and does not support other troff toolchains. All man page formatting should follow GNU Groff standards and practices.
📚 Learning: 2025-08-22T16:15:49.943Z
Learnt from: bmr-cymru
PR: snapshotmanager/snapm#400
File: man/man8/snapm.8:128-133
Timestamp: 2025-08-22T16:15:49.943Z
Learning: In UNIX systems, command line arguments should remain lowercase (e.g., --uuid, --snapshot-uuid) following standard UNIX conventions. Only the metavar (value placeholder) should be uppercase (e.g., UUID). This is different from Windows conventions. Command line option names themselves should never be changed to uppercase.
Applied to files:
man/man8/snapm.8
📚 Learning: 2025-08-22T18:27:31.256Z
Learnt from: bmr-cymru
PR: snapshotmanager/snapm#0
File: :0-0
Timestamp: 2025-08-22T18:27:31.256Z
Learning: The snapm project only supports GNU Groff markup for man pages and does not support other troff toolchains. All man page formatting should follow GNU Groff standards and practices.
Applied to files:
man/man8/snapm.8
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (22)
- GitHub Check: rpm-build:centos-stream-10-x86_64
- GitHub Check: rpm-build:epel-9-x86_64
- GitHub Check: rpm-build:fedora-41-x86_64
- GitHub Check: rpm-build:fedora-rawhide-x86_64
- GitHub Check: rpm-build:fedora-43-x86_64
- GitHub Check: rpm-build:fedora-42-x86_64
- GitHub Check: rpm-build:centos-stream-9-x86_64
- GitHub Check: rpm-build:fedora-43-x86_64
- GitHub Check: rpm-build:fedora-41-x86_64
- GitHub Check: rpm-build:fedora-42-x86_64
- GitHub Check: rpm-build:centos-stream-10-x86_64
- GitHub Check: rpm-build:epel-9-x86_64
- GitHub Check: rpm-build:centos-stream-9-x86_64
- GitHub Check: rpm-build:fedora-rawhide-x86_64
- GitHub Check: rpm-build:centos-stream-10-x86_64
- GitHub Check: rpm-build:fedora-rawhide-x86_64
- GitHub Check: rpm-build:fedora-43-x86_64
- GitHub Check: rpm-build:epel-9-x86_64
- GitHub Check: rpm-build:centos-stream-9-x86_64
- GitHub Check: rpm-build:fedora-42-x86_64
- GitHub Check: rpm-build:fedora-41-x86_64
- GitHub Check: python-basic-tests
🔇 Additional comments (6)
man/man8/snapm.8 (6)
11-13: Create-scheduled command is correctly introduced and referenced (SYNOPSIS + section).
- The addition of create-scheduled to ARG_SNAPSET_COMMANDS and the new CMD_SNAPSET_CREATE_SCHEDULED macro look consistent and resolve the past undefined macro issue in the synopsis. Invocation in the commands section also matches the macro. Nice cleanup for #393 and the scheduling features in #398.
Also applies to: 110-121, 933-941
815-829: Consistent .TP 8 usage and spacing reset look good.The switch to .TP 8 with a local .PD 0 block and reset is clean and renders well under GNU groff, addressing #393. The GC policy bullets are tidy and consistent.
Also applies to: 1332-1375
964-967: Booting/reverting docs correctly describe non-interactive revert flow and non-root boot behavior.
- Text now avoids implying that the root filesystem must be part of the snapset to create boot entries, aligning with #396.
- The “reverting” lifecycle/status and post-revert disappearance from list/show are clearly stated. Good improvement for #395 wording as well.
Also applies to: 1377-1381, 1393-1400
129-134: Lowercase options + uppercase metavars are now consistent throughout.The pattern “--uuid | --snapshot-uuid” with metavars “UUID” is applied consistently across snapset/snapshot commands and options, following UNIX conventions and the retrieved learning. This closes the confusion from earlier feedback on capitalization. Nicely done for #392.
Also applies to: 155-161, 170-176, 213-219, 228-234, 245-250, 259-265, 283-290, 301-311, 320-330, 339-350, 359-366, 387-397, 441-460, 726-737
1210-1211: Schedule examples and prose fixes read well; earlier issues addressed.
- The schedule create example now uses --bootable (not --boot), fixing the option mismatch (ref. earlier request).
- The enable section completes the truncated sentence and documents --start.
- The schedule list section now describes schedules (not snapsets) and points to the correct help target. This addresses #402, #403, and #404.
Also applies to: 1249-1260, 1275-1295
568-575: Autoindex behavior and wording are precise.The description clearly states basename semantics and generated index, and the example shows the pattern “hourly.3”. Good clarity for users automating timelines.
Also applies to: 907-912
d2d34db to
7a48508
Compare
There was a problem hiding this comment.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
snapm/command.py (1)
290-297: FieldType arguments swapped for snapshot “origin” field (breaks reporting).The third and fourth parameters to FieldType appear inverted here. For consistency with other fields, the signature should be:
FieldType(obj_type, field_name, FIELD_ID_CONST, description, width, rep_type, fn)Currently it uses "Origin" (description) where the FIELD_ID should be, and SNAPSHOT_ORIGIN where the description should be. This will mis-register the field in reports.
Apply this diff:
FieldType( PR_SNAPSHOT, "origin", - "Origin", - SNAPSHOT_ORIGIN, + SNAPSHOT_ORIGIN, + "Origin", 16, REP_STR, lambda f, d: f.report_str(d.origin), ),
♻️ Duplicate comments (1)
man/man8/snapm.8 (1)
592-607: Clear, explicit identifier rules section — aligns with parser enforcement.The man page now states positional and explicit identifier flags are mutually exclusive and mixed forms are a parse error (exit 2). This matches the argparse mutual-exclusion in snapm/command.py. Solid improvement.
🧹 Nitpick comments (1)
snapm/command.py (1)
1222-1226: Log message parameters reversed in prune output.The format string expects (sources, snapset_name) but arguments are (snapset_name, sources). This will produce confusing logs.
Apply this diff:
- _log_info( - "Pruned sources (%s) from snapset '%s'", - snapset.name, - ", ".join(cmd_args.sources), - ) + _log_info( + "Pruned sources (%s) from snapset '%s'", + ", ".join(cmd_args.sources), + snapset.name, + )
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (2)
man/man8/snapm.8(24 hunks)snapm/command.py(2 hunks)
🧰 Additional context used
🧠 Learnings (5)
📚 Learning: 2025-08-24T16:09:15.227Z
Learnt from: bmr-cymru
PR: snapshotmanager/snapm#400
File: man/man8/snapm.8:496-505
Timestamp: 2025-08-24T16:09:15.227Z
Learning: In UNIX man pages for snapm, metavars (value placeholders) should be lowercase except for UUID which should be uppercase. For example, use `schedule_name` not `SCHEDULE_NAME`, but use `UUID` not `uuid`.
Applied to files:
man/man8/snapm.8
📚 Learning: 2025-08-23T22:16:03.988Z
Learnt from: bmr-cymru
PR: snapshotmanager/snapm#400
File: man/man8/snapm.8:11-12
Timestamp: 2025-08-23T22:16:03.988Z
Learning: In man pages for the snapm project, prefer backslash (`\`) continuations over multiple macro invocations when breaking long command lists across lines, as this maintains a single macro invocation while being readable in 80x25 terminals.
Applied to files:
man/man8/snapm.8
📚 Learning: 2025-08-22T16:15:49.943Z
Learnt from: bmr-cymru
PR: snapshotmanager/snapm#400
File: man/man8/snapm.8:128-133
Timestamp: 2025-08-22T16:15:49.943Z
Learning: In UNIX systems, command line arguments should remain lowercase (e.g., --uuid, --snapshot-uuid) following standard UNIX conventions. Only the metavar (value placeholder) should be uppercase (e.g., UUID). This is different from Windows conventions. Command line option names themselves should never be changed to uppercase.
Applied to files:
man/man8/snapm.8
📚 Learning: 2025-08-22T19:34:08.355Z
Learnt from: bmr-cymru
PR: snapshotmanager/snapm#0
File: :0-0
Timestamp: 2025-08-22T19:34:08.355Z
Learning: The snapshotmanager organization (including snapm and boom projects) uses "SHORTMONTH DAY YEAR" format for man page headers. This format has been used by boom since 2017. Organizational consistency within snapshotmanager is prioritized over cross-project consistency when it comes to formatting standards.
Applied to files:
man/man8/snapm.8
📚 Learning: 2025-08-24T17:04:24.928Z
Learnt from: bmr-cymru
PR: snapshotmanager/snapm#0
File: :0-0
Timestamp: 2025-08-24T17:04:24.928Z
Learning: The `schedule create` command always enables `--autoindex` automatically to ensure that snapshot set names created by the schedule are unique, preventing naming conflicts.
Applied to files:
man/man8/snapm.8
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (29)
- GitHub Check: rpm-build:fedora-42-x86_64
- GitHub Check: rpm-build:fedora-41-x86_64
- GitHub Check: rpm-build:fedora-rawhide-x86_64
- GitHub Check: rpm-build:fedora-43-x86_64
- GitHub Check: rpm-build:centos-stream-9-x86_64
- GitHub Check: rpm-build:centos-stream-10-x86_64
- GitHub Check: rpm-build:epel-9-x86_64
- GitHub Check: rpm-build:centos-stream-9-x86_64
- GitHub Check: rpm-build:fedora-43-x86_64
- GitHub Check: rpm-build:epel-9-x86_64
- GitHub Check: rpm-build:fedora-rawhide-x86_64
- GitHub Check: rpm-build:fedora-41-x86_64
- GitHub Check: rpm-build:fedora-42-x86_64
- GitHub Check: rpm-build:centos-stream-10-x86_64
- GitHub Check: rpm-build:centos-stream-9-x86_64
- GitHub Check: rpm-build:fedora-43-x86_64
- GitHub Check: rpm-build:epel-9-x86_64
- GitHub Check: rpm-build:fedora-rawhide-x86_64
- GitHub Check: rpm-build:fedora-41-x86_64
- GitHub Check: rpm-build:fedora-42-x86_64
- GitHub Check: rpm-build:centos-stream-10-x86_64
- GitHub Check: rpm-build:centos-stream-10-x86_64
- GitHub Check: rpm-build:fedora-rawhide-x86_64
- GitHub Check: rpm-build:fedora-43-x86_64
- GitHub Check: rpm-build:epel-9-x86_64
- GitHub Check: rpm-build:centos-stream-9-x86_64
- GitHub Check: rpm-build:fedora-42-x86_64
- GitHub Check: rpm-build:fedora-41-x86_64
- GitHub Check: python-basic-tests
🔇 Additional comments (6)
snapm/command.py (2)
1655-1702: Good enforcement of identifier mutual-exclusion (positional vs flags).Using a single mutually exclusive group for -n/--name, -u/--uuid, -N/--snapshot-name, -U/--snapshot-uuid, and the positional identifier ensures argparse rejects mixed forms at parse time (exit status 2). This matches the man-page’s “Identifier arguments” contract. Nice.
1740-1741: Minor CLI help polish looks good.“Output report columns as rows” reads clearly and matches the behavior of the --rows flag.
man/man8/snapm.8 (4)
2-14: Portable .EX/.EE compatibility shim — nice touch.Good guard for older groff (1.22.x) without .EX/.EE; keeps examples readable everywhere without altering content.
136-145: create-scheduled synopsis now matches CLI behavior.Limiting the surface to “-c|--config schedule_name [--json]” aligns with the parser (no stray positionals). Thanks for correcting this.
410-417: schedule gc synopsis corrected to require -c|--config schedule_name.This matches the command wiring and removes the ambiguous positional name. Looks good.
1272-1335: Verify snapshot report field names (“snapshot_name”, “snapshot_uuid”) match CLI.The section documents snapshot fields as “snapshot_name” and “snapshot_uuid”. The defaults and code often use “name”/“uuid” for snapshot fields and the “snapset_” prefix when both types appear. Please confirm the actual field keys exposed by:
- snapm snapshot list -o help
If the CLI reports “name”/“uuid” (and “snapset_name” for the parent), update the docs accordingly; if “snapshot_name”/“snapshot_uuid” are the canonical keys, ensure the CLI help agrees.
Would you like me to scan the rendered help output and prepare a minimal diff to align this section with the actual field names?
|
@coderabbitai file an issue for the logging nitpick - it's out of the scope of this PR. Tag it as a bug, assigned to me. |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain@bmr-cymru I need to identify the specific logging nitpick you're referring to. Let me search the codebase to locate logging-related code that might need attention: 🏁 Script executed: Length of output: 18521 Based on my search of the codebase, I can see the logging issue you're referring to. The codebase has a mix of proper logging infrastructure and direct @bmr-cymru I've created issue #427: "fix: inconsistent use of logging vs print statements in command.py" The issue addresses the inconsistent mixing of proper logging infrastructure with direct The issue is tagged as a bug, assigned to you, and includes specific line references where this inconsistency occurs in the codebase. 🏁 Script executed: Length of output: 1331 @bmr-cymru I've successfully created issue #431: "fix: inconsistent use of logging vs print statements in command.py" The issue is now available at: #431 This addresses the logging nitpick about the inconsistent mixing of proper logging infrastructure with direct
This will help ensure consistent output handling across the module when addressed in a future PR focused on code quality improvements. 🐰📝 efficiently documenting the logging inconsistency issue |
|
@CodeRabbit ai: please file an issue for "FieldType arguments swapped for snapshot “origin” field (breaks reporting)."; it doesn't actually break reporting, but the field description should be fixed. Mark it as a bug, add the bug, UI/UX labels and assign it to me. |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain |
Resolves: #391
Resolves: #392
Resolves: #393
Resolves: #394
Resolves: #395
Resolves: #396
Resolves: #397
Resolves: #398
Resolves: #399
Resolves: #402
Resolves: #403
Resolves: #404
Resolves: #405
Resolves: #406
Resolves: #407
Resolves: #408
Resolves: #409
Resolves: #410
Resolves: #411
Resolves: #412
Resolves: #414
Resolves: #415
Resolves: #416
Resolves: #417
Resolves: #419
Resolves: #420
Resolves: #421
Resolves: #424
Resolves: #425
Resolves: #427
Resolves: #428
Resolves: #429
Resolves: #430
Summary by CodeRabbit
New Features
Bug Fixes
Documentation
Tests