CONTRIBUTING.md
# Contributing guidelines Please take some time and review the contributing guidelines below. These shouldbe followed when working with any projects in Shout It ecosystem. ## Terminology The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD","SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to beinterpreted as described in [RFC 2119][5]. The term `merge request` and `pull request` are used interchangeably for thepurposes of this document. ## GitHub flow We practice [GitHub Flow][1] to maintain a consistent workflow across allprojects. 1. Clone the project2. Create a feature branch based on the main branch3. Write and push your code4. Test, test, test5. Submit a merge request for your branch into the main branch ## Creating issues All code changes SHOULD start with an issue. When creating a new issue pleaseuse one of the predefined templates that best fits your request, if one isn'tavailable please reach out to a project maintainer to request one. Please makesure to be as detailed as possible when filing an issue, so we don't have totrack you down later for more information. When possible you should practice[user stories and acceptance criteria][2] to set clear requirements. Remember, even if you aren't contributing code, opening feature requests,reporting bugs, or even just discussing ideas are all ways to make this projectbetter. ## Commit messages We follow the [Conventional Commit Specification][3] with a few additionalrequirements. ```text<type>(<scope>): <subject> <optional body> <optional footer>``` **Additional Requirements:** - Breaking changes must include a `!` in the subject and `BREAKING CHANGE:` in the footer as described by [the specification][4]- The scope property MUST be set to the package being worked on, or left blank when working outside of packages ## Merge requests Every merge request should start with an issue, if you don't have an issue, youcan't do much. When you open a merge request make sure to use an issue templatewhen available. If your merge request is created before it's complete, please make sure to flagit as a draft by putting `Draft:` at the start of the title. Once your code is complete, the pipelines are passing, and it's ready forreview, you should make sure to indicate this. You can do this by removing the`Draft:` flag if set, changing the label to `Workflow::Needs Review` andassigning a reviewer. ## Code style When working within our repositories you should do your best to ad-hear to ourcode style guidelines. By following these guidelines we can create clean, easyto maintain projects. - [JavaScript Style Guide][6]- [Markdown Style Guide][7] [1]: https://docs.github.com/en/get-started/quickstart/github-flow#following-github-flow[2]: https://www.softwaretestinghelp.com/user-story-acceptance-criteria/[3]: https://www.conventionalcommits.org/en/v1.0.0/[4]: https://www.conventionalcommits.org/en/v1.0.0/#commit-message-with-both--and-breaking-change-footer[5]: https://datatracker.ietf.org/doc/html/rfc2119[6]: https://github.com/airbnb/javascript/blob/master/README.md[7]: https://google.github.io/styleguide/docguide/style.html