Skip to content

Comments

PR-for-setup-guide-3.4#212

Open
MallanagoudaB wants to merge 2 commits intomainfrom
FinalSetupGuide-3.4.0
Open

PR-for-setup-guide-3.4#212
MallanagoudaB wants to merge 2 commits intomainfrom
FinalSetupGuide-3.4.0

Conversation

@MallanagoudaB
Copy link
Collaborator

@MallanagoudaB MallanagoudaB commented Feb 20, 2026

Summary by CodeRabbit

  • Documentation
    • Updated setup guides to point to the correct repository paths and main-branch resources for Docker and native installs.
    • Added "Attaching Config File" instructions for native setup on macOS, Ubuntu, and Windows.
    • Added "Setting up Kafka" guidance for native setup on macOS, Ubuntu, and Windows.
    • Corrected Dockerized setup download links and scripts referenced in the platform-specific README files.

@coderabbitai
Copy link

coderabbitai bot commented Feb 20, 2026

📝 Walkthrough

Walkthrough

This PR updates documentation and setup scripts to reference the main branch instead of dockerSetup, adds config-file attachment and Kafka setup instructions to native README files, and causes the Ubuntu dockerized setup script to run docker-compose-up.sh after downloading artifacts.

Changes

Cohort / File(s) Summary
Root Documentation
README.md
Updated links to point from project-service to entity-management repository paths and changed EMS diagram URL to reference refs/heads/main instead of refs/heads/dockerSetup.
Dockerized Setup Scripts
src/documentation/3.4.0/dockerized/script/mac-os/entity_setup.sh, src/documentation/3.4.0/dockerized/script/ubuntu/entity_setup.sh
Replaced remote download URLs to use refs/heads/main for docker-compose, env files, scripts, and config; ubuntu script now executes docker-compose-up.sh; configFile path adjusted to commonFiles/generics/configFile.json.
Docker Setup Documentation
src/documentation/3.4.0/setup/docker/mac-os/README.md, src/documentation/3.4.0/setup/docker/ubuntu/README.md, src/documentation/3.4.0/setup/docker/windows/README.md
Updated curl/download commands to fetch setup scripts and assets from refs/heads/main instead of refs/heads/dockerSetup.
Native Setup Documentation
src/documentation/3.4.0/setup/native/mac-os/README.md, src/documentation/3.4.0/setup/native/ubuntu/README.md, src/documentation/3.4.0/setup/native/windows/README.md
Added "Attaching Config File" instructions (curl to place config into entity-management/src/config.json) and "Setting up Kafka" steps for each platform; inserted before package install/start sections.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • docker-setup-for-entity #209: Updates main-branch artifacts (docker-compose, env files, scripts, configFile) that these documentation and script URLs now reference.

Poem

🐰 I hopped from dockerSetup to main with glee,
I fetched the configs and brewed Kafka with tea,
Readmes refreshed, scripts now align,
A tidy repo hop — hooray! 🌿✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'PR-for-setup-guide-3.4' is vague and generic, using non-descriptive phrasing that does not convey meaningful information about the changeset. Replace with a descriptive title that summarizes the main changes, such as 'Update documentation links to reference main branch instead of dockerSetup' or 'Add Kafka setup and config file sections to native setup guides'.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
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
  • Post copyable unit tests in a comment
  • Commit unit tests in branch FinalSetupGuide-3.4.0

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.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

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 (1)
src/documentation/3.4.0/dockerized/script/ubuntu/entity_setup.sh (1)

37-39: ⚠️ Potential issue | 🟡 Minor

Auto-execution of docker-compose-up.sh proceeds even if preceding curl steps failed.

The script has no set -e or per-command error checks. If any of the earlier curl downloads fail (e.g., network error, 404 for the new commonFiles/generics/configFile.json path), ./docker-compose-up.sh will still be invoked against an incomplete setup. Consider adding set -e at the top of the script, or at minimum checking exit codes before the final launch step.

✏️ Proposed fix
 #!/bin/bash
