Skip to content
Takashi Kokubun edited this page May 27, 2024 · 6 revisions

How To Backport

This document is written for branch maintainers. If you are not a branch maintainer, you should not commit directly. Write a backport ticket (and optionally prepare a GitHub PR) instead of committing.

  • checkout the branch
  • make sure the ticket is on the backport project. (if not, the ticket won't be closed automatically)
  • use tool/merger.rb.
    • tool/merger.rb deadbeaf (merge Git revision deadbeaf)
    • tool/merger.rb deadbeaf,aaaaaaaa (merge deadbeaf and bbbbbbbb)
    • tool/merger.rb --ticket=7654 deadbeaf (merge deadbeaf and include commit log the reference to Backport ticket #7654. Note that --ticket option and its argument must be delimited by '=')

Backport Field

  • An advanced field for branch maintainers.
  • The use of backport field is still under development. The meaning and related operations of them may change without notice. People shouldn't touch this field unless they really understand the current operation.
  • The comma-separated list of version and status which matches /\A(?<branch>\d\.\d(\.0)?: (UNKNOWN|REQUIRED|DONE|DONTNEED|WONTFIX))(, \g<branch>)*\z/
  • (Administrators can check the regexp at https://bugs.ruby-lang.org/custom_fields/5/edit)

Statuses

  • UNKNOWN: Whether it should be backported or not is UNKNOWN. The ticket will be checked and changed by the branch maintainer in the future.
  • REQUIRED: commits related the ticket should be backported. (though the branch maintainer may reject the backport)
  • DONE: already backported to the branch.
  • DONTNEED: the branch doesn't affect the issue.
  • WONTFIX: the branch affects the issue, but the branch maintainer won't backport this (because of compatibility or some reason).
  • blank: no information, no one won't check the issue. People won't specify blank unless they really understand the meaning of backport field.
Clone this wiki locally