Skip to content

docs: add system requirements section to README#3350

Open
ded-furby wants to merge 5 commits into
conforma:mainfrom
ded-furby:docs/3343-system-requirements
Open

docs: add system requirements section to README#3350
ded-furby wants to merge 5 commits into
conforma:mainfrom
ded-furby:docs/3343-system-requirements

Conversation

@ded-furby

Copy link
Copy Markdown

Closes #3343

Summary

  • add a new Development Requirements section to README
  • list required tooling and versions:
    • Go 1.25.8+
    • Make
    • Podman or Docker
    • Node.js 18+
  • add Fedora/RHEL note about running Podman as a user service for acceptance tests

Validation

  • was attempted per repository guidance, but this repo has no script.
  • No additional automated test runs were required for this docs-only change.

@coderabbitai

coderabbitai Bot commented Jun 19, 2026

Copy link
Copy Markdown

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Enterprise

Run ID: 3ba0bebf-6a82-4280-a40b-d8da8408f596

📥 Commits

Reviewing files that changed from the base of the PR and between c4602e3 and e1787a7.

📒 Files selected for processing (1)
  • README.md
✅ Files skipped from review due to trivial changes (1)
  • README.md

📝 Walkthrough

Walkthrough

The README gains a new "Development Requirements" section listing prerequisite tools (Go, Make, Podman/Docker, Node.js) with a reference to Troubleshooting. The Troubleshooting section receives clarified systemctl commands for managing Podman system services and explicit instructions for enabling Podman as a user service on Fedora/RHEL.

Changes

README documentation updates

Layer / File(s) Summary
Development Requirements section and Troubleshooting clarification
README.md
Inserts a new "Development Requirements" section listing required tool versions and directing users to Troubleshooting for Podman setup; adds systemctl commands in Troubleshooting for disabling system services and enabling user-service equivalents on Fedora/RHEL.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately and concisely summarizes the main change: adding a system requirements section to the README.
Description check ✅ Passed The description is directly related to the changeset, providing a summary of additions and platform-specific notes included in the documentation changes.
Linked Issues check ✅ Passed The PR successfully implements the core requirements from issue #3343: adding a Development Requirements section to README documenting Go 1.25.8+, Make, Podman/Docker, and Node.js 18+, plus Fedora/RHEL-specific Podman setup guidance.
Out of Scope Changes check ✅ Passed All changes are in-scope: README documentation updates directly address the linked issue's request for system requirements and development toolchain documentation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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 and usage tips.

@fullsend-ai-review

fullsend-ai-review Bot commented Jun 19, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 10:29 AM UTC · Completed 10:36 AM UTC
Commit: 47d3320 · View workflow run →

@fullsend-ai-review

fullsend-ai-review Bot commented Jun 19, 2026

Copy link
Copy Markdown

Looks good to me

Previous run

Review

Findings

Medium

  • [technical-accuracy] README.md:27 — The instructions tell users to run systemctl disable --now podman.socket podman.service (system-level) before enabling the user service. This is potentially destructive on shared or multi-user systems: it disables the system-wide Podman socket, which may be intentionally configured and used by other services or users. The AGENTS.md troubleshooting table only recommends enabling the user service without disabling the system-wide one. Additionally, the --now flag stops both units immediately, which could cause unexpected termination of running workloads with no warning.
    Remediation: Add a warning that this disables the system-wide Podman service and should only be done on single-user development machines. Alternatively, align with AGENTS.md guidance which omits the disable step.

  • [documentation-organization] README.md:14 — The new "Development Requirements" section duplicates Podman setup instructions that already exist in the Troubleshooting section (lines 65-82). This creates maintenance burden and risks the two copies diverging over time.
    Remediation: Either move the Podman setup instructions into the new section and remove from Troubleshooting (updating Troubleshooting to cross-reference), or remove from the new section and add a cross-reference to Troubleshooting section 2.1.

