Skip to content

Commit bbcbe6e

Browse files
committedAug 15, 2015
Convert Releasing Rails guide to Markdown
1 parent a293812 commit bbcbe6e

File tree

1 file changed

+47
-37
lines changed

1 file changed

+47
-37
lines changed
 

‎RELEASING_RAILS.rdoc ‎RELEASING_RAILS.md

+47-37
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,47 @@
1-
= Releasing Rails
1+
# Releasing Rails
22

33
In this document, we'll cover the steps necessary to release Rails. Each
44
section contains steps to take during that time before the release. The times
55
suggested in each header are just that: suggestions. However, they should
66
really be considered as minimums.
77

8-
== 10 Days before release
8+
## 10 Days before release
99

1010
Today is mostly coordination tasks. Here are the things you must do today:
1111

12-
=== Is the CI green? If not, make it green. (See "Fixing the CI")
12+
### Is the CI green? If not, make it green. (See "Fixing the CI")
1313

1414
Do not release with a Red CI. You can find the CI status here:
1515

16-
http://travis-ci.org/rails/rails
16+
```
17+
http://travis-ci.org/rails/rails
18+
```
1719

18-
=== Is Sam Ruby happy? If not, make him happy.
20+
### Is Sam Ruby happy? If not, make him happy.
1921

2022
Sam Ruby keeps a test suite that makes sure the code samples in his book (Agile
2123
Web Development with Rails) all work. These are valuable integration tests
2224
for Rails. You can check the status of his tests here:
2325

24-
http://intertwingly.net/projects/dashboard.html
26+
```
27+
http://intertwingly.net/projects/dashboard.html
28+
```
2529

2630
Do not release with Red AWDwR tests.
2731

28-
=== Do we have any Git dependencies? If so, contact those authors.
32+
### Do we have any Git dependencies? If so, contact those authors.
2933

3034
Having Git dependencies indicates that we depend on unreleased code.
3135
Obviously Rails cannot be released when it depends on unreleased code.
3236
Contact the authors of those particular gems and work out a release date that
3337
suits them.
3438

35-
=== Contact the security team (either Koz or tenderlove)
39+
### Contact the security team (either Koz or tenderlove)
3640

3741
Let them know of your plans to release. There may be security issues to be
3842
addressed, and that can impact your release date.
3943

40-
=== Notify implementors.
44+
### Notify implementors.
4145

4246
Ruby implementors have high stakes in making sure Rails works. Be kind and
4347
give them a heads up that Rails will be released soonish.
@@ -54,51 +58,55 @@ lists:
5458

5559
Implementors will love you and help you.
5660

57-
== 3 Days before release
61+
### 3 Days before release
5862

5963
This is when you should release the release candidate. Here are your tasks
6064
for today:
6165

62-
=== Is the CI green? If not, make it green.
66+
### Is the CI green? If not, make it green.
6367

64-
=== Is Sam Ruby happy? If not, make him happy.
68+
### Is Sam Ruby happy? If not, make him happy.
6569

66-
=== Contact the security team. CVE emails must be sent on this day.
70+
### Contact the security team. CVE emails must be sent on this day.
6771

68-
=== Create a release branch.
72+
### Create a release branch.
6973

7074
From the stable branch, create a release branch. For example, if you're
7175
releasing Rails 3.0.10, do this:
7276

73-
[aaron@higgins rails (3-0-stable)]$ git checkout -b 3-0-10
74-
Switched to a new branch '3-0-10'
75-
[aaron@higgins rails (3-0-10)]$
77+
```
78+
[aaron@higgins rails (3-0-stable)]$ git checkout -b 3-0-10
79+
Switched to a new branch '3-0-10'
80+
[aaron@higgins rails (3-0-10)]$
81+
```
7682

77-
=== Update each CHANGELOG.
83+
### Update each CHANGELOG.
7884

7985
Many times commits are made without the CHANGELOG being updated. You should
8086
review the commits since the last release, and fill in any missing information
8187
for each CHANGELOG.
8288

8389
You can review the commits for the 3.0.10 release like this:
8490

85-
[aaron@higgins rails (3-0-10)]$ git log v3.0.9..
91+
```
92+
[aaron@higgins rails (3-0-10)]$ git log v3.0.9..
93+
```
8694

8795
If you're doing a stable branch release, you should also ensure that all of
8896
the CHANGELOG entries in the stable branch are also synced to the master
8997
branch.
9098

91-
=== Update the RAILS_VERSION file to include the RC.
99+
### Update the RAILS_VERSION file to include the RC.
92100

93-
=== Build and test the gem.
101+
### Build and test the gem.
94102

95103
Run `rake install` to generate the gems and install them locally. Then try
96104
generating a new app and ensure that nothing explodes.
97105

98106
This will stop you from looking silly when you push an RC to rubygems.org and
99107
then realize it is broken.
100108

101-
=== Release the gem.
109+
### Release the gem.
102110

103111
IMPORTANT: Due to YAML parse problems on the rubygems.org server, it is safest
104112
to use Ruby 1.8 when releasing.
@@ -108,14 +116,16 @@ RAILS_VERSION, commit the changes, tag it, and push the gems to rubygems.org.
108116
Here are the commands that `rake release` should use, so you can understand
109117
what to do in case anything goes wrong:
110118

111-
$ rake all:build
112-
$ git commit -am'updating RAILS_VERSION'
113-
$ git tag -m 'v3.0.10.rc1 release' v3.0.10.rc1
114-
$ git push
115-
$ git push --tags
116-
$ for i in $(ls pkg); do gem push $i; done
119+
```
120+
$ rake all:build
121+
$ git commit -am'updating RAILS_VERSION'
122+
$ git tag -m 'v3.0.10.rc1 release' v3.0.10.rc1
123+
$ git push
124+
$ git push --tags
125+
$ for i in $(ls pkg); do gem push $i; done
126+
```
117127

118-
=== Send Rails release announcements
128+
### Send Rails release announcements
119129

120130
Write a release announcement that includes the version, changes, and links to
121131
GitHub where people can find the specific commit list. Here are the mailing
@@ -132,16 +142,16 @@ IMPORTANT: If any users experience regressions when using the release
132142
candidate, you *must* postpone the release. Bugfix releases *should not*
133143
break existing applications.
134144

135-
=== Post the announcement to the Rails blog.
145+
### Post the announcement to the Rails blog.
136146

137147
If you used Markdown format for your email, you can just paste it in to the
138148
blog.
139149

140150
* http://weblog.rubyonrails.org
141151

142-
=== Post the announcement to the Rails Twitter account.
152+
### Post the announcement to the Rails Twitter account.
143153

144-
== Time between release candidate and actual release
154+
## Time between release candidate and actual release
145155

146156
Check the rails-core mailing list and the GitHub issue list for regressions in
147157
the RC.
@@ -155,7 +165,7 @@ When you fix the regressions, do not create a new branch. Fix them on the
155165
stable branch, then cherry pick the commit to your release branch. No other
156166
commits should be added to the release branch besides regression fixing commits.
157167

158-
== Day of release
168+
## Day of release
159169

160170
Many of these steps are the same as for the release candidate, so if you need
161171
more explanation on a particular step, see the RC steps.
@@ -173,7 +183,7 @@ Today, do this stuff in this order:
173183
* Email security lists
174184
* Email general announcement lists
175185

176-
=== Emailing the Rails security announce list
186+
### Emailing the Rails security announce list
177187

178188
Email the security announce list once for each vulnerability fixed.
179189

@@ -193,13 +203,13 @@ so we need to give them the security fixes in patch form.
193203
* Merge the release branch to the stable branch.
194204
* Drink beer (or other cocktail)
195205

196-
== Misc
206+
## Misc
197207

198-
=== Fixing the CI
208+
### Fixing the CI
199209

200210
There are two simple steps for fixing the CI:
201211

202212
1. Identify the problem
203213
2. Fix it
204214

205-
Repeat these steps until the CI is green.
215+
Repeat these steps until the CI is green.

0 commit comments

Comments
 (0)