Skip to content

Contributing

Sara Itani edited this page May 11, 2015 · 18 revisions

We would love to have you as a contributor to NTVS!

Contributing Code

Node.js Tools for Visual Studio is a member of Microsoft and operates under the Apache 2.0 license. There is no formal style-guide, but contributors should try to match the style of the file they are editing. Feel free to reach out and ask the core team any questions you have or if you need a hand in starting to tackle an issue. The core team is happy to help and point you in the right direction!

For now, the NTVS team has set the following guidelines for pull-requests:

  • All code has to be reviewed by gatekeepers.
  • All code contributions must come with tests (we will give you help and advice on integrating into our test infrastructure if you need it).
  • Bug fixes will generally have a short review prior to acceptance.
  • For new functionality, please contact us first so we can coordinate efforts (e.g. to avoid duplication of work, roadmap fit, etc.).
  • Contributors must sign the Microsoft CLA.
  • Licensing: Since the NTVS is under the Apache 2.0 license, all contributions will be made under that license as well. Please don’t submit anything with any other licensing statements. If you want to make a contribution that includes code that you received under a different license, please let us know and we can figure out what to do. Please be sure that you have the right to make your contribution, including clearance from your employer if applicable.

When you are ready to make a change, get set up to build, test, and debug the code and familiarize yourself with our workflow and coding conventions.

You must sign the Contributor License Agreement (CLA) before submitting your pull-request. To complete the CLA, submit a request via the form and electronically sign the CLA when you receive the email with document link. The CLA only needs to be completed once to cover all Microsoft OSS projects.

Our Workflow

Issue Categories

Up-for-grabs issues are issues that are confirmed as being in-line with the immediate product roadmap, and are reasonably well-scoped, so you can get started working on them without significant design-work.

Fun-size issues are like the candy! They consist of issues we've identified as being more approachable for those unfamiliar with the codebase or potentially less time-consuming, and are great for helping you ramp up or explore a new feature area.

Unassigned issues are generally things we are not actively working on, aren't in-line with the immediate product roadmap, or might require a bit more discussion/design before we begin working on them. If you are ever unsure, or are particularly passionate about an already-assigned issue, don't hesitate to reach out.

Issue Workflow

  1. Issue/feature is assigned to a developer during triage process. Issues will be sorted into milestones.
  2. The NTVS team and external contributors are expected to work in a local fork and submit code for consideration via a pull-request.
  3. After a pull-request has gone through the review-process and deemed ready, it will be merged directly into the tree.

Creating New Issues

Please follow the following guidelines when creating new issues in the issue tracker:

  • Use a descriptive title that identifies the issue to be addressed or the requested feature (e.g., "Feature F should report ABC when XYZ is used in DEF").
  • Provide a detailed description of the issue or request feature.
  • For bug reports, please also:
    • Describe the expected behavior and the actual behavior.
    • Provide example code or steps that reproduce the issue.
    • Specify any relevant exception messages and stack traces.
  • Subscribe to notifications for the created issue in case there are any follow-up questions.