Skip to content

github labelling to more clearly indicate state of PRs wrt. backporting #183

Closed
@sam-github

Description

@sam-github

This is relevant to both LTS (backporting to what is 6.x and 4.x at this moment) as well as the maintenance of Current (which is 7.x at this moment).

I think it would be useful to have a backport-to-v#.# label with the meaning that this PRs content is wanted on v#.#, but needs backport because it does not land clean.

In general, I would like for the intentions wrt. backporting and landing of any PR to be possible to know from the github labels. This will help people looking at a PR in github to understand what is going to happen to it. It should also help with tool automation, because the tools can rely on the labels more and less on discretion of the person doing the release. And it would make communication more clear. Perhaps we could even write a tool that given a PR number, would predict the releases it will be in, so people know when to expect their features to appear in LTS, or if they will never appear because they were rejected as not stable enough.

The state of any PR wrt. to the next branch back (for master, next back is 7.x at the moment, for 7.x, the next back is 6.x, etc.) could be described by a set of labels like:

  • dont-land: this PR will not be landed (if it won't be landed because it can't, but its wanted, then it should also have a backport-to label, but if its just not wanted, this label is enough to remove from it from the branch diff)
  • backport-to: this PR does not land, but should be backported
  • lts-watch: indicates that someone is requesting the LTS team to consider this PR for landing on a LTS veresion. Note: LTS team will consider, but there isn't a label indicating the result of their consideration, and the label isn't required for a PR to be landed, LTS will proactively pick PRs that are appropriate. I think the current state is a bit vague.
  • land-on: for master, anything that is not semver-major or dont-land should land on current, so this is not needed. For LTS, I don't think this label is (currently) required for a PR to land on a LTS version, but I think it should be applied to all PRs that did land or will land, so that its clear what their destiny is.

Backport PRs themselves can use exactly the labels above, same meaning.

If the github bot starts doing labelling again, I think what would be useful is something like auto-land-failed-v#.# (or something of the like). That way, when a PR lands on master, people can see the labels, and if it doesn't land on Current, or on any LTS, and the author thinks it should, they can start to prepare backports right away.

I think this would make preparing the 7.x much easier. Also, if the github bot isn't correctly realizing that PRs land (perhaps because they don't cherrypick standalone, but do land when the preceeding commits all land), then maybe branch-diff needs to learn to set labels like dont-land on PRs, so their authors get a notification and can choose to backport.

cf. nodejs/node#11051 (comment)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions