docs(release): Make+Nix release flow with gh publish#16
Conversation
Add scripts/release.sh (build ISO and kcore-kctl, dist tarball/checksums, gh release). Add Makefile release-* targets; fix ISO discovery for Nix output filename. Document process in docs/release.md; template RELEASE_NOTES; link from README.
|
Warning Rate limit exceeded
To keep reviews running without waiting, you can enable usage-based add-on for your organization. This allows additional reviews beyond the hourly cap. Account admins can enable it under billing. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughThis pull request introduces a comprehensive release workflow infrastructure for the kcore project. Changes include Makefile targets delegating to a new release orchestration script, release documentation with step-by-step instructions, a template for release notes, configuration updates to gitignore and documentation indices, and a Bash script that handles building, packaging, and publishing release artifacts. Changes
Sequence DiagramsequenceDiagram
actor User
participant Make as Make<br/>(release target)
participant ReleaseScript as scripts/release.sh
participant Nix as Nix Build
participant FileSystem as Distribution<br/>Artifacts
participant GitHub as GitHub API<br/>(gh CLI)
User->>Make: make release
Make->>ReleaseScript: release.sh build
ReleaseScript->>Nix: nix build (iso + kctl)
Nix-->>ReleaseScript: result-iso, result-kctl
ReleaseScript->>Make: ✓ build complete
User->>Make: make release-dist
Make->>ReleaseScript: release.sh dist
ReleaseScript->>FileSystem: create dist/
ReleaseScript->>FileSystem: package kcore-kctl.tar.gz
ReleaseScript->>FileSystem: copy versioned ISO
ReleaseScript->>FileSystem: write SHA256SUMS
ReleaseScript-->>Make: ✓ artifacts ready
User->>Make: make release-publish
Make->>ReleaseScript: release.sh publish
ReleaseScript->>GitHub: gh release create --verify-tag
ReleaseScript->>GitHub: upload tarball, ISO, checksums
GitHub-->>ReleaseScript: Release published
ReleaseScript-->>Make: ✓ published
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Review rate limit: 0/1 reviews remaining, refill in 15 minutes and 31 seconds.Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
docs/file-structure.md (1)
253-253: Keep the top project tree in sync with this new catalog coverage.You added these files in the full catalog, but the earlier “Project tree” block still omits them. Updating both sections together avoids conflicting documentation.
Also applies to: 272-272
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/file-structure.md` at line 253, The top "Project tree" block is missing entries that were added to the full catalog (notably scripts/release.sh); update the Project tree section to include the same new files and brief descriptions so both sections stay in sync—locate the "Project tree" block in file-structure.md, add an entry for scripts/release.sh (and any other files present in the full catalog but omitted), and ensure the wording matches the catalog descriptions.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/release.md`:
- Around line 50-52: The bullet for `dist/kcoreos-$(VERSION)-x86_64-linux.iso`
is indented differently and triggers markdownlint MD005; edit the release.md
bullet list so that the line containing
`dist/kcoreos-$(VERSION)-x86_64-linux.iso` has the same leading indentation as
the sibling bullets (matching `dist/kcore-kctl-$(VERSION)-linux-x86_64.tar.gz`
and `dist/SHA256SUMS`) to make all three list items consistent.
In `@scripts/release.sh`:
- Around line 65-80: The script calls gh directly (see the gh release create
invocation and the cmd_publish wrapper) which violates the scripts/ guideline;
change the release creation to invoke gh via nix develop --command so gh runs
inside the Nix dev shell (e.g., run nix develop --command "gh release create
...") or use a small helper that prefixes commands with nix develop --command
when running dev tools; update the gh release create invocation (and any other
direct gh calls) to use that nix develop wrapper so tooling runs under the
repository's Nix environment.
---
Nitpick comments:
In `@docs/file-structure.md`:
- Line 253: The top "Project tree" block is missing entries that were added to
the full catalog (notably scripts/release.sh); update the Project tree section
to include the same new files and brief descriptions so both sections stay in
sync—locate the "Project tree" block in file-structure.md, add an entry for
scripts/release.sh (and any other files present in the full catalog but
omitted), and ensure the wording matches the catalog descriptions.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: b5d4b8dd-5376-4b78-bac0-d6347139f792
📒 Files selected for processing (8)
.gitignoreMakefileREADME.mdRELEASE_NOTES.template.mddocs/README.mddocs/file-structure.mddocs/release.mdscripts/release.sh
Add scripts/release.sh (build ISO and kcore-kctl, dist tarball/checksums, gh release). Add Makefile release-* targets; fix ISO discovery for Nix output filename. Document process in docs/release.md; template RELEASE_NOTES; link from README.
Summary by CodeRabbit
New Features
make releasecommand with integrated GitHub Release support.Documentation
Chores