Skip to main content

Contributing

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.

Other than code contribution you can also help us with efforts.

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?#

While we do have Unit tests, and process to verify PR's bugs still exists, if you find a bug, you can help us by submitting an issue to our GitHub Issues. Or you can submit a Pull Request with a fix.

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?#

If a provider is missing you can request a new one by submitting an issue to our GitHub Repository. Or you can build a new one, following our create a provider article.

Submission Guidelines#

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:

  1. Look in our GitHub for an open or closed PR that relates to your submission. You don't want to duplicate effort.

  2. Fork notifirehq/notifire repo, or any of our providers.

  3. Make your changes in a new git branch:

    git checkout -b my-new-branch master
  4. Write your code, including test cases.

  5. Follow our Coding Rules.

  6. Run the full test suit (see common scripts), and ensure that all tests pass.

  7. 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 -a command line option will automatically "add" and "rm" edited files.

  8. Push your branch to GitHub:

    git push origin my-new-branch
  9. In GitHub, send a pull request to notifire:master.

  • 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#

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

Development Setup#

Will be added shortly.

Commonly used NPM scripts#

Will be added shortly.

Coding Rules#

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).

Documentation is inspired by nestjs and supabase

  • Got a Question or a Thought?
  • Found a Bug?
  • Missing a Feature?
  • Missing a Provider?
  • Submission Guidelines
    • Submitting an Issue
    • Submitting a Pull Request (PR)
  • Development Setup
    • Commonly used NPM scripts
  • Coding Rules