How to help us help you :) Notifire is an Open Source project, we would love for you to contribute, you can see here our guidelines, making sure our code base is readable.
- Issues and Bugs
- Feature Requests
- Missing Provider
- Submission Guidelines
- Development Setup
- Coding Rules
Other than code contribution you can also help us with efforts.
- Answer Discussions.
- Try our providers and give feedback.
- Spread the word if you like what we are doing.
Got a Question or a Thought?#
The best place to reach us about questions, problems, or thoughts is on our GitHub Discussions page. There you both find previous discussions were we already started talking about that, or you can create a new discussion, your very own discussion.
Found a Bug?#
Missing a Feature?#
If a feature is missing you can request a new one by submitting an issue to our GitHub Repository. In the case you would like to implement it, an issue with a proposal must be submitted first, to be sure that we can use it. Please consider:
- Small Feature can be submitted directly to submitted as a Pull Request after the implementation.
- Major Feature proposal needs to be discussed first, so open a discussion in our GitHub Discussions. This will also allow us to prevent duplication of work, coordinate our efforts better, and ultimately build it so that it is successfully merged into the Notifire.
Missing a Provider?#
Submitting an Issue#
Prior of a new issue submission, please search the issues tab, and discussion tab maybe an issue or discussion already exists and the discussion might inform you of workarounds, or you can give new information.
While we want to fix all the issues, before fixing a bug we need to be able to reproduce and confirm it. Please provide us with a minimal reproduction scenario using a repository or Gist. Having a live, reproducible scenario gives us the information without asking questions back & forth with additional questions like:
- 3rd-party libraries and their versions, mainly providers, but not exclusively
- a use-case that fails
Without said minimal reproduction, we won't be able to investigate all issues, and the issue might not be resolved.
You can open a new issues with this new issue form.
Submitting a Pull Request (PR)#
Before you submit your Pull Request (PR) consider the following guidelines:
Look in our GitHub for an open or closed PR that relates to your submission. You don't want to duplicate effort.
Fork notifirehq/notifire repo, or any of our providers.
Make your changes in a new git branch:
git checkout -b my-new-branch master
Write your code, including test cases.
Follow our Coding Rules.
Run the full test suit (see common scripts), and ensure that all tests pass.
Commit your changes using a descriptive commit message that follows our commit message conventions. Adherence to these conventions is necessary because release notes are automatically generated from these messages.
git commit -a
Note: the optional commit
-acommand line option will automatically "add" and "rm" edited files.
Push your branch to GitHub:
git push origin my-new-branch
In GitHub, send a pull request to
If we suggest changes then:
Make the required updates.
Re-run the test suite to ensure tests are still passing.
Rebase your branch and force push to your GitHub repository (this will update your Pull Request):
git rebase master -igit push -f
That's it! You are amazing! 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 my-new-branch
Check out the master branch:
git checkout master -f
Delete the local branch:
git branch -D my-new-branch
Update your master with the latest upstream version:
git pull --ff upstream master
Will be added shortly.
Commonly used NPM scripts#
Will be added shortly.
To ensure consistency throughout the source code, keep these rules in mind as you are working:
- All features or bug fixes must be tested by one or more specs (unit-tests).
- We use Eslint default rule guide, with minor changes.
An automated formatter is available (
npm run format).