Skip to content

Latest commit

 

History

History
112 lines (67 loc) · 6.04 KB

CONTRIBUTING.md

File metadata and controls

112 lines (67 loc) · 6.04 KB

Introduction

Welcome!

Thank you for considering contributing to Silk. Together with the community, we can keep improving the project for the community. Feel welcome and read the following sections to get a sense of what and how stuff work. If you get stuck at any point you can create a ticket on GitHub.

What are we looking for

Silk's key components are open source and we ❤️ to receive contributions from our community -- you! There are many ways to contribute, from writing tutorials, "how-to" articles or blog posts, improving the documentation, submitting bug reports and feature requests or writing code which can be incorporated into Silk itself and redistributed to all of our users.

Getting started

What's in store

The repository generally consists of those parts:

  • babel: Babel utilities
  • babel-preset-silk-node4: Standardized babel configuration
  • bsp-gonk: Board support package for various Android-like devices
  • cli: Commandline tool
  • device-main: Device javascript entry point
  • docs: Hub of all the documentation around Silk
  • eslint-config: Lint configuration
  • external-node-ntp-client:
  • flow-bin: Flow binary
  • log: Simple standardized logger
  • sdk: Tools for developing device-main, and other JS modules
  • tools/npm: Utilities for working with NPM in a large source tree
  • version: Build version information

And for more in-depth information, each folder has its own README to explain more the technical aspect of the repo.

Git Commits Naming

Naming is very important because it helps us in making clear and human-readable changelog. We just ask that your commit details exactly the purpose behind it.

Ground Rules

Why guidelines are important

Following these guidelines helps communicating that you respect the time of the developers managing and developing Silk in the open. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests.

Expectations

Responsibilities

  • Ensure compatibility for every change that's accepted for the platforms that already run its project.
  • Create issues for any major changes and enhancements that you wish to make. Discuss things transparently and ask for feedback.
  • Be welcoming to newcomers and encourage diverse new contributors from all backgrounds.

Code Of Conduct

Check out our Code Of Conduct that will hopefully keep the conversation civilized.

Your First Contribution

Unsure where to begin contributing to Silk? You can start by looking through these beginner and help-wanted issues: Beginner issues - issues which should only require a few lines of code, and a test or two. Help wanted issues - issues which should be a bit more involved than beginner issues. Both issue lists are sorted by total number of comments. While not perfect, number of comments is a reasonable proxy for impact a given change will have.

Never contributed to Open Source projects before? Worry not.

Working on your first Pull Request? You can learn how from this free series, How to Contribute to an Open Source Project on GitHub.

How to report a bug

Security disclosure and finding vulnerabilities

You must never report security related issues, vulnerabilities or bugs including sensitive information to the bug tracker, or elsewhere in public. Instead sensitive bugs must be sent by email to [email protected] instead.

In order to determine whether you are dealing with a security issue, ask yourself these two questions:

  • Can I access something that's not mine, or something I shouldn't have access to?
  • Can I disable something for other people?

If the answer to either of those two questions are "yes", then you're probably dealing with a security issue. Note that even if you answer "no" to both questions, you may still be dealing with a security issue, so if you're unsure, just email us at [email protected].

Essentials of a bug report

When filing an issue, make sure to answer these five questions:

  1. What operating system, OS version, and processor architecture are you using?
  2. What did you do?
  3. What did you expect to see?
  4. What did you see instead?
  5. General questions should go to the silklabs forum instead of the issue tracker. The devs there will answer or ask you to file an issue if you've tripped over a bug.

How to suggest a feature or enhancement

Features and enhancements requests are always welcome, here's a little bit of information on what should you be doing if you got one in mind. But we also welcome your very own implementations of what you wish to be added to Silk.

Silk's philosophy

Silk's mission is to make the IoT field more secure and accessible through JavaScript, we want our developers to do pretty much anything and everything with just the web, with just JavaScript.

We also try to expand our devices support so more developers have access to all the features we are providing them with.

What comes with a feature request

Feature requests are welcome. But please take a moment to try and provide a clear and detailed explanation of the feature you want and why it's important to add. Find out whether your idea fits with the scope and aims of the project. It's up to you to make a strong case to convince the project's developers to implement a feature.

Code review process

Life of a Pull Request after it's submitted

Our process doesn't differ a lot from other open source projects:

  • Pull Requests that land non-trivial changes should be processed in a timely manner.
  • Bigger PRs go through a more in-depth review by the project developers.
  • After feedback has been given we expect responses within two weeks. After two weeks we may close the pull request if it isn't showing any activity.

Community

We have set up a forum for discussions around the project's development, roadmap and everything related. Find us: community.silklabs.com.