Skip to content

Conversation

@Nuclearfossil
Copy link

The following changes have been implemented:

  • I've updated the README.md file to better reflect a first-time setup
  • I've also added a powershell script for those of us so inclined to use that environment

@coderabbitai
Copy link

coderabbitai bot commented Dec 19, 2025

Walkthrough

README now requires cloning submodules and offers multiple Windows setup paths (Setup.bat, scripts/setup.ps1, or running premake5). A new scripts/setup.ps1 PowerShell script was added to run vendor\bin\premake5.exe vs2022 with basic error handling and directory restore.

Changes

Cohort / File(s) Summary
Documentation Updates
README.md
Rewrote Getting Started to recommend git clone --recurse-submodules, added explicit submodule cloning step, replaced the single Setup instruction with multiple Windows setup options (Setup.bat, scripts/setup.ps1, or using vendor\bin\premake5.exe vs2022), fixed a header typo, expanded the 3rd‑party libraries list (Dear ImGui, GLFW, stb_image, GLM noted as included), and kept the Roboto font license note.
Setup Automation
scripts/setup.ps1
Added PowerShell setup script that sets $ErrorActionPreference = "Stop", changes to the script directory, attempts to run vendor\bin\premake5.exe vs2022 inside try/catch/finally, prints errors in red, restores the original location, and prompts the user to press Enter.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Verify README commands and wording for clarity and correctness (submodule clone, premake vs2022 usage).
  • Confirm scripts/setup.ps1 resolves the correct script path and the vendor\bin\premake5.exe path on Windows.
  • Check error handling behavior (colored output), directory restore via Push/Pop-Location, and the user prompt semantics.

Poem

🐰 I hopped through docs and scripts with care,
Submodules tucked beneath my hair.
I tapped premake’s shoe and watched it spin,
A tidy setup — now build begin! 🥕✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main changes: updating documentation (README.md) and adding a PowerShell setup script, which align with the changeset.
Description check ✅ Passed The description is directly related to the changeset, mentioning README.md updates for first-time setup and the addition of a PowerShell script, matching the actual file changes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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: 3

🧹 Nitpick comments (4)
scripts/setup.ps1 (3)

5-5: Add existence check for premake5.exe.

The script attempts to run vendor\bin\premake5.exe without verifying it exists. If the file is missing (e.g., submodules weren't cloned), the error message won't clearly indicate the root cause.

🔎 Proposed fix
+if (-not (Test-Path "vendor\bin\premake5.exe")) {
+    Write-Host "Error: premake5.exe not found. Did you clone with --recurse-submodules?" -ForegroundColor Red
+    Read-Host "Press Enter to continue..."
+    exit 1
+}
+
 & "vendor\bin\premake5.exe" vs2022

1-12: Consider returning explicit exit codes for automation.

The script doesn't explicitly return exit codes, which makes it difficult for automated build systems or CI/CD pipelines to determine if the setup succeeded. The $ErrorActionPreference = "Stop" helps, but the catch block swallows the error without re-throwing or setting an exit code.

🔎 Proposed fix
 catch {
     Write-Host "Error: $($_.Exception.Message)" -ForegroundColor Red
+    Pop-Location
+    Read-Host "Press Enter to continue..."
+    exit 1
 }
 finally {
     Pop-Location
 }
-
-Read-Host "Press Enter to continue..."
+
+Read-Host "Press Enter to continue..."
+exit 0

14-14: Read-Host blocks automation and non-interactive usage.

The unconditional Read-Host prompt prevents the script from being used in automated or CI/CD environments. Consider making this prompt optional or removing it for non-interactive scenarios.

🔎 Proposed fix
-Read-Host "Press Enter to continue..."
+if ([Environment]::UserInteractive) {
+    Read-Host "Press Enter to continue..."
+}
README.md (1)

39-41: Use correct code block identifier.

The code block uses bash identifier for a command that works across platforms including Windows cmd.exe. Consider using shell or console for platform-agnostic commands, or specify the actual shell if targeting a specific environment.

🔎 Proposed fix
-``` bash
+``` shell
 premake5 vs2022
</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used**: Repository UI

**Review profile**: CHILL

**Plan**: Pro

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between 3b8e414fdecfc6c8b58816106fe8d912bd172e31 and 25da8d7f7c530392b86b245dd68dda96ba074914.

</details>

<details>
<summary>📒 Files selected for processing (2)</summary>

* `README.md` (1 hunks)
* `scripts/setup.ps1` (1 hunks)

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>🪛 LanguageTool</summary>

<details>
<summary>README.md</summary>

[style] ~16-~16: Consider a more concise word here.
Context: ... a recent version)  ## Getting Started  In order to clone the repository, you'll need to gr...

