Uploaded March 2026 | Updated September 2026, 3 weeks ago
In our previous video, we did the bulk of our annual maintenance for our gem and released patch version 0.5.3. There were still some outstanding changes that were left undone, because they required a bump of the minor version for the gem.
In particular, there are two Ruby versions beyond the gem's current minimum Ruby version that are end-of-life (3.0 and 3.1), and one that will be end-of-life less than a month after the video is recorded (3.2). Increasing the minimum Ruby version for a gem is a breaking change, and would require a new major version if a version 1 or greater of the gem existed. Since there isn't a version 1 released, the breaking change can be handled by a bump to the minor version of the gem. We release version 0.6.0 in this video.
Dropping those older versions of Ruby, also lets us increase the minimum version of SecureRandom and target Ruby version in our RuboCop configuration file. In particular, this allows us to use anonymous arguments for keyword arguments ("**" instead of "**options") and blocks ("&" instead of "&block"). Once we increase the target Ruby version, these become auto-correctable violations.
We also update the SECURITY.md file to indicate the new minor version and deprecation of version 0.5.x of the gem and then add our changes for 0.5.3 and 0.6.0 to the CHANGELOG.md file.
We also need to generate and commit the checksums for the newly released versions, which Mike initially forgets to do.
This video covers:
0:00:00 Introduction, review of remaining work on the GitHub issue
0:03:35 Switch back to the maintenance branch and drop unsupported Ruby versions from GitHub Actions workflow
0:04:23 Update target Ruby version in .rubocop.yml, minimum Ruby version in the gemspec, bump SecureRandom, and autocorrect new RuboCop violations
0:06:20 Review and commit changes thus far
0:08:42 Check out new stable branch for 0.6.x and get the Princess is in Another Castle versions of CHANGELOG, SECURITY, and CONTRIBUTING onto the branch
0:11:10 Build and publish version 0.6.0 of the gem
0:12:51 Tag and publish the release on GitHub, bump patch version on version-0-6-x-stable branch
0:14:21 Switch back to the maintenance branch to update the SECURITY and CHANGELOG files
0:18:00 Start the pull request process and realize that I didn't generate checksums. Remedy that.
0:20:33 Complete the pull request and finish up
#ruby #rubygems #codecast #screencast #NerdDice #DnD #roleplaying #softwaredevelopment #github #opensource #dice #release #tlm #rubocop #bundler #dependencies #ruby4 #deprecation #endoflife #eol
Featured Playlist:
- youtube.com/playlist?list=PL9kkbu1kLUeOnUtMpAnJOCtHdThx1Efkt
See other related StatelessCode videos:
- youtu.be/tT0-eR8_0c4
- youtu.be/uHd_QqlEZXw
- youtu.be/6NdoYZphoJ4
- youtu.be/Ui2CIJ9OwWU
Resources that we relied upon for this solution:
- Ruby Gem Maintenance Procedures GitHub Gist by Mike gist.github.com/msducheminjr/950ad67b64b9bbebe8fac435e0f86601#top
- Ruby language version maintenance and end-of-life schedule ruby-lang.org/en/downloads/branches
- RubyGems rubygems.org
- GitHub issue for this video: github.com/statelesscode/nerd_dice/issues/61
- Pull request: github.com/statelesscode/nerd_dice/pull/62
GitHub Commits for this Video:
Master Branch
- github.com/statelesscode/nerd_dice/tree/cf1841b
- github.com/statelesscode/nerd_dice/tree/fbe5e07
Stable Branch (0.6.x)
- github.com/statelesscode/nerd_dice/tree/ffd5c6c
- github.com/statelesscode/nerd_dice/tree/60669fe
This video is CC0 - No rights reserved. (YouTube doesn't allow this option when publishing.) All code is released under the UNLICENSE. Stateless Code denies the concept of "intellectual property". Copying is not stealing.
In our previous video, we did the bulk of our annual maintenance for our gem and released patch version 0.5.3. There were still some outstanding changes that were left undone, because they required a bump of the minor version for the gem.
In particular, there are two Ruby versions beyond the gem's current minimum Ruby version that are end-of-life (3.0 and 3.1), and one that will be end-of-life less than a month after the video is recorded (3.2). Increasing the minimum Ruby version for a gem is a breaking change, and would require a new major version if a version 1 or greater of the gem existed. Since there isn't a version 1 released, the breaking change can be handled by a bump to the minor version of the gem. We release version 0.6.0 in this video.
Dropping those older versions of Ruby, also lets us increase the minimum version of SecureRandom and target Ruby version in our RuboCop configuration file. In particular, this allows us to use anonymous arguments for keyword arguments ("**" instead of "**options") and blocks ("&" instead of "&block"). Once we increase the target Ruby version, these become auto-correctable violations.
We also update the SECURITY.md file to indicate the new minor version and deprecation of version 0.5.x of the gem and then add our changes for 0.5.3 and 0.6.0 to the CHANGELOG.md file.
We also need to generate and commit the checksums for the newly released versions, which Mike initially forgets to do.
This video covers:
0:00:00 Introduction, review of remaining work on the GitHub issue
0:03:35 Switch back to the maintenance branch and drop unsupported Ruby versions from GitHub Actions workflow
0:04:23 Update target Ruby version in .rubocop.yml, minimum Ruby version in the gemspec, bump SecureRandom, and autocorrect new RuboCop violations
0:06:20 Review and commit changes thus far
0:08:42 Check out new stable branch for 0.6.x and get the Princess is in Another Castle versions of CHANGELOG, SECURITY, and CONTRIBUTING onto the branch
0:11:10 Build and publish version 0.6.0 of the gem
0:12:51 Tag and publish the release on GitHub, bump patch version on version-0-6-x-stable branch
0:14:21 Switch back to the maintenance branch to update the SECURITY and CHANGELOG files
0:18:00 Start the pull request process and realize that I didn't generate checksums. Remedy that.
0:20:33 Complete the pull request and finish up
#ruby #rubygems #codecast #screencast #NerdDice #DnD #roleplaying #softwaredevelopment #github #opensource #dice #release #tlm #rubocop #bundler #dependencies #ruby4 #deprecation #endoflife #eol
Featured Playlist:
- youtube.com/playlist?list=PL9kkbu1kLUeOnUtMpAnJOCtHdThx1Efkt
See other related StatelessCode videos:
- youtu.be/tT0-eR8_0c4
- youtu.be/uHd_QqlEZXw
- youtu.be/6NdoYZphoJ4
- youtu.be/Ui2CIJ9OwWU
Resources that we relied upon for this solution:
- Ruby Gem Maintenance Procedures GitHub Gist by Mike gist.github.com/msducheminjr/950ad67b64b9bbebe8fac435e0f86601#top
- Ruby language version maintenance and end-of-life schedule ruby-lang.org/en/downloads/branches
- RubyGems rubygems.org
- GitHub issue for this video: github.com/statelesscode/nerd_dice/issues/61
- Pull request: github.com/statelesscode/nerd_dice/pull/62
GitHub Commits for this Video:
Master Branch
- github.com/statelesscode/nerd_dice/tree/cf1841b
- github.com/statelesscode/nerd_dice/tree/fbe5e07
Stable Branch (0.6.x)
- github.com/statelesscode/nerd_dice/tree/ffd5c6c
- github.com/statelesscode/nerd_dice/tree/60669fe
This video is CC0 - No rights reserved. (YouTube doesn't allow this option when publishing.) All code is released under the UNLICENSE. Stateless Code denies the concept of "intellectual property". Copying is not stealing.










