Thank you for your interest in becoming a contributor to Shoutify. We welcome all contributions, no matter how large or small. Please take a moment to review this document in order to make effective contributions.
Have a question about Shoutify? Ask questions or feel free to talk about anything Shoutify related in our GitHub Discussions forum.
Something not working as expected? Let's see if we can work together to get it resolved. If you believe you have discovered a bug, please open an issue on the GitHub repository and select the "Bug Report" template.
Would you like to see a new feature added to Shoutify? Let's discuss it! All features for Shoutify should begin as an Issue on the GitHub repository. Select the "Feature Request" issue template and engage with the community to come to a collective solution to the feature request.
Want to contribute to Shoutify? Great! We welcome all contributions no matter how large or small. Please begin by taking a look at the open issues and get involved in the conversation. We would be happy to assign you to an issue and help you get started.
Get started by reading the HACKING.md document, and come back here when you're ready to submit.
This project strictly adheres to the conventional commits specification for creating human readable commit messages with appropriate automation capabilities, such as changelog generation.
Each commit message consists of a header, a body and a footer. The header has a special format that includes a type, a scope and a subject:
<type>(optional <scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
Footer should contain a closing reference to an issue if any.
Append a ! to the end of the type in your commit message to suggest a
BREAKING CHANGE
<type>!(optional <scope>): <subject>
Must be one of the following:
- build: Changes that affect the build system or external dependencies (example scopes: npm, eslint, prettier)
- ci: Changes to our CircleCI configuration
- chore: No production code changes. Updates to readmes and meta documents
- docs: Changes to the automated documentation or TSDoc comments
- feat: A new feature
- fix: A bug fix
- refactor: A code change that neither fixes a bug nor adds a feature
- style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
- test: Adding missing tests or correcting existing tests
- sample: A change to the samples
After searching for potentially existing pull requests or issues in progress, if none are found, please open a new issue describing your intended changes and stating your intention to work on the issue.
Creating issues helps us plan our next release and prevents folks from duplicating work.
After the issue has been created, follow these steps to create a Pull Request.
- Fork the TechSquidTV/Shoutify repo.
- Clone your newly forked repository to your local machine.
- Create a new branch for your changes:
git checkout -b fix/my-issue main - Run
npm install - Implement your change with appropriate test coverage.
- Utilize our commit message conventions.
- Push all changes back to GitHub
git push origin fix/my-issue - In GitHub, send a Pull Request to
shoutify:main
Thank you for your contribution!
After your pull request is merged, you can safely delete your branch and pull the changes from the main (upstream) repository:
-
Delete the remote branch on GitHub either through the GitHub web UI or your local shell as follows:
git push origin --delete fix/my-issue
-
Check out the main branch:
git checkout main -f
-
Delete the local branch:
git branch -D fix/my-issue
-
Update your main with the latest upstream version:
git pull --ff upstream main
For maintainers only
This is subject to change
When it is time to release a new version, follow the following steps.
- Ensure all relevant PRs have been merged into the
mainbranch, awaiting "deployment". - Review the commit history to determine the release type (major, minor, patch)
- On GitHub,
create a new Release
with the
mainbranch as the target and specify the version number. - Include the automatically generated release notes in the release description.
A. This project makes use of git commit hooks to automate pre-checking commits by linting, testing, and running prettier. If you would like to bypass these checks locally temporarily to save progress, ensure to add the --no-verify flag to your commit message.
A. Want the hooks enabled but they are still failing? Check to ensure you are using the right version of NodeJS but running nvm use in the directory.