(IN_ORDER_TO_PREMIUM)

---

[style] ~17-~17: Consider a more expressive alternative.
Context: ... you'll need to grab the submodules. To do that, you will need the following comma...

(DO_ACHIEVE)

---

[grammar] ~45-~45: Ensure spelling is correct
Context: ...e setup and ready to go.  ### 3rd party libaries  - [Dear ImGui](https://github.com/ocornut/i...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

---

[typographical] ~47-~47: This greeting should probably end with a comma.
Context: ...eady to go.  ### 3rd party libaries  - [Dear ImGui](https://github.com/ocornut/imgui) - [G...

(EN_GREETING_WITHOUT_COMMA)

</details>

</details>
<details>
<summary>🪛 markdownlint-cli2 (0.18.1)</summary>

<details>
<summary>README.md</summary>

25-25: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)

---

25-25: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)

---

31-31: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)

---

31-31: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)

---

37-37: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)

---

37-37: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)

</details>

</details>

</details>

</details>

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

README.md Outdated
Comment on lines 25 to 35
*on Windows command line:*

``` bash
./scripts/setup.ps1
```

*on Windows Powershell:*

``` bash
./scripts/Setup.ps1
```
Copy link

Choose a reason for hiding this comment

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

🛠️ Refactor suggestion | 🟠 Major

Clarify the distinction between setup options.

The current wording creates confusion:

  • "Windows command line" (lines 25-29) vs "Windows Powershell" (lines 31-35) is unclear since PowerShell is a command line interface
  • Both instructions run the same .ps1 script, which is a PowerShell script
  • The distinction likely intended is: running from cmd.exe vs running from PowerShell

Additionally, the code blocks use bash identifier for PowerShell commands, which is incorrect.

🔎 Proposed fix
-*on Windows command line:*
+*from cmd.exe (Command Prompt):*
 
-``` bash
+``` cmd
 ./scripts/setup.ps1

-on Windows Powershell:
+from PowerShell:

- bash -./scripts/Setup.ps1 + powershell
+./scripts/setup.ps1

🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

25-25: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)


25-25: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)


31-31: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)


31-31: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)

🤖 Prompt for AI Agents
In README.md around lines 25 to 35 the instructions confuse "Windows command
line" with PowerShell, use incorrect code block language tags, and show
inconsistent script casing; change the headings to "from cmd.exe" and "from
PowerShell", ensure both blocks call the same ./scripts/setup.ps1 (lowercase)
consistently, and update the fenced-code block language identifiers to `cmd` for
the cmd.exe example and `powershell` for the PowerShell example so the commands
and labels are accurate.

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: 0

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

25-41: Resolve setup instruction issues from previous review (still unaddressed).

The following issues from the previous review remain unresolved and impact usability and correctness:

  1. Line 25: Wording "command standard line" is confusing; should be "from cmd.exe"
  2. Line 27 & 33: Code blocks incorrectly use bash identifier for Windows shell commands (cmd for cmd.exe, powershell for PowerShell)
  3. Line 34: Filename case inconsistency (Setup.ps1 should be setup.ps1 to match the actual file and ensure consistency across lines 28 and 34)
  4. Lines 25, 31, 37: Emphasis style violations—asterisks should be replaced with underscores per Markdown linting rules (MD049)
🔎 Comprehensive fix for all issues
-*on Windows command standard line (cmd.exe):*
+_from cmd.exe (Command Prompt):_
 
-``` bash
+``` cmd
 ./scripts/setup.bat

-on Windows Powershell:
+from PowerShell:

- bash -./scripts/Setup.ps1 + powershell
+./scripts/setup.ps1


-*or, if you have premake already installed:*
+_or, if you have premake already installed:_

``` bash
premake5 vs2022
🧹 Nitpick comments (1)
README.md (1)

17-21: Optional: Refine wording for clarity and conciseness.

Line 17 uses conversational phrasing ("In order to," "grab") that could be more direct and professional. This is a minor style improvement.

🔎 Suggested refinement
-In order to clone the repository, you'll need to grab the submodules. To do that, you will need the following command line:
+To clone the repository with submodules, run:
📜 Review details

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 25da8d7 and 615610c.

📒 Files selected for processing (1)
  • README.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
README.md

[style] ~16-~16: Consider a more concise word here.
Context: ... a recent version) ## Getting Started In order to clone the repository, you'll need to gr...

(IN_ORDER_TO_PREMIUM)


[style] ~17-~17: Consider a more expressive alternative.
Context: ... you'll need to grab the submodules. To do that, you will need the following comma...

(DO_ACHIEVE)


[typographical] ~47-~47: This greeting should probably end with a comma.
Context: ...ady to go. ### 3rd party libraries - Dear ImGui - [G...

(EN_GREETING_WITHOUT_COMMA)

🪛 markdownlint-cli2 (0.18.1)
README.md

25-25: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)


25-25: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)


31-31: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)


31-31: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)


37-37: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)


37-37: Emphasis style
Expected: underscore; Actual: asterisk

(MD049, emphasis-style)

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: 1

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

31-35: Fix case inconsistency in PowerShell script filename.

Line 34 references ./scripts/Setup.ps1 (with uppercase 'S'), but the new PowerShell script file added in this PR is scripts/setup.ps1 (lowercase). This inconsistency will confuse users and may cause issues on case-sensitive systems.

🔎 Proposed fix
 _on Windows Powershell:_
 
 ``` powershell
-./scripts/Setup.ps1
+./scripts/setup.ps1
</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used**: Repository UI

**Review profile**: CHILL

**Plan**: Pro

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between 615610c50509802e42c2114021b0fa5f9a801294 and a01a6aea88c9f2dec91e8b7eb46325ab8b190cb2.

</details>

<details>
<summary>📒 Files selected for processing (1)</summary>

* `README.md` (1 hunks)

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>🪛 LanguageTool</summary>

<details>
<summary>README.md</summary>

[grammar] ~17-~17: Ensure spelling is correct
Context: ...rsion)  ## Getting Started  In order to fuly clone the repository run the following ...

(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)

---

[typographical] ~47-~47: This greeting should probably end with a comma.
Context: ...ady to go.  ### 3rd party libraries  - [Dear ImGui](https://github.com/ocornut/imgui) - [G...

(EN_GREETING_WITHOUT_COMMA)

</details>

</details>

</details>

<details>
<summary>🔇 Additional comments (3)</summary><blockquote>

<details>
<summary>README.md (3)</summary><blockquote>

`25-29`: **LGTM.** The distinction between cmd.exe and PowerShell is now clear, and the code block identifier is correct.

---

`37-41`: **LGTM.** The premake option is clearly presented as an alternative setup method.

---

`43-54`: **LGTM.** The Getting Started flow is now clear with submodule cloning prerequisites, and the 3rd party libraries section is well-documented with proper links.

</blockquote></details>

</blockquote></details>

</details>

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

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: 0

🧹 Nitpick comments (1)
README.md (1)

17-17: Optional: Consider more concise phrasing.

The phrase "In order to fully clone" could be shortened to "To fully clone" or "To clone" for better readability, though this is a minor style preference.

🔎 Suggested revision
-In order to fully clone the repository run the following command:
+To fully clone the repository run the following command:
📜 Review details

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a01a6ae and 6bf6714.

📒 Files selected for processing (1)
  • README.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
README.md

[style] ~16-~16: Consider a more concise word here.
Context: ... a recent version) ## Getting Started In order to fully clone the repository run the foll...

(IN_ORDER_TO_PREMIUM)


[typographical] ~47-~47: This greeting should probably end with a comma.
Context: ...ady to go. ### 3rd party libraries - Dear ImGui - [G...

(EN_GREETING_WITHOUT_COMMA)

🔇 Additional comments (2)
README.md (2)

25-41: Great! Setup instructions are now clear and correct.

The distinction between "on Windows using the command prompt cmd.exe:" (lines 25-29) and "on Windows Powershell:" (lines 31-35) is now properly clarified. The code block language identifiers (cmd and powershell) are correctly applied, and the script filename is consistently referenced as lowercase ./scripts/setup.ps1. The addition of the premake alternative (lines 37-41) provides flexibility for users who have it installed.


19-21: Submodule cloning requirement is well-documented.

The git clone --recurse-submodules command correctly ensures users clone the repository with all required submodules on first setup, which is a good improvement for first-time setup clarity.

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