Skip to content

How To Request Backport

Hiroshi SHIBATA edited this page Feb 7, 2024 · 5 revisions

Principle

Backport is a request to branch maintainers to merge trunk's commits. Generally only bugfixes are allowed to backport.

Overview

There are two ways to request a backport at Backport ticket and backport custom field.

Backport ticket

Create a ticket to request backport on https://bugs.ruby-lang.org/projects/ruby-master/issues.

Ticket

Simple backport request

  • Subject: Backport abcde123
  • Description: please backport!

If the commit log is enough descriptive and you expect the maintainer to accept the backport, a request can be simple. If there's a related ticket, you should add it.

Multiple backport

  • Subject: Backport abcde123, deadbeaf, cafebabe
  • Description: please backport!

If some commits are atomic (main commit and fix typo of it), you can request multiple commits.

Nontrivial backport

  • Subject: Backport abcde123
  • Description: The ticket fixes blah blah blah. I'm suffering from the bug. So backport please!

If the commit log is not enough, you need to describe why the backport is required.

Backport custom field

If you are an expert CRuby developer, you can use Backport custom field. The format of the field is \A(?<branch>\d\.\d(\.0)?: (UNKNOWN|REQUIRED|DONE|DONTNEED|WONTFIX))(, \g<branch>)*\z. This is useful when you know a ticket affect a released ruby, and note it on the ticket in machine readable format. Note that Backport custom filed is only available for tickets whose tracks is Bug. (because as described above only bug fixes are backported)

The revisions to backport should be associated with the ticket. If some of them are not, you should associate them on https://bugs.ruby-lang.org/projects/ruby-master/repository/git/revisions/<revision>.

If you fill the field and the ticket is closed, a branch maintainer will backport related commits.

NOTE: Don't assign reopen, move, and assign it to branch maintainer the ticket. They search tickets with a query whose backport field is REQUIRED and whose status is closed.

Clone this wiki locally