+set -e
 
 # Logging function
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/documentation/3.4.0/dockerized/script/ubuntu/entity_setup.sh` around
lines 37 - 39, Add fail-fast handling so ./docker-compose-up.sh is not auto-run
when prior steps fail: enable set -e (or set -o errexit) at the top of
entity_setup.sh, or after each critical curl/download check the exit status and
if non-zero log the error via the log function and exit with a non-zero code;
ensure the final invocation (./docker-compose-up.sh) is only reached when all
earlier curl commands completed successfully and validated (e.g., test
downloaded file existence) and use the existing log wrapper to report failures
before exiting.
🧹 Nitpick comments (3)
src/documentation/3.4.0/dockerized/script/ubuntu/entity_setup.sh (1)

4-6: Log function silently writes to file — no terminal feedback for the user.

The mac-os counterpart (entity_setup.sh) uses | tee -a setup_log.txt so status messages appear both in the terminal and in the log file. This Ubuntu version uses >> only, leaving the user with a silent terminal during the entire setup run.

✏️ Proposed fix
 log() {
-    echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> setup_log.txt
+    echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a setup_log.txt
 }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/documentation/3.4.0/dockerized/script/ubuntu/entity_setup.sh` around
lines 4 - 6, The log() function currently appends messages only to setup_log.txt
and gives no terminal feedback; update the log() implementation so it writes the
timestamped message both to the terminal and appends to the log file (use tee -a
behavior) while preserving the existing timestamp format and the log filename
used in the function; modify the log() function (symbol: log) to echo the
timestamped message to stdout and pipe it into tee -a setup_log.txt so users see
status messages in real time and entries are still recorded.
README.md (1)

73-73: Consider using raw.githubusercontent.com for the diagram <img> src.

blob/ URLs "link to the GitHub file viewer, not the raw image", so while GitHub's own renderer special-cases this and displays the PNG correctly on github.com, the image will fail to render in external markdown viewers, npm pages, or any tool that doesn't perform GitHub's same-repo redirect.

✏️ Proposed fix
-  <img src="https://github.com/ELEVATE-Project/entity-management/blob/main/src/documentation/3.4.0/database-diagram/EMS-Entity-Service.drawio.png" alt="Entity Management Diagram" width="100%">
+  <img src="https://raw.githubusercontent.com/ELEVATE-Project/entity-management/main/src/documentation/3.4.0/database-diagram/EMS-Entity-Service.drawio.png" alt="Entity Management Diagram" width="100%">
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` at line 73, The README image tag currently uses a GitHub blob URL
which won't render outside GitHub; update the <img> src in README.md (the image
tag referencing EMS-Entity-Service.drawio.png) to use the
raw.githubusercontent.com pattern by replacing the
"https://github.com/.../blob/<branch>/..." URL with
"https://raw.githubusercontent.com/<owner>/<repo>/<branch>/src/documentation/3.4.0/database-diagram/EMS-Entity-Service.drawio.png"
(i.e., remove "blob/" and switch host to raw.githubusercontent.com) so external
markdown renderers can load the PNG.
src/documentation/3.4.0/dockerized/script/mac-os/entity_setup.sh (1)

28-28: Extract a BASE_URL variable to avoid repeating the 90-character GitHub prefix five times.

Every future branch/path change (like this PR) would then be a single-line edit instead of touching five separate curl calls.

♻️ Proposed refactor
+BASE_URL="https://raw.githubusercontent.com/ELEVATE-Project/entity-management/refs/heads/main/src/documentation/3.4.0"
+
 log "Downloading Docker Compose file..."
-curl -fOJL https://raw.githubusercontent.com/ELEVATE-Project/entity-management/refs/heads/main/src/documentation/3.4.0/dockerized/dockerFiles/docker-compose.yml
+curl -fOJL "${BASE_URL}/dockerized/dockerFiles/docker-compose.yml"

 log "Downloading environment files..."
 curl -L \
-    -fO https://raw.githubusercontent.com/ELEVATE-Project/entity-management/refs/heads/main/src/documentation/3.4.0/dockerized/envs/entity_management_env
+    -fO "${BASE_URL}/dockerized/envs/entity_management_env"

 log "Downloading docker-compose scripts..."
-curl -fOJL https://raw.githubusercontent.com/ELEVATE-Project/entity-management/refs/heads/main/src/documentation/3.4.0/dockerized/script/mac-os/docker-compose-up.sh
-curl -fOJL https://raw.githubusercontent.com/ELEVATE-Project/entity-management/refs/heads/main/src/documentation/3.4.0/dockerized/script/mac-os/docker-compose-down.sh
+curl -fOJL "${BASE_URL}/dockerized/script/mac-os/docker-compose-up.sh"
+curl -fOJL "${BASE_URL}/dockerized/script/mac-os/docker-compose-down.sh"

 log "Downloading config.json..."
-curl -fL https://raw.githubusercontent.com/ELEVATE-Project/entity-management/refs/heads/main/src/documentation/3.4.0/commonFiles/generics/configFile.json -o config.json
+curl -fL "${BASE_URL}/commonFiles/generics/configFile.json" -o config.json

Also applies to: 36-36, 44-45, 59-59

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/documentation/3.4.0/dockerized/script/mac-os/entity_setup.sh` at line 28,
Introduce a BASE_URL variable at the top of the script and replace the repeated
90-character GitHub prefix in each curl invocation with the variable (e.g., use
"${BASE_URL}/src/documentation/3.4.0/dockerized/dockerFiles/docker-compose.yml"
in place of the full URL); update all occurrences (the curl call shown and the
ones at the other locations mentioned) to concatenate the branch/path suffix
onto BASE_URL so future branch/path changes require editing only that single
BASE_URL assignment.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/documentation/3.4.0/setup/docker/windows/README.md`:
- Line 81: Update the phrasing in the README sentence "Download Environment
Files: Using the OS specific commands given below, download environment files
for all the services." to hyphenate "OS-specific" (i.e., change "OS specific" to
"OS-specific") so the line reads: "Download Environment Files: Using the
OS-specific commands given below, download environment files for all the
services." This edit targets the README.md sentence shown in the diff.

---

Outside diff comments:
In `@src/documentation/3.4.0/dockerized/script/ubuntu/entity_setup.sh`:
- Around line 37-39: Add fail-fast handling so ./docker-compose-up.sh is not
auto-run when prior steps fail: enable set -e (or set -o errexit) at the top of
entity_setup.sh, or after each critical curl/download check the exit status and
if non-zero log the error via the log function and exit with a non-zero code;
ensure the final invocation (./docker-compose-up.sh) is only reached when all
earlier curl commands completed successfully and validated (e.g., test
downloaded file existence) and use the existing log wrapper to report failures
before exiting.

---

Nitpick comments:
In `@README.md`:
- Line 73: The README image tag currently uses a GitHub blob URL which won't
render outside GitHub; update the <img> src in README.md (the image tag
referencing EMS-Entity-Service.drawio.png) to use the raw.githubusercontent.com
pattern by replacing the "https://github.com/.../blob/<branch>/..." URL with
"https://raw.githubusercontent.com/<owner>/<repo>/<branch>/src/documentation/3.4.0/database-diagram/EMS-Entity-Service.drawio.png"
(i.e., remove "blob/" and switch host to raw.githubusercontent.com) so external
markdown renderers can load the PNG.

In `@src/documentation/3.4.0/dockerized/script/mac-os/entity_setup.sh`:
- Line 28: Introduce a BASE_URL variable at the top of the script and replace
the repeated 90-character GitHub prefix in each curl invocation with the
variable (e.g., use
"${BASE_URL}/src/documentation/3.4.0/dockerized/dockerFiles/docker-compose.yml"
in place of the full URL); update all occurrences (the curl call shown and the
ones at the other locations mentioned) to concatenate the branch/path suffix
onto BASE_URL so future branch/path changes require editing only that single
BASE_URL assignment.

In `@src/documentation/3.4.0/dockerized/script/ubuntu/entity_setup.sh`:
- Around line 4-6: The log() function currently appends messages only to
setup_log.txt and gives no terminal feedback; update the log() implementation so
it writes the timestamped message both to the terminal and appends to the log
file (use tee -a behavior) while preserving the existing timestamp format and
the log filename used in the function; modify the log() function (symbol: log)
to echo the timestamped message to stdout and pipe it into tee -a setup_log.txt
so users see status messages in real time and entries are still recorded.

# -----------------------------
log "Downloading Docker Compose file..."
curl -OJL https://raw.githubusercontent.com/ELEVATE-Project/entity-management/refs/heads/dockerSetup/src/documentation/3.4.0/dockerized/dockerFiles/docker-compose.yml
curl -OJL https://raw.githubusercontent.com/ELEVATE-Project/entity-management/refs/heads/main/src/documentation/3.4.0/dockerized/dockerFiles/docker-compose.yml
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

All curl invocations are missing --fail (-f), making silent 404s possible.

Without -f, curl exits with code 0 even on a 404 Not Found response and writes the HTML error body into the target file. Because set -e only traps non-zero exit codes, the script will happily continue and either pass a malformed YAML to Docker Compose, or worse, chmod +x and execute an HTML document as a shell script (lines 46–47). This risk is especially relevant right now since all five URLs just had their branch ref changed from dockerSetupmain.

🐛 Proposed fix — add --fail to every curl call
-curl -OJL https://raw.githubusercontent.com/ELEVATE-Project/entity-management/refs/heads/main/src/documentation/3.4.0/dockerized/dockerFiles/docker-compose.yml
+curl -fOJL https://raw.githubusercontent.com/ELEVATE-Project/entity-management/refs/heads/main/src/documentation/3.4.0/dockerized/dockerFiles/docker-compose.yml
 curl -L \
-    -O https://raw.githubusercontent.com/ELEVATE-Project/entity-management/refs/heads/main/src/documentation/3.4.0/dockerized/envs/entity_management_env
+    -fO https://raw.githubusercontent.com/ELEVATE-Project/entity-management/refs/heads/main/src/documentation/3.4.0/dockerized/envs/entity_management_env
-curl -OJL https://raw.githubusercontent.com/ELEVATE-Project/entity-management/refs/heads/main/src/documentation/3.4.0/dockerized/script/mac-os/docker-compose-up.sh
-curl -OJL https://raw.githubusercontent.com/ELEVATE-Project/entity-management/refs/heads/main/src/documentation/3.4.0/dockerized/script/mac-os/docker-compose-down.sh
+curl -fOJL https://raw.githubusercontent.com/ELEVATE-Project/entity-management/refs/heads/main/src/documentation/3.4.0/dockerized/script/mac-os/docker-compose-up.sh
+curl -fOJL https://raw.githubusercontent.com/ELEVATE-Project/entity-management/refs/heads/main/src/documentation/3.4.0/dockerized/script/mac-os/docker-compose-down.sh
-curl -L https://raw.githubusercontent.com/ELEVATE-Project/entity-management/refs/heads/main/src/documentation/3.4.0/commonFiles/generics/configFile.json -o config.json
+curl -fL https://raw.githubusercontent.com/ELEVATE-Project/entity-management/refs/heads/main/src/documentation/3.4.0/commonFiles/generics/configFile.json -o config.json

Run the following to verify all five URLs resolve successfully on the main branch before merging:

#!/bin/bash
# Verify all download URLs in the updated script return HTTP 200
urls=(
  "https://raw.githubusercontent.com/ELEVATE-Project/entity-management/refs/heads/main/src/documentation/3.4.0/dockerized/dockerFiles/docker-compose.yml"
  "https://raw.githubusercontent.com/ELEVATE-Project/entity-management/refs/heads/main/src/documentation/3.4.0/dockerized/envs/entity_management_env"
  "https://raw.githubusercontent.com/ELEVATE-Project/entity-management/refs/heads/main/src/documentation/3.4.0/dockerized/script/mac-os/docker-compose-up.sh"
  "https://raw.githubusercontent.com/ELEVATE-Project/entity-management/refs/heads/main/src/documentation/3.4.0/dockerized/script/mac-os/docker-compose-down.sh"
  "https://raw.githubusercontent.com/ELEVATE-Project/entity-management/refs/heads/main/src/documentation/3.4.0/commonFiles/generics/configFile.json"
)

all_ok=true
for url in "${urls[@]}"; do
  status=$(curl -o /dev/null -s -w "%{http_code}" -L "$url")
  if [ "$status" -eq 200 ]; then
    echo "$status - $url"
  else
    echo "$status - $url"
    all_ok=false
  fi
done

$all_ok && echo "All URLs are reachable." || echo "One or more URLs are broken — fix before merging."

Also applies to: 36-36, 44-45, 59-59

curl -OJL https://raw.githubusercontent.com/ELEVATE-Project/entity-management/refs/heads/main/src/documentation/3.4.0/dockerized/dockerFiles/docker-compose.yml
```

2. **Download Environment Files**: Using the OS specific commands given below, download environment files for all the services.
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Minor grammar: "OS specific" should be hyphenated.

✏️ Proposed fix
-2.  **Download Environment Files**: Using the OS specific commands given below, download environment files for all the services.
+2.  **Download Environment Files**: Using the OS-specific commands given below, download environment files for all the services.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
2. **Download Environment Files**: Using the OS specific commands given below, download environment files for all the services.
2. **Download Environment Files**: Using the OS-specific commands given below, download environment files for all the services.
🧰 Tools
🪛 LanguageTool

[grammar] ~81-~81: Use a hyphen to join words.
Context: ...wnload Environment Files**: Using the OS specific commands given below, download ...

(QB_NEW_EN_HYPHEN)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/documentation/3.4.0/setup/docker/windows/README.md` at line 81, Update
the phrasing in the README sentence "Download Environment Files: Using the OS
specific commands given below, download environment files for all the services."
to hyphenate "OS-specific" (i.e., change "OS specific" to "OS-specific") so the
line reads: "Download Environment Files: Using the OS-specific commands given
below, download environment files for all the services." This edit targets the
README.md sentence shown in the diff.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🧹 Nitpick comments (1)
src/documentation/3.4.0/setup/native/windows/README.md (1)

84-88: Optional: Use a Windows-appropriate code block language tag for the curl command.

The code block is tagged bash, but this is a Windows setup guide. Windows 10+ ships curl.exe and the flags are identical, so the command itself is fine. Tagging the block as bat or cmd (or powershell if the alternative Invoke-WebRequest form is preferred) avoids reader confusion.

✏️ Suggested change
-```bash
+```bat
 curl -L -o entity-management/src/config.json https://raw.githubusercontent.com/ELEVATE-Project/entity-management/refs/heads/main/src/documentation/3.4.0/commonFiles/generics/configFile.json
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @src/documentation/3.4.0/setup/native/windows/README.md around lines 84 - 88,
The code block in README.md under "Attaching Config File" is tagged as bash
but this is a Windows setup guide; update the fenced code block language tag to
a Windows-appropriate one (e.g., change the opening fence from bash to bat
or ```cmd), or optionally provide a second Windows-native PowerShell alternative
using Invoke-WebRequest and tag that block as `powershell`; adjust the block
surrounding the `curl -L -o entity-management/src/config.json ...` line
accordingly so readers aren’t confused by the Linux-oriented tag.


</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>🤖 Prompt for all review comments with AI agents</summary>

Verify each finding against the current code and only fix it if needed.

Inline comments:
In @src/documentation/3.4.0/setup/native/mac-os/README.md:

  • Around line 182-190: The fenced code blocks in this section trigger MD040
    because they lack a language specifier and the verification command is too
    broad; update the first block containing "brew services start kafka" to use a
    bash fence (```bash) and replace the verification block currently showing "brew
    services list" with a bash-fenced "brew services info kafka" so the markdownlint
    warning is resolved and Kafka is checked specifically.

In @src/documentation/3.4.0/setup/native/ubuntu/README.md:

  • Around line 180-192: The guide currently assumes a systemd unit named "kafka"
    exists (uses "sudo systemctl start kafka"), which is incorrect for a plain
    Apache Kafka tarball; update the README to either (A) add a step to create and
    enable a systemd unit file (describe creating a unit that runs
    $KAFKA_HOME/bin/kafka-server-start.sh with $KAFKA_HOME/config/server.properties
    and enabling it via systemctl) or (B) replace the systemctl commands with the
    standard startup/stop scripts (use $KAFKA_HOME/bin/kafka-server-start.sh
    $KAFKA_HOME/config/server.properties to start and
    $KAFKA_HOME/bin/kafka-server-stop.sh to stop) and adjust the verification step
    to check the process or use kafka scripts rather than systemctl.
  • Line 184: The fenced code blocks containing the Kafka commands are missing
    language specifiers (MD040); update the two code fences that wrap the lines
    "sudo systemctl start kafka" and "sudo systemctl status kafka" to include a
    language tag (e.g., bash) so each fence reads bash before the command and closes with , ensuring both occurrences (the start and status blocks) are
    updated.

In @src/documentation/3.4.0/setup/native/windows/README.md:

  • Around line 181-183: Add the missing language specifier "bat" to the fenced
    code blocks that contain Windows batch commands so the linter stops raising
    MD040; specifically update the fences around the snippets that show
    "bin\windows\kafka-server-start.bat config\server.properties" and
    "bin\windows\kafka-topics.bat --list --bootstrap-server localhost:9092" to use
    bat instead of so they are recognized as Windows batch blocks.

Nitpick comments:
In @src/documentation/3.4.0/setup/native/windows/README.md:

  • Around line 84-88: The code block in README.md under "Attaching Config File"
    is tagged as bash but this is a Windows setup guide; update the fenced code
    block language tag to a Windows-appropriate one (e.g., change the opening fence
    from bash to bat or ```cmd), or optionally provide a second Windows-native
    PowerShell alternative using Invoke-WebRequest and tag that block as
    `powershell`; adjust the block surrounding the `curl -L -o
    entity-management/src/config.json ...` line accordingly so readers aren’t
    confused by the Linux-oriented tag.

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

Comment on lines +182 to +190
```
brew services start kafka
```

**Verify Kafka is running**

```
brew services list
```
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Missing bash language specifiers on fenced code blocks (MD040), and verification command is non-specific.

Both code blocks in this section lack a language identifier, which triggers MD040 warnings from markdownlint-cli2. Additionally, brew services list lists all Homebrew-managed services rather than confirming Kafka specifically; brew services info kafka is more targeted.

📝 Proposed fix
-```
+```bash
 brew services start kafka

Verify Kafka is running

- -brew services list +bash
+brew services info kafka

🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 182-182: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 188-188: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/documentation/3.4.0/setup/native/mac-os/README.md` around lines 182 -
190, The fenced code blocks in this section trigger MD040 because they lack a
language specifier and the verification command is too broad; update the first
block containing "brew services start kafka" to use a bash fence (```bash) and
replace the verification block currently showing "brew services list" with a
bash-fenced "brew services info kafka" so the markdownlint warning is resolved
and Kafka is checked specifically.

Comment on lines +180 to +192
## Setting up Kafka

**Start Kafka Service**

```
sudo systemctl start kafka
```

**Verify Kafka is running**

```
sudo systemctl status kafka
```
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Kafka systemd service assumption may break the guide for users following the official installation.

sudo systemctl start kafka assumes a systemd unit named kafka already exists. The standard Apache Kafka tarball (linked from line 66) does not register a systemd service automatically — users would need to manually create a unit file first. Without that step, the command will fail with Unit kafka.service could not be found.

Consider either:

  1. Adding the systemd unit file creation step here (or in the "Install Kafka" prerequisites section), or
  2. Replacing the systemctl invocation with the standard Kafka startup script approach (e.g., $KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties), which works out of the box after a tarball install.
🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 184-184: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 190-190: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/documentation/3.4.0/setup/native/ubuntu/README.md` around lines 180 -
192, The guide currently assumes a systemd unit named "kafka" exists (uses "sudo
systemctl start kafka"), which is incorrect for a plain Apache Kafka tarball;
update the README to either (A) add a step to create and enable a systemd unit
file (describe creating a unit that runs $KAFKA_HOME/bin/kafka-server-start.sh
with $KAFKA_HOME/config/server.properties and enabling it via systemctl) or (B)
replace the systemctl commands with the standard startup/stop scripts (use
$KAFKA_HOME/bin/kafka-server-start.sh $KAFKA_HOME/config/server.properties to
start and $KAFKA_HOME/bin/kafka-server-stop.sh to stop) and adjust the
verification step to check the process or use kafka scripts rather than
systemctl.


**Start Kafka Service**

```
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Add language specifiers to fenced code blocks.

Both the Kafka start and status blocks are missing a language tag, violating MD040.

📝 Proposed fix
-```
+```bash
 sudo systemctl start kafka

- +bash
sudo systemctl status kafka

Also applies to: 190-190

🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 184-184: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/documentation/3.4.0/setup/native/ubuntu/README.md` at line 184, The
fenced code blocks containing the Kafka commands are missing language specifiers
(MD040); update the two code fences that wrap the lines "sudo systemctl start
kafka" and "sudo systemctl status kafka" to include a language tag (e.g., bash)
so each fence reads ```bash before the command and closes with ```, ensuring
both occurrences (the start and status blocks) are updated.

Comment on lines +181 to +183
```
bin\windows\kafka-server-start.bat config\server.properties
```
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Add language specifiers to the fenced code blocks.

Both code blocks are missing a language identifier, which triggers MD040 warnings from the linter. Since these are Windows batch commands, bat is the appropriate specifier.

✏️ Proposed fix
-```
+```bat
 bin\windows\kafka-server-start.bat config\server.properties

Verify Kafka is running

- +bat
bin\windows\kafka-topics.bat --list --bootstrap-server localhost:9092

Also applies to: 187-189

🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 181-181: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/documentation/3.4.0/setup/native/windows/README.md` around lines 181 -
183, Add the missing language specifier "bat" to the fenced code blocks that
contain Windows batch commands so the linter stops raising MD040; specifically
update the fences around the snippets that show
"bin\windows\kafka-server-start.bat config\server.properties" and
"bin\windows\kafka-topics.bat --list --bootstrap-server localhost:9092" to use
```bat instead of ``` so they are recognized as Windows batch blocks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant