Add more instructions to RELEASING_RAILS

This commit is contained in:
John Hawthorn 2022-09-09 13:34:27 -07:00
parent c4416b562a
commit 500d6319ff
1 changed files with 52 additions and 3 deletions

View File

@ -46,6 +46,10 @@ branch.
## Day of release
If making multiple releases. Publish them in order from oldest to newest, to
ensure that the "greatest" version also shows up in NPM and GitHub Releases as
"latest".
### Put the new version in the RAILS_VERSION file.
Include an RC number if appropriate, e.g. `6.0.0.rc1`.
@ -59,6 +63,21 @@ browser.
This will stop you from looking silly when you push an RC to rubygems.org and
then realize it is broken.
### Check credentials for RubyGems, npm, and GitHub
For npm run `npm whoami` to check that you are logged in (`npm login` if not).
For RubyGems run `gem login`. If there's no output you are logged in.
For GitHub run `gh auth status` to check that you are logged in (run `gh login` if not).
npm and RubyGems require MFA. The release task will attempt to use a yubikey if
available, which as we have release several packages at once is strongly
recommended. Check that `ykman oath accounts list` has an entry for both
`npmjs.com` and `rubygems.org`, if not refer to
https://tenderlovemaking.com/2021/10/26/publishing-gems-with-your-yubikey.html
for setup instructions.
### Release to RubyGems and npm.
IMPORTANT: Several gems have JavaScript components that are released as npm
@ -79,6 +98,17 @@ Run `rake release`. This will populate the gemspecs and npm package.json with
the current RAILS_VERSION, commit the changes, tag it, and push the gems to
rubygems.org.
### Make GitHub Releases from pushed tags
We use GitHub Releases to publish the combined release summary for all gems. We
can use a rake task and [GitHub cli](https://cli.github.com/) to do this
(releases can also be created or edited on the web).
```
bundle exec rake changelog:release_summary > ../6-1-7-release-summary.md
gh release create v6.1.7 -R rails/rails -F ../6-1-7-release-summary.md
```
### Send Rails release announcements
Write a release announcement that includes the version, changes, and links to
@ -105,10 +135,29 @@ break existing applications.
### Post the announcement to the Rails blog.
If you used Markdown format for your email, you can just paste it into the
blog.
The blog at https://rubyonrails.org/blog is built from
https://github.com/rails/website.
* https://rubyonrails.org/blog
Create a file named like
`_posts/$(date +'%F')-Rails-<versions>-have-been-released.markdown`
Add YAML frontmatter
```
---
layout: post
title: 'Rails <VERSIONS> have been released!'
categories: releases
author: <your handle>
published: true
date: <YYYY-MM-DD or `date +%F`>
---
```
Use the markdown generated by `rake announce` earlier as a base for the post.
Add some context for users as to the purpose of this release (bugfix/security).
If this is a part of the latest release series, update `_data/version.yml` so
that the homepage points to the latest version.
### Post the announcement to the Rails Twitter account.