Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

doc: improve collaborator guide, doc fast-tracking process #17056

Closed
wants to merge 5 commits into from

Conversation

joyeecheung
Copy link
Member

doc: reorganize collaborator guide

  • Add sections about first time contributions, code reviews
    and seeking consensus, waiting for approvals, testing and CI
  • Move paragraphs to more suitable sections
  • Update table of contents

doc: document the fast-tracking process

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • tests and/or benchmarks are included
  • documentation is changed or added
  • commit message follows commit guidelines
Affected core subsystem(s)

doc

@nodejs-github-bot nodejs-github-bot added the doc Issues and PRs related to the documentations. label Nov 15, 2017
* Add sections about first time contributions, code reviews
  and seeking consensus, waiting for approvals, testing and CI
* Move paragraphs to more suitable sections
* Update table of contents
* Changes that revert commit(s) and/or fix regressions.

When a pull request is deemed suitable to be fast-tracked, label it with
`fast-track`. The pull request can be landed once more than 3 collaborators
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The number 3 here needs more discussion

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm 👍 on fast-tracking everything that fixed a regression

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would go with 2, and be more explicit:
The PR can be landed after 2 or more collaborators (excluding the author) have approved it.

@joyeecheung
Copy link
Member Author

cc @nodejs/tsc @nodejs/collaborators

can be fast-tracked and may be landed after a shorter delay:

* Trivial changes, for example, those fixing minor bugs or improving
performance without affecting API or causing other wide-reaching impact.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm 👎 on considering improving performance as a fast-track issue. In my experience, it's the contrary.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was added in #16135, should we remove that one? cc @addaleax

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, personally I agree with @mcollina , I don't recall seeing a performance optimization PR being fast-tracked before?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This wording was added in c52e43d, a long, long time before my PR.

I’m okay with removing performance optimizations this as well.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe a topic for more general discussion, but at least for me the triviality of the change isn't usually a reason to fast-track. My experience is that no matter how trivial the change, there's always the possibility that someone disagrees or has nits.

For me the reason to fast-track is because it is actually beneficial, e.g.

  • It's a fix we want to land in a release line
  • It's a code-and-learn PR, and we want to give people a good first experience (and maybe even land on the day)
  • It unbreaks CI on master

So for example if it fixes a regression but won't go into a release for a couple of weeks, what's the reason to fast-track? Same for small changes.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gibfahn I agree but these are just some examples, that's why we also need a rule about "n approvals to both the PR and the fast-tracking request". If a PR should not be fast-tracked, people can object to that fast-tracking request without objecting to the PR.

* Changes that revert commit(s) and/or fix regressions.

When a pull request is deemed suitable to be fast-tracked, label it with
`fast-track`. The pull request can be landed once more than 3 collaborators
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm 👍 on fast-tracking everything that fixed a regression


### First Time Contributions

Courtesy should **always** be shown to individuals submitting issues and pull
Copy link
Contributor

@refack refack Nov 15, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I really liked that it was the first sentence in this guide, just after the TOC. So IMHO it should stay there.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm...I think we can just move the section up because this does not seem to be about "Accepting Modifications" anyway.

Copy link
Member Author

@joyeecheung joyeecheung Nov 16, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On a second thought, I don't think this paragraph should appear before explaining that "a collaborator can manage issues and pull request", it looks a bit surprising to start explaining "how you should do something" before even saying "you can do this now"

Purely additive changes (e.g. adding new events to EventEmitter
implementations, adding new arguments to a method in a way that allows
existing code to continue working without modification, or adding new
properties to an options argument) are handled as semver-minor changes.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: remove handled as

given to providing an alternative Public API for that functionality before any
breaking changes are made.
See [Breaking Changes to Internal Elements](#breaking-changes-to-internal-elements)
on how to handle that type of changes.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: that type -> those types (or changes -> change)

can be fast-tracked and may be landed after a shorter delay:

* Trivial changes, for example, those fixing minor bugs or improving
performance without affecting API or causing other wide-reaching impact.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe a topic for more general discussion, but at least for me the triviality of the change isn't usually a reason to fast-track. My experience is that no matter how trivial the change, there's always the possibility that someone disagrees or has nits.

For me the reason to fast-track is because it is actually beneficial, e.g.

  • It's a fix we want to land in a release line
  • It's a code-and-learn PR, and we want to give people a good first experience (and maybe even land on the day)
  • It unbreaks CI on master

So for example if it fixes a regression but won't go into a release for a couple of weeks, what's the reason to fast-track? Same for small changes.

Note that errors thrown, along with behaviors and APIs implemented by
dependencies of Node.js (e.g. those originating from V8) are generally not
under the control of Node.js and therefore *are not directly subject to this
policy*. However, care should still be taken when landing updates to
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They're not subject to the deprecation policy, but they are still tagged semver-major, still need the TSC signoffs, and still don't get backported to any release lines right? Why the move up to this section?

As a side note, it seems odd that this section doesn't mention that you have to put the semver-major label on the PR (I know it wasn't there before). Maybe it's covered somewhere else.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, yes this seem to belong to the "Breaking Changes and Deprecations" section. Thanks for catching that.

@joyeecheung
Copy link
Member Author

joyeecheung commented Nov 16, 2017

@mcollina @addaleax @gibfahn @refack I've moved the paragraphs a bit, deleted the bug-fix and optimization examples, and changed the number of required approvals to 2 (I've taken a look into the recent fast-tracked PRs and I think 2 should be safe enough. We can always revert if someone objects later). PTAL.

* Changes that revert commit(s) and/or fix regressions.

When a pull request is deemed suitable to be fast-tracked, label it with
`fast-track`. The pull request can be landed once more than 2 collaborators
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this should be 2 or more then. LGTM otherwise.

@joyeecheung
Copy link
Member Author

@tniessen Updated to 2 or more collaborators and added a sentence about CI is still required for fast-track PRs (it's pretty obvious, but still should be mentioned )

Copy link
Member

@mhdawson mhdawson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@joyeecheung
Copy link
Member Author

Landed as 0a1fba0, thanks!

joyeecheung added a commit that referenced this pull request Nov 18, 2017
* Add sections about first time contributions, code reviews
  and seeking consensus, waiting for approvals, testing and CI
* Move paragraphs to more suitable sections
* Update table of contents
* Document the fast-tracking process

PR-URL: #17056
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
@joyeecheung joyeecheung added the meta Issues and PRs related to the general management of the project. label Nov 18, 2017
MylesBorins pushed a commit that referenced this pull request Dec 12, 2017
* Add sections about first time contributions, code reviews
  and seeking consensus, waiting for approvals, testing and CI
* Move paragraphs to more suitable sections
* Update table of contents
* Document the fast-tracking process

PR-URL: #17056
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
@MylesBorins MylesBorins mentioned this pull request Dec 12, 2017
MylesBorins pushed a commit that referenced this pull request Dec 19, 2017
* Add sections about first time contributions, code reviews
  and seeking consensus, waiting for approvals, testing and CI
* Move paragraphs to more suitable sections
* Update table of contents
* Document the fast-tracking process

PR-URL: #17056
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
gibfahn pushed a commit that referenced this pull request Dec 19, 2017
* Add sections about first time contributions, code reviews
  and seeking consensus, waiting for approvals, testing and CI
* Move paragraphs to more suitable sections
* Update table of contents
* Document the fast-tracking process

PR-URL: #17056
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
@gibfahn gibfahn mentioned this pull request Dec 20, 2017
gibfahn pushed a commit that referenced this pull request Dec 20, 2017
* Add sections about first time contributions, code reviews
  and seeking consensus, waiting for approvals, testing and CI
* Move paragraphs to more suitable sections
* Update table of contents
* Document the fast-tracking process

PR-URL: #17056
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
@gibfahn gibfahn mentioned this pull request Dec 20, 2017
@MylesBorins MylesBorins mentioned this pull request Dec 20, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
doc Issues and PRs related to the documentations. meta Issues and PRs related to the general management of the project.
Projects
None yet
Development

Successfully merging this pull request may close these issues.