@@ -46,6 +46,10 @@ branch.
46
46
47
47
## Day of release
48
48
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
+
49
53
### Put the new version in the RAILS_VERSION file.
50
54
51
55
Include an RC number if appropriate, e.g. ` 6.0.0.rc1 ` .
@@ -59,6 +63,21 @@ browser.
59
63
This will stop you from looking silly when you push an RC to rubygems.org and
60
64
then realize it is broken.
61
65
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
+
62
81
### Release to RubyGems and npm.
63
82
64
83
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
79
98
the current RAILS_VERSION, commit the changes, tag it, and push the gems to
80
99
rubygems.org.
81
100
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
+
82
112
### Send Rails release announcements
83
113
84
114
Write a release announcement that includes the version, changes, and links to
@@ -105,10 +135,29 @@ break existing applications.
105
135
106
136
### Post the announcement to the Rails blog.
107
137
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).
110
158
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.
112
161
113
162
### Post the announcement to the Rails Twitter account.
114
163
0 commit comments