Low

  • [clarity] README.md:31 — The phrase "then run the test/build commands below" is vague. It does not clearly specify which section or commands it refers to.
    Remediation: Replace with "then proceed to the Building or Testing sections below."

  • [intent_alignment] README.md — Issue Add system requirements and prerequisites section to README #3343 claims requirements are listed in AGENTS.md lines 138-143, but AGENTS.md currently has only 75 lines. The referenced location does not exist. This is likely stale issue context and does not affect the PR's content, but is worth noting.

Previous run (2)

Review

Findings

Medium

  • [logic-error] README.md:24 — The new Development Requirements section instructs users to run systemctl disable --now --user podman.socket podman.service followed by systemctl enable --user --now podman.socket podman.service. The disable command targets the user service (--user flag), which stops/disables the rootless podman service before immediately re-enabling it — effectively a restart/bounce. This is semantically different from the existing Troubleshooting section (line 73), which runs systemctl disable --now podman.socket podman.service (without --user) to disable the system (rootful) service, then enables the user service. If the intent is to migrate from rootful to rootless (matching the troubleshooting pattern), the --user flag on the disable command is incorrect. If the intent is to restart the user service, systemctl restart --user would be clearer.
    Remediation: Either (a) remove the --user flag from the disable command so it disables the system service (matching the troubleshooting section's pattern), or (b) if the intent is to restart the already-running user service, use systemctl restart --user podman.socket podman.service and clarify the prose.

Low

  • [internal-consistency] README.md:97 — The diff changes "To start Podman for the user:" to "To start Podman:" in the Troubleshooting section, dropping the "for the user" qualifier. However, the command that follows (systemctl enable --user --now ...) explicitly operates on the user service. Removing "for the user" makes the heading less precise and could mislead readers into thinking this starts the system-level podman service.

Info

  • [sub-agent-failure] The style-conventions sub-agent did not return findings: model unavailable (claude-sonnet-4-5@20250929 not available on vertex deployment).
  • [sub-agent-failure] The intent-coherence sub-agent did not return findings: model unavailable (claude-sonnet-4-5@20250929 not available on vertex deployment).
Previous run (3)

Review

Findings

High

  • [technical accuracy] README.md:27 — The new Development Requirements section instructs users to run Podman as a system service (systemctl enable --now podman.socket podman.service, without --user), and the diff also removes --user from the existing troubleshooting section. This directly contradicts the existing README troubleshooting text at line 67 which warns: "Various issues may arise from the Podman service and socket running as system services rather than user services (i.e. rootful instead of rootless)." It also contradicts AGENTS.md line 73 which says: "Use user service: systemctl enable --user --now podman.socket". The PR introduces internally contradictory instructions within the same file: the new section tells users to enable Podman as a system service, while the existing troubleshooting section (unchanged by this PR) tells users to disable the system service because it causes problems.
    Remediation: Keep --user in the systemctl commands in both the new Development Requirements section and the existing troubleshooting section. The commands should be systemctl enable --user --now podman.socket podman.service to match the rootless/user-service approach documented elsewhere in the repository. Alternatively, if the project has genuinely switched to rootful Podman, update the troubleshooting warning at line 67 and AGENTS.md line 73 as well, but that would be a larger scope change requiring justification.

Medium

  • [internal consistency] README.md:22 — The new Development Requirements section says to first disable then enable Podman as a system service (systemctl disable --now ... ; systemctl enable --now ...). The disable-then-enable sequence is odd — if the intent is simply to restart the service, systemctl restart would be more appropriate. More importantly, this disable/enable pattern applied to system services contradicts the troubleshooting section's explicit instruction to disable system services and use user services instead. See also: [technical accuracy] finding at this location.
    Remediation: Clarify the intent: if restarting is the goal, use systemctl restart. If the goal is to ensure user services are running, use the --user flag.

Low

  • [technical accuracy] README.md:18 — The stated Go version "Go 1.25.8+" matches go.mod and is internally consistent. No action required.

Info

  • [sub-agent-failure] N/A — The style-conventions, intent-coherence, and docs-currency sub-agents did not return findings: model unavailable (claude-sonnet-4-5@20250929 not available on deployment). These are sonnet-tier dimensions; the opus-tier correctness review completed successfully.
Previous run (4)

Review

Findings

High

  • [technical accuracy] README.md:27 — The systemctl disable --now --user podman.service command disables podman.service in user scope, but the existing Troubleshooting section (§2.1, lines 66–73) explains that the problem arises from Podman running as a system service (rootful). The disable step must target system scope to stop the problematic rootful services. The PR's command would only disable a user-level service unit, leaving the system-level services running.
    Remediation: Remove the --user flag from the disable command and include both socket and service, consistent with the existing troubleshooting section: systemctl disable --now podman.socket podman.service. Alternatively, reference the existing Troubleshooting §2.1 rather than duplicating the commands with different semantics.

Low

  • [internal consistency] README.md:28 — The enable command (systemctl enable --user --now podman.socket) only enables the socket unit, while the existing Troubleshooting section (line 80) enables both podman.socket and podman.service. While socket-only activation is valid and matches AGENTS.md, having contradictory instructions in the same README may confuse contributors.
    Remediation: Align the new section's commands with the existing Troubleshooting section, or consolidate by referencing §2.1 instead of duplicating divergent instructions.

@fullsend-ai-review fullsend-ai-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

See the review comment for full details.

Comment thread README.md Outdated
Run:

```bash
systemctl disable --now --user podman.service

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[high] technical accuracy

The systemctl disable --now --user podman.service command disables podman.service in user scope, but the existing Troubleshooting section (lines 66-73) explains that problems arise from Podman running as a system service (rootful). The disable step must target system scope. The command would only disable a user-level service unit, leaving the problematic system-level services running.

Suggested fix: Remove the --user flag from the disable command and include both socket and service: systemctl disable --now podman.socket podman.service. Or reference the existing Troubleshooting section 2.1 rather than duplicating commands with different semantics.

Comment thread README.md Outdated

```bash
systemctl disable --now --user podman.service
systemctl enable --user --now podman.socket

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[low] internal consistency

The enable command only enables podman.socket, while the existing Troubleshooting section enables both podman.socket and podman.service. While socket-only activation is valid (and matches AGENTS.md), the contradictory instructions within README.md may confuse contributors.

Suggested fix: Align commands with the existing Troubleshooting section, or consolidate by referencing section 2.1 instead of duplicating divergent instructions.

@ded-furby

Copy link
Copy Markdown
Author

I implemented the podman command follow-up from the review comments in commit 4660705: aligned the top README Podman startup/stop instructions with the existing troubleshooting section by removing where needed and using socket+service for both disable/enable commands. Let me know if anything else is still inconsistent.

@fullsend-ai-review

fullsend-ai-review Bot commented Jun 19, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 11:29 AM UTC · Completed 11:36 AM UTC
Commit: 47d3320 · View workflow run →

@fullsend-ai-review fullsend-ai-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

See the review comment for full details.

Comment thread README.md Outdated
Run:

```bash
systemctl disable --now podman.socket podman.service

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[high] technical accuracy

The new Development Requirements section instructs users to run Podman as a system service (systemctl enable --now, without --user), and removes --user from the existing troubleshooting section. This directly contradicts the existing README troubleshooting text which warns that system services cause issues, and contradicts AGENTS.md line 73 which says to use user services.

Suggested fix: Keep --user in the systemctl commands in both the new Development Requirements section and the existing troubleshooting section to match the rootless/user-service approach documented elsewhere.

Comment thread README.md
- Make
- Podman or Docker (for acceptance tests and container-based workflows)
- Node.js 18+ (for `tekton-lint`)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[medium] internal consistency

The disable-then-enable sequence for Podman system services is odd (systemctl restart would be more appropriate) and contradicts the troubleshooting section instruction to disable system services and use user services instead.

Suggested fix: Clarify the intent: if restarting, use systemctl restart. If the goal is user services, use the --user flag.

Comment thread README.md

Before building or testing `ec`, install the following tools:

- Go 1.25.8+ (matching `go.mod`)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[low] technical accuracy

The stated Go version Go 1.25.8+ matches go.mod and is internally consistent.

@ded-furby

Copy link
Copy Markdown
Author

Implemented a follow-up follow-up on the Podman command consistency from review: restored user-scope Podman startup steps in README and aligned the development requirements section to --user commands. New commit: c4602e3c on docs/3343-system-requirements for conforma/cli#3350.

@fullsend-ai-review

fullsend-ai-review Bot commented Jun 19, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 1:27 PM UTC · Completed 1:33 PM UTC
Commit: 47d3320 · View workflow run →

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

♻️ Duplicate comments (1)
README.md (1)

14-31: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Keep the Podman setup aligned with the rootless flow.

The --user disable/enable sequence here does not address the rootful Podman service that the troubleshooting section says causes acceptance-test failures. Please reference that existing recipe instead of documenting a second, inconsistent variant.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` around lines 14 - 31, The Podman setup instructions in the
Development Requirements section are inconsistent with the existing
troubleshooting documentation elsewhere in the README. Remove the current
systemctl disable/enable command sequence (systemctl disable --now --user
podman.socket podman.service followed by systemctl enable --user --now
podman.socket podman.service) and replace it with a reference to the existing
rootless Podman setup recipe or troubleshooting section that already addresses
the rootful vs rootless configuration issues properly. This ensures users are
directed to a single, consistent source of truth for Podman configuration rather
than having duplicate and potentially conflicting instructions.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Duplicate comments:
In `@README.md`:
- Around line 14-31: The Podman setup instructions in the Development
Requirements section are inconsistent with the existing troubleshooting
documentation elsewhere in the README. Remove the current systemctl
disable/enable command sequence (systemctl disable --now --user podman.socket
podman.service followed by systemctl enable --user --now podman.socket
podman.service) and replace it with a reference to the existing rootless Podman
setup recipe or troubleshooting section that already addresses the rootful vs
rootless configuration issues properly. This ensures users are directed to a
single, consistent source of truth for Podman configuration rather than having
duplicate and potentially conflicting instructions.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Enterprise

Run ID: 779cd9f7-016b-4c40-beeb-b502735eb270

📥 Commits

Reviewing files that changed from the base of the PR and between 15814bf and c4602e3.

📒 Files selected for processing (1)
  • README.md

@fullsend-ai-review fullsend-ai-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

See the review comment for full details.

Comment thread README.md Outdated
- Node.js 18+ (for `tekton-lint`)

On Fedora/RHEL systems, acceptance tests often require Podman to run as a user service.
Run:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[medium] logic-error

The new Development Requirements section instructs users to run systemctl disable --now --user podman.socket podman.service followed by systemctl enable --user --now podman.socket podman.service. The disable command targets the user service (--user flag), which stops/disables the rootless podman service before immediately re-enabling it — effectively a restart/bounce. This is semantically different from the existing Troubleshooting section (line 73), which runs systemctl disable --now podman.socket podman.service (without --user) to disable the system (rootful) service, then enables the user service. If the intent is to migrate from rootful to rootless (matching the troubleshooting pattern), the --user flag on the disable command is incorrect.

Suggested fix: Either (a) remove the --user flag from the disable command so it disables the system service (matching the troubleshooting section pattern), or (b) if the intent is to restart the user service, use systemctl restart --user podman.socket podman.service and clarify the prose.

Comment thread README.md Outdated
It is advised to do a reboot afterwards.

To start Podman for the user:
To start Podman:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[low] internal-consistency

The diff changes 'To start Podman for the user:' to 'To start Podman:' in the Troubleshooting section, dropping the 'for the user' qualifier. However, the command that follows uses the --user flag. Removing 'for the user' makes the heading less precise.

@fullsend-ai-review fullsend-ai-review Bot added the requires-manual-review Review requires human judgment label Jun 19, 2026
@ded-furby

Copy link
Copy Markdown
Author

Implemented the remaining inline follow-up from fullsend on in commit . Changes: (1) made the Development Requirements Podman bootstrap disable command target the system service () to match the existing troubleshooting flow, and (2) restored wording to .

@ded-furby

Copy link
Copy Markdown
Author

Implemented the remaining follow-up on #3350 in commit 34c03f2. I aligned the Development Requirements Podman recipe with the existing troubleshooting path: disable command now targets the system service and the launch heading is restored to 'To start Podman for the user:'.

@ded-furby

Copy link
Copy Markdown
Author

Follow-up update re-commented on pushed as commit 34c03f2: Development Requirements now disables the system Podman service () before enabling user-scope Podman, and the troubleshooting heading now says .

@ded-furby

Copy link
Copy Markdown
Author

Follow-up update for #3350: commit 34c03f2 restores the existing Podman flow in README. It now disables the rootful Podman system service (systemctl disable --now podman.socket podman.service) before enabling user-scope startup (systemctl enable --user --now podman.socket podman.service), and keeps the troubleshooting heading as To start Podman for the user:.

@fullsend-ai-review

fullsend-ai-review Bot commented Jun 19, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 2:26 PM UTC · Completed 2:35 PM UTC
Commit: 47d3320 · View workflow run →

@fullsend-ai-review fullsend-ai-review Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

See the review comment for full details.

Comment thread README.md Outdated
Run:

```bash
systemctl disable --now podman.socket podman.service

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[medium] technical-accuracy

The instructions tell users to run systemctl disable --now podman.socket podman.service (system-level) before enabling the user service. This is potentially destructive on shared or multi-user systems and inconsistent with AGENTS.md guidance which omits the disable step.

Suggested fix: Add a warning that this disables the system-wide Podman service and should only be done on single-user development machines, or align with AGENTS.md by omitting the disable step.

Comment thread README.md
Consult the [documentation][docs] for available sub-commands, descriptions and
examples of use.

## Development Requirements

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[medium] documentation-organization

The new Development Requirements section duplicates Podman setup instructions that already exist in the Troubleshooting section (lines 65-82), creating maintenance burden.

Suggested fix: Consolidate: either move Podman setup into this section and cross-reference from Troubleshooting, or remove from this section and cross-reference Troubleshooting.

Comment thread README.md Outdated
systemctl enable --user --now podman.socket podman.service
```

then run the test/build commands below.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

[low] clarity

The phrase then run the test/build commands below is vague and does not specify which section it refers to.

Suggested fix: Replace with: then proceed to the Building or Testing sections below.

@fullsend-ai-review fullsend-ai-review Bot removed the requires-manual-review Review requires human judgment label Jun 19, 2026
@ded-furby

Copy link
Copy Markdown
Author

Implemented the follow-up in (commit ) to resolve the Podman command feedback: removed duplicate system requirements Podman command snippet and referenced the existing Troubleshooting section instead, clarifying wording/flow. ❱ �[1mtekton-lint�[0m
❱ �[1mgo-mod-lint�[0m
Scanning for go.mod files and performing tidy...
❱ �[1mgo-mod-lint�[0m

❱ �[1mgo-mod-lint�[0m
Checking for modified go.mod or go.sum files...
❱ �[1mgo-mod-lint�[0m
No go.mod or go.sum files need to be added to the git commit.
❱ �[1mlint�[0m
❱ �[1mlint�[0m
❱ �[1mlint�[0m
0 issues.
❱ �[1mlint�[0m
0 issues. passes on this branch.

@ded-furby

Copy link
Copy Markdown
Author

Implemented the follow-up in commit e1787a7d on branch docs/3343-system-requirements:

  • Aligned README.md Development Requirements Podman guidance with troubleshooting section (removed duplicated/ potentially inconsistent command block)
  • Clarified follow-on build/test command wording

Validation run on this branch: make lint.
MSG

@fullsend-ai-review

fullsend-ai-review Bot commented Jun 20, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 12:19 AM UTC · Completed 12:29 AM UTC
Commit: 47d3320 · View workflow run →

@fullsend-ai-review fullsend-ai-review Bot added the ready-for-merge All reviewers approved — ready to merge label Jun 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-for-merge All reviewers approved — ready to merge size: XS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add system requirements and prerequisites section to README

1 participant