Skip to content

Latest commit

 

History

History
117 lines (80 loc) · 3.32 KB

CONTRIBUTING.md

File metadata and controls

117 lines (80 loc) · 3.32 KB

Contributing

Reatom is open source state manager for small and complex applications.

If you want to contribute to improving the library, use the following instructions to create changes:

Note: Languages other than English are not normally used in issue or commits descriptions.

Creating an issue

If you found a bug or want to make an improvement in the library please check whether the same issue already exists in the list of issues. If you don't find the issue there, create a new one including a description of the problem.

Sending a Pull Request

  1. Fork the repository.

  2. Clone the fork.

    $ git clone git@github.com:<username>/reatom.git
  3. Add the main repository for the reatom library as a remote repository with the name "upstream".

    $ cd reatom
    $ git remote add upstream git@github.com:artalar/reatom.git
  4. Install dependencies for development.

    $ npm i
  5. Fetch the latest changes.

    $ git fetch upstream
  6. Create a feature-branch from next branch that includes the number of the created issue.

    $ git checkout upstream/next
    $ git checkout -b issue-<issue number>
  7. Make changes.

  8. Record the changes according to conventional rules.

    $ git commit -m "<type>[optional scope]: <description>"
  9. Fetch the latest changes.

    $ git pull --rebase upstream next

    Note: Repeat this step before every change you make, to be sure that you are working with code that contains the latest updates.

  10. Send the changes to GitHub.

    $ git push -u origin issue-<issue number>

    Note: It is desirable to use interactive rebase (git rebase upstream/next -i) for cleanup commits list before sending a Pull Request

  11. Send a Pull Request to the next branch.

  12. Link the Pull Request and issue with keyword in the comment. Example: fix #74

  13. Wait for a decision about accepting the changes.

Commit rules

Record the changes made by making comments in accordance with Conventional Commits.

<type>[optional scope]: <description>

Allowed <type>

  • chore - maintain
  • ci - ci configuration
  • feat - new feature
  • fix - bug fix
  • docs - documentation
  • style - formatting, missing semi colons, …
  • test - when adding missing tests
  • perf - performance improvements
  • revert - rollback changes
  • refactor - reorganization without breaking changes and new features

Allowed <scope>

Directory name from /packages/<scope>

Style for <description>

  • only English language
  • Use imperative, present tense: change not changed nor changes
  • don't capitalize first letter
  • no dot (.) at the end

Example commit messages

chore: update release schedule
docs: fix typo in readme file
fix(core): add check for atoms with equal ids
docs(react): update redux migration guide