Skip to content

Commit 500d631

Browse files
committed
Add more instructions to RELEASING_RAILS
1 parent c4416b5 commit 500d631

File tree

1 file changed

+52
-3
lines changed

1 file changed

+52
-3
lines changed

RELEASING_RAILS.md

+52-3
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ branch.
4646

4747
## Day of release
4848

49+
If making multiple releases. Publish them in order from oldest to newest, to
50+
ensure that the "greatest" version also shows up in NPM and GitHub Releases as
51+
"latest".
52+
4953
### Put the new version in the RAILS_VERSION file.
5054

5155
Include an RC number if appropriate, e.g. `6.0.0.rc1`.
@@ -59,6 +63,21 @@ browser.
5963
This will stop you from looking silly when you push an RC to rubygems.org and
6064
then realize it is broken.
6165

66+
### Check credentials for RubyGems, npm, and GitHub
67+
68+
For npm run `npm whoami` to check that you are logged in (`npm login` if not).
69+
70+
For RubyGems run `gem login`. If there's no output you are logged in.
71+
72+
For GitHub run `gh auth status` to check that you are logged in (run `gh login` if not).
73+
74+
npm and RubyGems require MFA. The release task will attempt to use a yubikey if
75+
available, which as we have release several packages at once is strongly
76+
recommended. Check that `ykman oath accounts list` has an entry for both
77+
`npmjs.com` and `rubygems.org`, if not refer to
78+
https://tenderlovemaking.com/2021/10/26/publishing-gems-with-your-yubikey.html
79+
for setup instructions.
80+
6281
### Release to RubyGems and npm.
6382

6483
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
7998
the current RAILS_VERSION, commit the changes, tag it, and push the gems to
8099
rubygems.org.
81100

101+
### Make GitHub Releases from pushed tags
102+
103+
We use GitHub Releases to publish the combined release summary for all gems. We
104+
can use a rake task and [GitHub cli](https://cli.github.com/) to do this
105+
(releases can also be created or edited on the web).
106+
107+
```
108+
bundle exec rake changelog:release_summary > ../6-1-7-release-summary.md
109+
gh release create v6.1.7 -R rails/rails -F ../6-1-7-release-summary.md
110+
```
111+
82112
### Send Rails release announcements
83113

84114
Write a release announcement that includes the version, changes, and links to
@@ -105,10 +135,29 @@ break existing applications.
105135

106136
### Post the announcement to the Rails blog.
107137

108-
If you used Markdown format for your email, you can just paste it into the
109-
blog.
138+
The blog at https://rubyonrails.org/blog is built from
139+
https://github.com/rails/website.
140+
141+
Create a file named like
142+
`_posts/$(date +'%F')-Rails-<versions>-have-been-released.markdown`
143+
144+
Add YAML frontmatter
145+
```
146+
---
147+
layout: post
148+
title: 'Rails <VERSIONS> have been released!'
149+
categories: releases
150+
author: <your handle>
151+
published: true
152+
date: <YYYY-MM-DD or `date +%F`>
153+
---
154+
```
155+
156+
Use the markdown generated by `rake announce` earlier as a base for the post.
157+
Add some context for users as to the purpose of this release (bugfix/security).
110158

111-
* https://rubyonrails.org/blog
159+
If this is a part of the latest release series, update `_data/version.yml` so
160+
that the homepage points to the latest version.
112161

113162
### Post the announcement to the Rails Twitter account.
114163

0 commit comments

Comments
 (0)