-
Notifications
You must be signed in to change notification settings - Fork 0
feat: implement internal dependency synchronization and changelog generation #6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughAdds a two-pass internal dependency synchronization step to the release workflow, configures Nx SHAs and generates a release body from published package.json files, and bumps Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20–25 minutes
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
🔇 Additional comments (2)
Comment |
There was a problem hiding this 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
🧹 Nitpick comments (1)
.github/workflows/create-release-branch.yml (1)
258-262: Add validation tobumpPatchto handle unexpected version formats.The
bumpPatchfunction assumes semantic versioning format but does not validate the input. If a malformed version (e.g., "1.0", "1.0.0-rc.1", or unexpected formats) reaches this function, the increment may behave unexpectedly or produce invalid versions.Apply this diff to add basic validation:
function bumpPatch(version) { const parts = version.split('.'); + if (parts.length < 3 || isNaN(parseInt(parts[2], 10))) { + throw new Error('Invalid semantic version: ' + version); + } parts[2] = String(parseInt(parts[2], 10) + 1); return parts.join('.'); }
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
.github/workflows/create-release-branch.yml(3 hunks).github/workflows/publish-on-next-close.yml(2 hunks)libs/enclave-vm/package.json(2 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
libs/**
⚙️ CodeRabbit configuration file
libs/**: Contains publishable SDK libraries. Review for API correctness, breaking changes, and consistency with docs. When public APIs change, ensure there is a matching docs/draft/docs/** update (not direct edits under docs/docs/**).
Files:
libs/enclave-vm/package.json
🔇 Additional comments (4)
libs/enclave-vm/package.json (1)
3-3: Verify justification for patch bump when dependency is updated.The version bump to 1.0.1 and ast-guard dependency update to 1.1.0 appear to be driven by the new internal dependency-synchronization workflow. Confirm that:
- The patch bump is semantically justified (e.g., not just a derived bump from dependency updates that are themselves backward-compatible)
- The ast-guard 1.1.0 update introduces no breaking changes to this library's public API
Also applies to: 39-39
.github/workflows/publish-on-next-close.yml (2)
66-67: ✓ Nx SHAs setup is correctly placed.The
Set Nx SHAsstep is appropriately positioned before computing affected projects, enabling the--affectedflag to function correctly in the release workflow.
229-263: Verify GitHub Release action behavior with bothbody_pathandgenerate_release_notes.The release body generation logic is sound—it correctly reads package versions, constructs npm links, and writes to a temporary file for multiline support. However, when using both
body_pathandgenerate_release_notes: truetogether, verify the interaction:
- Does
softprops/action-gh-releaseconcatenate the provided body with auto-generated notes, or doesbody_pathtake full precedence?- If concatenation occurs, will the release body have the expected structure?
This affects how release notes appear to end users, so confirm the behavior aligns with your expectations.
.github/workflows/create-release-branch.yml (1)
332-380: Two-pass dependency synchronization logic is sound overall, with good safeguards against double-bumping.The second pass correctly:
- Identifies all publishable libraries
- Checks for dependencies that reference bumped packages
- Avoids double-bumping via
!internalVersions[libName]check (line 364)- Updates
internalVersionsandmaxVersionconsistently- Writes only modified packages back to disk
- Gracefully handles execSync failure with a warning
The approach enables transitive dependency updates—if lib A depends on bumped lib B, lib A gets a patch bump and can then propagate downstream.
However, this is conditional on resolving the range-to-exact version conversion issue identified above.
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.