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 usingnpx sgc
instead ofgit commit
. This tool will ask a series of questions and generate a properly-formatted commit message for you. You can still rungit 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.