Skip to content

Conversation

@brettmc
Copy link
Contributor

@brettmc brettmc commented Sep 24, 2025

edit: this PR also fixes a bunch of broken CI

This pull request introduces a new command for listing the latest release versions of all packages and refactors the release command structure to improve code reuse and maintainability. The most notable changes include the addition of the ReleaseListCommand, extraction of shared repository-fetching logic into the abstract base class, and enhancements to user interaction and progress feedback during release operations.

New Features

  • Added ReleaseListCommand (release:list) to display the latest version of each package, with options to filter by stable/unstable releases.

Refactoring and Code Reuse

  • Moved repository discovery logic (find_repositories and get_gitsplit_repositories) from ReleaseCommand to AbstractReleaseCommand for reuse in multiple commands.
  • Centralized GitHub token handling in AbstractReleaseCommand::interact, removing duplicate logic from child commands.

User Experience Improvements

  • Added progress bars and output sectioning to ReleaseCommand and ReleaseListCommand for clearer feedback during long-running operations.
  • Improved messaging when commit differences are detected during release, prompting the user for confirmation before proceeding.

Cleanup and Minor Fixes

  • Removed unnecessary properties and streamlined option handling in PeclCommand.
  • Removed redundant repository and parser properties from ReleaseCommand now handled by the base class.

These changes collectively make the release workflow more modular, user-friendly, and maintainable.

@bobstrecansky bobstrecansky merged commit 803dea8 into opentelemetry-php:main Sep 24, 2025
4 checks passed
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.

2 participants