[build] consolidate pre-release workflow#16997
Conversation
PR Compliance Guide 🔍Below is a summary of compliance checks for this PR:
Compliance status legend🟢 - Fully Compliant🟡 - Partial Compliant 🔴 - Not Compliant ⚪ - Requires Further Human Verification 🏷️ - Compliance label |
||||||||||||||||||||||||
PR Code Suggestions ✨Latest suggestions up to bc19baf
Previous suggestions✅ Suggestions up to commit 37c5f75
Suggestions up to commit 4a8ba9d
✅ Suggestions up to commit aba59de
|
||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment.
Pull request overview
This PR consolidates the pre-release workflow by decoupling version bumps from dependency updates for Ruby and Rust, and explicitly managing these steps in the workflow and Rakefile.
Changes:
- Removed automatic invocation of update tasks from Ruby and Rust version tasks to prevent inconsistent lockfile updates
- Consolidated pre-release workflow from three separate jobs (generate-updates, generate-versions, generate-changelogs) into a single matrix job (release-updates)
- Added explicit version + update task pairing in both the workflow and Rakefile for proper sequencing
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
rake_tasks/rust.rake |
Removed auto-invocation of rust:update from rust:version task |
rake_tasks/ruby.rake |
Removed auto-invocation of rb:update from rb:version task |
Rakefile |
Renamed prep_release to release_updates, added explicit all:update and rust:update calls, renamed task references from release_update to update_multitool |
.github/workflows/pre-release.yml |
Consolidated three jobs into one matrix job with separate binding-versions and rust-versions items that explicitly call version and update tasks together |
4a8ba9d to
c8a1b20
Compare
37c5f75 to
bc19baf
Compare
User description
Ruby & Rust version bumps update their lockfiles requiring re-pinning, which makes things inconsistent, this is here to help
What does this PR do?
nor changelogsneed to be managed in separate jobs during pre-releaseall:tasksImplementation Notes
Pre-release workflow runs the updates separately in parallel for visibility. The same functionality in one task:
./go release_updatesThe pre-release workflow matrix for release-updates now includes:
bindings-versions:./go all:version && ./go all:update(bindings)rust-versions:./go rust:version && ./go rust:update(Rust separately)changelogs:./go all:changelogs && ./go rust:changelogsThis ensures:
all:tasksAdditional Considerations
Plan to merge this before #16987
Types of changes
PR Type
Enhancement
Description
Consolidate pre-release workflow by merging separate jobs into single matrix job
Remove automatic update invocations from Ruby and Rust version bump tasks
Add explicit Rust handling in release workflow since excluded from
all:tasksRename and restructure release preparation task for clarity and consistency
Diagram Walkthrough
File Walkthrough
ruby.rake
Remove automatic update from Ruby version taskrake_tasks/ruby.rake
rb:updatetask invocation fromrb:versiontaskdependency updates
rust.rake
Remove automatic update from Rust version taskrake_tasks/rust.rake
rust:updatetask invocation fromrust:versiontasktriggering dependency updates
pre-release.yml
Consolidate workflow jobs into single matrix job.github/workflows/pre-release.yml
generate-updatesjob torelease-updatesand consolidatemultiple separate jobs into single matrix job
binding-versionsandrust-versionsmatrix entries that explicitlyrun version and update tasks in sequence
release_updatewithupdate_multitooland add explicitchangelog generation
generate-versionsandgenerate-changelogsjobscreate-prjob dependencies and patch application logic toreflect consolidated workflow
entries
Rakefile
Rename and restructure release preparation taskRakefile
prep_releasetask torelease_updatesfor consistency withworkflow naming
update_multitoolinstead ofjava:updateall:updateandrust:updatetasks to handledependency updates separately
name