Skip to main content

Contribute to an SDK

Give feedback on issues

We're always looking for more opinions on discussions in the issue tracker. It's a good opportunity to influence the future direction of an SDK.

Submitting an Issue or Feature Request

You can submit an issue or feature request in the appropriate SDK repository. A few tips to keep in mind when submitting:

  • Search the issue tracker before opening an issue.
  • Ensure you're using the latest version of the SDK or CLI.
  • Use a clear and descriptive title.
  • Include a comprehensive and cohesive explanation when filling out the issue template.

Submitting a Pull Request

  • Non-trivial changes are often best discussed in an issue first, to prevent you from doing unnecessary work.
  • For ambitious tasks, you should try to get your work in front of the community for feedback as soon as possible. Open a pull request as soon as you have done the minimum needed to demonstrate your idea. At this early stage, don't worry about making things perfect, or 100% complete. Add a [WIP] prefix to the title, and describe what you still need to do. This lets reviewers know not to nit-pick small details or point out improvements you already know you need to make.
  • Don't include unrelated changes
  • New features should be accompanied with tests and documentation
  • Commit messages
    • Use a clear and descriptive title for pull request and commits
    • We use semantic-release to automatically generate release notes, versions and publish releases. This requires commit messages must be formatted properly using Angular's git commit guidelines.
    • As a convenience, a tool called semantic-git-commit-cli is installed in node_modules so you can commit using npx sgc instead of git commit. This tool will ask a series of questions and generate a properly-formatted commit message for you. You can still run git commit and format the message properly yourself if you prefer.
  • Lint and test before submitting the pull request by running $ npm test
  • Write a convincing description of why we should land your pull request. Answer why it's needed and provide use-cases.
  • Make the pull request from a topic branch (not master)
  • You might be asked to do changes to your pull request. There's never a need to open another pull request – just update the existing one.

Finding Contributions to Work On

Look at the existing issues for areas of contribution. Searching for issues labeled help wanted is a great place to start.

More about SmartThings

The SmartThings Community is a good place to share and ask questions.