Conversation
Reviewer's GuideAdds CI support for static Netsukefile execution by introducing a GitHub Actions workflow to build and verify a sample Netsukefile, updating the roadmap documentation to reflect CI validation, and providing a shell script helper to assert artifact existence. Flow diagram for assert-file-exists.sh helper scriptflowchart TD
Start([Start])
Input[Get file path argument]
Check{Does file exist?}
Error[Print error and exit 1]
Success[Exit 0]
Start --> Input --> Check
Check -- No --> Error
Check -- Yes --> Success
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
Summary by CodeRabbit
WalkthroughIntroduce a new GitHub Actions workflow to test Netsukefile builds on pull requests and main branch pushes. Add a Bash script to assert the existence of a generated file. Update the project roadmap to mark a success criterion as completed, with minor wording adjustments and a note on CI validation. Changes
Sequence Diagram(s)sequenceDiagram
participant GitHub Actions
participant Runner (Ubuntu)
participant Repo
participant Bash Script
GitHub Actions->>Runner (Ubuntu): Trigger workflow on PR or push to main
Runner (Ubuntu)->>Repo: Checkout code
Runner (Ubuntu)->>Runner (Ubuntu): Set up Rust
Runner (Ubuntu)->>Runner (Ubuntu): Run make build
Runner (Ubuntu)->>Runner (Ubuntu): Create Netsukefile manifest
Runner (Ubuntu)->>Runner (Ubuntu): Run netsuke build to generate target
Runner (Ubuntu)->>Bash Script: Run assert-file-exists.sh generated.txt
Bash Script-->>Runner (Ubuntu): Exit 0 if file exists, error if not
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Poem
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (2)
🔇 Additional comments (3)
✨ 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 comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Hey @leynos - I've reviewed your changes and found some issues that need to be addressed.
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
There was a problem hiding this comment.
Actionable comments posted: 4
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (3)
.github/workflows/netsukefile-test.yml(1 hunks)docs/roadmap.md(1 hunks)scripts/assert-file-exists.sh(1 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
docs/**/*.md
📄 CodeRabbit Inference Engine (AGENTS.md)
docs/**/*.md: Use the markdown files within thedocs/directory as a knowledge base and source of truth for project requirements, dependency choices, and architectural decisions.
Proactively update the relevant file(s) in thedocs/directory to reflect the latest state when new decisions are made, requirements change, libraries are added/removed, or architectural patterns evolve.
Files:
docs/roadmap.md
**/*.md
📄 CodeRabbit Inference Engine (AGENTS.md)
**/*.md: Documentation must use en-GB-oxendict spelling and grammar, except for the naming of the "LICENSE" file.
Validate Markdown files usingmake markdownlint.
Runmake fmtafter any documentation changes to format all Markdown files and fix table markup.
Validate Mermaid diagrams in Markdown files by runningmake nixie.
Markdown paragraphs and bullet points must be wrapped at 80 columns.
Code blocks in Markdown must be wrapped at 120 columns.
Tables and headings in Markdown must not be wrapped.
Use dashes (-) for list bullets in Markdown.
Use GitHub-flavoured Markdown footnotes ([^1]) for references and footnotes.
Files:
docs/roadmap.md
⚙️ CodeRabbit Configuration File
**/*.md: * Avoid 2nd person or 1st person pronouns ("I", "you", "we")
- Use en-GB-oxendict (-ize / -our) spelling and grammar
- Paragraphs and bullets must be wrapped to 80 columns, except where a long URL would prevent this (in which case, silence MD013 for that line)
- Code blocks should be wrapped to 120 columns.
- Headings must not be wrapped.
- Documents must start with a level 1 heading
- Headings must correctly increase or decrease by no more than one level at a time
- Use GitHub-flavoured Markdown style for footnotes and endnotes.
- Numbered footnotes must be numbered by order of appearance in the document.
Files:
docs/roadmap.md
🧠 Learnings (1)
📚 Learning: netsuke can successfully take a netsukefile without any jinja syntax, compile it to a build.ninja fi...
Learnt from: CR
PR: leynos/netsuke#0
File: docs/roadmap.md:0-0
Timestamp: 2025-08-03T23:02:56.706Z
Learning: Netsuke can successfully take a Netsukefile without any Jinja syntax, compile it to a build.ninja file, and execute it via the ninja subprocess to produce the correct build artifacts.
Applied to files:
docs/roadmap.md
🔇 Additional comments (1)
docs/roadmap.md (1)
69-71: Run doc formatters after changing long bullets
make fmtre-wraps Markdown to 80-column width and keeps table alignment intact. Execute it and commit the resulting changes to avoid markdownlint noise in CI.
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (3)
.github/workflows/netsukefile-test.yml (3)
15-15: Pin actions/checkout to a commit SHA
Still using the moving tagv4. Lock to an immutable SHA to mitigate supply-chain risk.
16-19: Add Cargo cache step to cut CI minutes
Persist the Cargo registry andtargetto slash rebuild time on subsequent runs.
22-29: Strip leading indentation from the heredoc
The currentcat <<'MANIFEST'writes two-space indents intoNetsukefile, polluting root-level YAML. Switch to<<-MANIFESTand use tab indents, or out-dent to column 0.
Summary
Testing
make fmtmake lintmake testmake markdownlintmake nixie(fails: error: too many arguments. Expected 0 arguments but got 1.)https://chatgpt.com/codex/tasks/task_e_68913798ff6483229afa20b94a09d7b1
Summary by Sourcery
Set up a CI workflow to build and run a simple Netsukefile with Netsuke, validate its output via a helper script, and update documentation to reflect the completed roadmap milestone
CI:
Documentation:
Tests: