chore: Upgrade release system to the toys-release gem #2006
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a long-awaited upgrade to the release system. It was rewritten pretty much from the ground up to be more testable and maintainable. That said, the OTel-Ruby repos exercise the system more than any other customer, so I'll be around to monitor the next releases closely to ensure things go smoothly.
Some key changes:
.toys/release.rb)..toys/.data/releases.yml) and the tool invocations in the GitHub Actions workflows accordingly.Some of the config has also been updated to work with the toys-release gem. Specifically:
main_branchkey defaults tomain, somain_branch: mainis redundant and was removed.docs_builder_toolkey was dropped. Toys-release now just usesyard docdirectly to build docs (and indeed, we don't use any of it here but the build pipeline is now a lot more modular and customizable). That said, this repo is currently not configured to build and publish documentation during releases, so that key wasn't really used anyway. I think we disabled it because we had trouble with it a few years ago. I can try to set it up again if we want, as a second step after doing this initial migration.commit_lintkey was dropped. The commit linter in general was removed from toys-release, as it was not really maintained and no one was using it. And it has been disabled in our repos anyway. There are better dedicated conventional commit linter tools available if we want to use one.opentelemetry-exporter-otlpgem configuration. That bug has been fixed, and the hack is no longer necessary.version_rb_pathsettings for gems whose configurations did not need it.There is quite a bit of new functionality and fixed issues in toys-release, that we might choose to take advantage of (again, as a second step after this initial migration). For example:
Finally, I (@dazuma) expect to be able to engage a lot more now on OTel-Ruby. I quit my job at Google a few months ago, in part because it was stifling me and I was not able to make space for open source and community work. Now that I'm out, I've had a chance to, among other things, finish this long-overdue update to the release system. I also should be able to attend the weekly SIGs more often now. So anyone working on this repo, if you have questions, issues, or feature requests regarding the release system and process, please let me know.
I'm keeping this PR in draft until I've had the chance to discuss this update with the other maintainers, and to do some more testing.
Note there is a corresponding pull request in the opentelemetry-ruby-contrib repository: open-telemetry/opentelemetry-ruby-contrib#1923.