Skip to content

Latest commit

 

History

History
68 lines (48 loc) · 6.13 KB

CONTRIBUTING.md

File metadata and controls

68 lines (48 loc) · 6.13 KB

Contributing

First and foremost, thank you! We appreciate that you want to contribute to Synectic, your time is valuable, and your contributions mean a lot to us.

Scope

Do not create issues about bumping dependencies unless a bug has been identified, and you can demonstrate that it effects this project. Synectic is a desktop application, and therefore is not subject to the same security concerns as web applications. However, we do take security seriously, and will address any security concerns that are identified.

Help us to help you

Remember that we’re here to help, but not to make guesses about what you need help with:

  • Whatever bug or issue you're experiencing, assume that it will not be as obvious to the maintainers as it is to you.
  • Spell it out completely. Keep in mind that maintainers need to think about all potential use cases of a library. It's important that you explain how you're using a library so that maintainers can make that connection and solve the issue.

It can't be understated how frustrating and draining it can be to maintainers to have to ask clarifying questions on the most basic things, before it's even possible to start debugging. Please try to make the best use of everyone's time involved, including yourself, by providing this information up front.

Contributing Code

Setup your development environment by following the Development instructions in the README.

All development should occur in branches (or forks) and be submitted as a Pull Request (PR) back to the main branch. The following steps represent the preferred workflow, and include details about contribution requirements:

  1. Create a feature or bugfix branch with a name that is representative of the development purpose (e.g. feature/drag-n-highlight, fix/ghosting_images, feature/pixel-comparison). Names that reference issue numbers, usernames, or random animals are not acceptable naming conventions.
  2. Develop code and commit to the new branch with commit messages that provide context for underlying changes contained within each commit. Avoid platform dependent code.
  3. When development is complete, and all requirements listed in any associated issues have been met, submit a PR to the main branch. Include a bulleted list of contribution features/bugfixes/alterations in the PR description. Do not include issue numbers in the PR title. Do try to use the Linked issues feature in GitHub to link the pull request to the related issue(s).
  4. Review the results of continuous integration via GitHub Actions. Pull Requests will not be accepted unless all tests are passing for that branch.
  5. Wait for a code review from at least one other developer on the project. Address any changes requested during the review in order to gain approval.
  6. Once merged, make updates to any related issues as needed for status tracking.

Recommended Coding References

Several sections of the Synectic API include advanced TypeScript features and the codebase can be difficult to understand for a newcomer, therefore the following references are compiled here for reading as needed:

React and Redux:

Jest Testing:

Advanced typing features in TypeScript: