Skip to content

Instantly share code, notes, and snippets.

@misterdjules
Last active August 29, 2015 14:22
Show Gist options
  • Save misterdjules/2d13ff4db3f9157dd7aa to your computer and use it in GitHub Desktop.
Save misterdjules/2d13ff4db3f9157dd7aa to your computer and use it in GitHub Desktop.
Onboarding collaborators to joyent/node

Onboarding collaborators to joyent/node

  1. Thank you for doing this!
  2. Going to cover three things:
    1. Setup.
    2. Issues, labels, and reviewing code.
    3. Merging code.
    4. Communication

Setup

Workflow

Make sure to read https://nodejs.org/contribute/code_contributions/workflow.html. Most importantly, make sure you familiarize yourself with our usage of milestones and priority labels.

If you have any question, please let me know!

Issues

You have free reign so don't hesitate to close an issue if you are confident that it should be closed. This will come more naturally over time.

Labels

Always add a comment to the issue detailing why you add, remove or change a specific label in a GitHub issue.

Add label confirmed-bug if you investigated an issue and you were able to confirm (by reproducing it) that it's actually a bug. This helps a lot when going back to the same issue days, weeks or months later and wondering whether it's an actual issue or not.

As much as possible, try to evaluate the priority of this issue and assign a priority label.

If you think an issue should be tackled in a specific milestone, please add that issue to the corresponding milestone and mention @joyent/node-tsc with information about why this issue should be added to that milestone.

Add label tsc-agenda if a topic seems controversial, or if it requires to be brought up to the TSC (like nominating new collaborators). Labels are documented here: https://nodejs.org/contribute/code_contributions/workflow.html#workflow_md_usage_of_labels.

PRs

Code reviews

Primary goal

joyent/node is the repository from which v0.10.x and v0.12.x releases come out. These releases is what most users of Node.js use, so we need to make sure that changes don't break existing users.

Validating PRs is done by writing "LGTM" in a comment. Do not write LGTM unless you mean that the current state of the PR is ready to be merged into the target branch of the PR.

Make sure you understand 100% of the changes before giving a LGTM. Most of the time, and at least in the beginning it will be rare to understand 100% of the changes.

If you need help to do that, ping other contributors, see the "Communication" section below.

Secondary goal

We want the person submitting code to succeed. It helps grow the community and draws new people into the project. Be aware: your opinion carries a lot of weight!

Merging PRs into the codebase

Make sure to read https://nodejs.org/contribute/code_contributions/workflow.html#workflow_md_using_jenkins_to_build_test_and_merge_every_pr. Once the nodejs-accept-pull-request Jenkins job has merged the change, close the original PR with the following message:

Landed in <commit hash>.

Also close the issues fixed by this pull request with the following message:

Fixed by <commit hash>.

Communication

  • Use GitHub issues at github.com/joyent/node as much as possible.
  • Mention @joyent/node-collaborators every time you need feedback/review. Dot not be afraid to abuse this.
  • For realtime conversations, most collaborators hangout in #libuv on FreeNode.
  • Mentioning other contributors in GitHub issues (by subsystem):
    • lib/child_process: bnoordhuis, piscisaereus, cjihrig
    • lib/cluster: bnoordhuis, sam-github
    • lib/net: indutny, bnoordhuis, piscisaereus, chrisdickinson.
    • lib/http: isaacs, bnoordhuis
    • lib/vm: domenic, isaac
    • lib/buffer: trevnorris
    • src/async-wrap.*: trevnorris
    • lib/crypto,tls,https: indutny
    • src/node_crypto.*: indutny
    • IN GENERAL: joyent/node-tsc, joyent/node-collaborators or git shortlog -n -s <file>.

Final notes

  1. Don't worry about making mistakes: everybody makes them, there's a lot to internalize and that takes time (& we recognize that!).
  2. Very few (no?) mistakes are unrecoverable.
  3. All Node.js contributors are grateful for your help.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment