Skip to content

Procedure for rolling out node-accept-pull-request #2434

@orangemocha

Description

@orangemocha

nodejs/node is finally in place and we are almost ready to move v0.x branches from joyent/node to it. However we still using two different workflows for landing pull requests, with node-accept-pull-request for v0.x and with a more manual procedure for everything else.

I have been working on getting node-accept-pull-request available for all branches, and it will be ready for broader consumption within the next week or so. Ideally, I'd like to roll it out on a trial basis, letting collaborators try it with some flexibility for using the old procedure. However, because of the way that it is designed, it kind of requires everybody to follow the same procedure. Here's why:

  1. It rebases the PR onto the target branch (adding PR-URL and Reviewed-By to all the commits)
  2. It builds and test the changes (like node-test-pull-request)
  3. If all non-flaky tests pass, it does a fast-forward merge and pushes the updated branch to GitHub.

So if someone were to push manually to the same branch while a run is in progress between steps (1) and (3), the branch update at (3) would fail. This is somewhat desirable, because we want it to test the result of the rebase, and push exactly what it has tested.

Given the above, I think the best way for trying it out would be for all collaborators to start adopting it at the same time. Of course, if after some time we are all miserable because of it, we can revisit the process and even go back to the manual procedure. Before the roll-out, I will write a wiki page to document how to use it. There is also a procedure for landing other people's changes, to address a concern raised by @trevnorris.

I just wanted to give the TSC a heads up and a chance to discuss this plan. Adding to tsc-agenda.

@nodejs/tsc

Metadata

Metadata

Assignees

No one assigned

    Labels

    metaIssues and PRs related to the general management of the project.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions