How to Contribute
See something in the SDK documentation or Error fixes, typo corrections, better explanations, more examples, etc. Open issues for things that could be improved – anything. Even improvements to this document.
#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 this 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-cliis installed in node_modules so you can commit using
npx sgcinstead 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 commitand 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 share and ask questions.
There is also a SmartThings reddit community where you can read and share information.