-
Notifications
You must be signed in to change notification settings - Fork 533
Automate Releases with release-please-action #791
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
Comments
@mpapis since I have your ear today, I was wondering if I could get your feedback on this proposal at your convenience. |
It's definitively really good direction, automate everything :) I was actually reading your flow recently and had went a bit different route:
I think both approaches are very similar, with different strains on maintainers and one time developers. In my experience enforcing rules on rare contributors might discourage contribution, so in my flow the strain of properly marking the impact on release is moved to maintainer with PR labels - of course convenience of auto-labeling from branch prefixes is useful, but not required on one-time developers to adhere to complex rules and understanding the overall impact. I plan to extract my workflow to actions for others to make use of it too: mpapis/uncov#55 |
I share your concern about strains on rare contributors. Despite that, I went ahead and implemented this. I plan on putting a paragraph or two toward the top of the README announcing this and setting expectations. We will see how it goes. I'll keep an eye on your workflow actions. |
I updated the README with an announcement banner front and center. The Commit Message Guidelines in the CONTRIBUTING doc has the details. |
Looks nice :) |
Uh oh!
There was an error while loading. Please reload this page.
Enforce Conventional Commits, Add Automatic Changelog Generation, and Implement a CD Workflow
Currently,
ruby-git
utilizes thecreate-github-release
script for new releases. This is documented in the RELEASING.md document. This approach has several drawbacks:create-github-release
script defines a release, incorporating additional PRs into that release is a manual and error-prone process.To address these issues and streamline the release process, I propose integrating the
googleapis/release-please-action
. This would enable automated Continuous Delivery releases with the following benefits:master
branch. This PR will update the changelog and version number appropriately, based on the commits since the last release.master
will be automatically added to the existing release PR. The version bump will be adjusted dynamically based on Conventional Commit messages.master
, the version will be officially bumped, and a new version of the gem will be built and published to rubygems.org.For this automation to function correctly, all commits moving forward must adhere to the Conventional Commits format. To enforce this, I propose adding a GitHub Actions workflow that validates commit messages. PRs with improperly formatted commit messages will fail checks, blocking them from being merged.
Additionally, I suggest integrating an optional pre-commit hook. Developers can install this hook locally to automatically check and reject commits that do not conform to the required format before they are pushed.
I have written in more detail about integrating
release-please-action
in a Substack article: Continuous Delivery for Ruby Gems.An example of this integrated system can be seen in the
process_executer
gem. Specifically, note the automatically generated CHANGELOG.md and an example release PR.The text was updated successfully, but these errors were encountered: