About Rails' release process: how are milestones defined?

Hi,

After reading Contributing to Ruby on Rails — Ruby on Rails Guides, https://weblog.rubyonrails.org/releases/, and doing some searches on that topic, I’m still not sure if (and then how) I can submit an accepted pull request for inclusion into a milestone listed here https://github.com/rails/rails/milestones.

For example, I would like to submit https://github.com/rails/rails/pull/37892 for inclusion into the next applicable release (6.1.0 ?). I hesitated between posting directly on the PR, here or even asking the rubyonrails-docs forum how to proceed, and here I am :slight_smile:.

So, how are milestones defined, and how may we (as mere users of the framework) contribute to their definition ?

Thanks for your time.

New features are only added to the next minor release. So you can’t request a merged PR to be included in a release. As soon it is merged, it is already included in the release. That specific PR is already on Rails 6.1.0 and released on 6.1.0.rc1.

Bugs fixes are backported to the currenct bug fix release. Today it is the Rails 6.0. You can request a backport in case the committer forgot to do it. This process is explained here Contributing to Ruby on Rails — Ruby on Rails Guides.

1 Like

I see, thank you for the explanation !

One thing though, you said:

New features are only added to the next minor release. […] As soon [the PR] is merged, it is already included in the release.

But Contributing to Ruby on Rails — Ruby on Rails Guides says:

Changes that are merged into master are intended for the next major release of Rails.

If I understand correctly, the docs are therefore incorrect about the major/minor release process. It’s not much, but should I bring up that point on rubyonrails-docs forum ?

About Bring back feature that allows loading external route files: by Edouard-chin · Pull Request #37892 · rails/rails · GitHub, I was a bit confused not to see the PR listed in the open/closed PRs pinned for the 6.1.0 milestone (6.1.0 Milestone · GitHub), and I incorrectly guessed that some features were specifically “cherry-picked” for specific releases. After your response I had a look at the actual Git history, it made sense and I suppose the PR only lacks the informational milestone tag, which is probably no big deal.

You can just open a PR fixing the documentation. The correct text would be: Changes that are merged into master are intended for the next minor/major release of Rails.

The milestone is just used for internal organization of PRs/issues that needs to be merged/fixed before the release. Not all the features in a specific release will be added to the milestone.

I will follow your suggestion about the documentation, thanks again.