Skip to content

Conversation

ADITYATIWARI342005
Copy link

@ADITYATIWARI342005 ADITYATIWARI342005 commented Sep 3, 2025

[Feature]: Automate release process #3056

This PR implements automated release preparation for Jaeger UI, addressing issue #3056. It transforms the current manual release process into a streamlined, two-command workflow.

Which problem is this PR solving?

Description of the changes

  • Implementation (Automated Process)

  1. Run make prepare-release VERSION=x.y.z
  2. Script automatically:
    • Updates all files
    • Creates git branch
    • Commits changes
    • Pushes to remote
    • Creates GitHub PR with proper labels
  3. Review and merge the automated PR
  4. Run existing make changelog and make draft-release

How was this change tested?

  • Tested on main branch to check automated release via make prepare-release VERSION=x.y.z and configurations verified.

Checklist

What's New

New Command: make prepare-release VERSION=x.y.z

This command automates the entire release preparation process:

  1. Version Input

    • Accepts version as command-line argument (e.g., VERSION=1.74.0)
    • Validates version format (semantic versioning)
    • Integrates with main Jaeger repository's version determination
  2. File Updates

    • Updates packages/jaeger-ui/package.json version
    • Updates CHANGELOG.md with new version header
    • Conditionally updates packages/plexus/package.json for major version bumps
  3. Git Automation

    • Creates release branch automatically (prepare-release-v{version})
    • Commits changes with descriptive messages
    • Validates git status and branch requirements
    • Pushes branch to remote repository
  4. Automated PR Creation

    • Creates GitHub pull request using gh utility
    • Applies changelog:skip label automatically
    • Includes comprehensive PR body with change summary
    • Handles multi-line content and special characters
  5. Integration

    • Seamlessly works with existing make changelog and make draft-release
    • Maintains monorepo versioning strategy
    • Follows existing release process patterns

Testing

The automation has been thoroughly tested and demonstrates:

  • ✅ Correct version updates (1.73.0 → 1.74.0)
  • ✅ Proper CHANGELOG.md formatting
  • ✅ Git branch creation and validation
  • ✅ Automated PR creation with GitHub CLI
  • ✅ Error handling for invalid states
  • ✅ Integration with existing tools
  • ✅ Proper argument parsing and validation

Next Steps

After merging this PR:

  1. Maintainers can use make prepare-release VERSION=x.y.z for all future releases
  2. The existing make changelog and make draft-release commands remain unchanged
  3. Release process becomes: make prepare-release VERSION=x.y.z → review PR → merge → make changelogmake draft-release

�� Files Changed

  • scripts/release/prepare.js - Main automation orchestrator (renamed from prepare-release.js)
  • scripts/release/version-updater.js - Version update logic
  • Makefile - Added prepare-release target with VERSION parameter
  • scripts/release/demo.js - Removed (was only for development testing)

Screenshots/Demo

make prepare-release VERSION=x.y.z

image

This implementation completes the automation that was already 70% implemented in the repository, filling the gaps in the existing release process while preserving all current functionality.

closes #3056

- Add make prepare-release command for automated release preparation
- Create version-updater.js for package.json and CHANGELOG.md update
- Create prepare-release.js as main automation orchestrator
- Create demo.js to showcase the automation workflow
- Integrate with existing make changelog and make draft-release commands

Resolves jaegertracing#3056

Signed-off-by: ADITYATIWARI342005 <142050150+ADITYATIWARI342005@users.noreply.github.com>
@ADITYATIWARI342005 ADITYATIWARI342005 requested a review from a team as a code owner September 3, 2025 23:52
@ADITYATIWARI342005 ADITYATIWARI342005 requested review from jkowall and removed request for a team September 3, 2025 23:52
Copy link
Contributor

graphite-app bot commented Sep 3, 2025

How to use the Graphite Merge Queue

Add the label merge-queue to this PR to add it to the merge queue.

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

Signed-off-by: ADITYATIWARI342005 <142050150+ADITYATIWARI342005@users.noreply.github.com>
… determination

- Remove custom calculateNextVersion function
- Add determineVersionFromMainRepo() to use main Jaeger repo logic
- Add fallback version determination when main repo unavailable
- Update demo script to reflect new approach
- Maintains consistency with main Jaeger repository versioning

Signed-off-by: Aditya Tiwari <adityatiwari342005@gmail.com>
@ADITYATIWARI342005 ADITYATIWARI342005 force-pushed the feature/automate-release-process branch from 3c9b183 to 40e58fa Compare September 6, 2025 20:46
- Rename prepare-release.js to prepare.js for conciseness
- Remove demo.js file (not part of release process)
- Replace full license headers with SPDX identifiers
- Accept version as argument instead of internal determination
- Implement automated PR creation using gh utility
- Remove manual steps and fallback logic
- Update Makefile to require VERSION parameter

Signed-off-by: Aditya Tiwari <adityatiwari342005@gmail.com>
- Use --body-file instead of --body to avoid shell escaping issues
- Write PR body to temporary file and clean up after use
- Fixes multi-line PR body with special characters and spaces

Signed-off-by: Aditya Tiwari <adityatiwari342005@gmail.com>
@ADITYATIWARI342005
Copy link
Author

Hi @yurishkuro
I have addressed all the reviews, and updated the PR description with latest changes.
Please review and, if possible, test it. I did not have write access on the jaeger-ui repository, so I did not try to test that part.

@ADITYATIWARI342005 ADITYATIWARI342005 changed the title Feature]: Automate release process #3056 [Feature]: Automate release process #3056 Sep 9, 2025
@ADITYATIWARI342005
Copy link
Author

Hi @yurishkuro ,
I hope you're doing well. When you have a moment, would you mind reviewing this PR?
I'd be incredibly grateful for your expert feedback and insights.
I have resolved all the reviews pointed earlier.
If everything looks satisfactory and meets the project standards, I would be honored if you could proceed with merging it. I truly appreciate your time and guidance on this.

Thank you for your continued support and mentorship.

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.

[Feature]: Automate release process
2 participants