Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
<!-- Source: https://github.com/nayafia/contributing-template/blob/master/CONTRIBUTING-template.md -->

# Contributing Guide

Thank you for considering working on Redux Undo! Open-source contributions keep this project alive and up-to-date. Only _you_ can contribute code to this project :wink:

Of course, we must lay down rules keep things in order.

We ask that you treat everyone with respect in your interactions on Github and other platforms redux-undo uses to continue development. You can read our [Code of Conduct](./docs/main/code-of-conduct.md), but paraphrased it reads "please be a nice person!"

## Scope of this project

As explained in the README, this library adds undo/redo functionality. However, it is not meant to be an all-in-one solution to your application plus a plugin for your jetpack and bluetooth toaster. If you have an idea, _please_ by all means submit an issue. But understand where we are coming from if we deem it too niche to include as a core feature. Though depending on the situation, we might be able to add it as an example in the docs.

## Ways to contribute

There are many ways to contribute: improving the documentation, submitting bug reports and feature requests, or writing code which can be incorporated into Redux Undo itself.

If you have never contributed before, check out some of the issues labeled `"first timers only"`. For more experienced developers, `"help wanted"` will pull up issues that are more involved.

For simple typos in the docs or similar problems, you can fork the project in the top right, make your changes on your copy, and create a pull request when you are done. Make sure to describe your PR as a doc change.

For more substantial changes, please check if there is an issue or PR that is already discussing the problem. Ask your questions there first. You can always create another issue if it turns out your problem is distinct.

If there is not an issue/PR, open an issue in the issue tracker to describe the problem and any potential solutions. We want to have a conversation so that you do not put in a lot of work only to have your idea turned down since it does not fit within our goals of the project.

## Making changes and creating a PR

If you are new to this sort of thing, check out this [free video course](https://egghead.io/courses/how-to-contribute-to-an-open-source-project-on-github) by Kent C. Dodds about how to contribute to an open source project. It walks you through the basics of using git and GitHub to contribute to an open source project.

Once you have a good understanding of git and GitHub, do the following.

- Fork the project and create a new branch of `master` with the name `pr/FEATURE` with "FEATURE" being a descriptive name of the changes you are making.
- Run `$ npm install` This will install dependencies and also run the linter, test suite, and build the project to make sure everything works okay.
- Assuming there are no problems, start making changes! Feel free to ask questions in the issue you created if you do not know how to approach a tricky nuance.
- Your commit messages should be descriptive of the changes made and reference any relavent issues: `"Fix minor Typescript errors, closes #200"`.
- Make sure to add tests for any substantial additions and that all the code follows the code styles (`$ npm run lint`).
- Once all the changes are in place, run `git fetch` and [rebase](https://git-scm.com/book/en/v2/Git-Branching-Rebasing) onto `master` to maintain a simple history for everyone. `$ git rebase upstream/master pr/FEATURE`
- **Note**: You are not rebasing on `origin/master` since that is just the master of _your_ fork, which will also be outdated. You might need to add the original project as a [remote](https://git-scm.com/docs/git-remote#Documentation/git-remote.txt-emaddem).
- Open a PR with your changes and wait for a response. You might have to make a few adjustments or rebase again before it is finally merged.
- Watch as a project collaborator merges your branch and celebrate! You have contributed to open source!
- If you have any questions along the way, you can always ask them in the original issue to ask for guidance.

## Resources

If you need help using the library, read through the [documentation](https://redux-undo.js.org/), check out some of the [examples](/examples), or discuss your problem in [gitter](https://gitter.im/omnidan/redux-undo). Please reserve the issue tracker for bugs and features.
32 changes: 32 additions & 0 deletions docs/main/code-of-conduct.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Redux Undo Code of Conduct

Like the technical community as a whole, the team and community at Redux Undo is made up of a mixture of professionals and volunteers from all over the world, working on every aspect of the mission - including mentorship, teaching, and connecting people.

Diversity is one of our huge strengths, but it can also lead to communication issues and unhappiness. To that end, we have a few ground rules that we ask people to adhere to. This code applies equally to founders, mentors and those seeking help and guidance.

This isn’t an exhaustive list of things that you can’t do. Rather, take it in the spirit in which it’s intended - a guide to make it easier to enrich all of us and the technical communities in which we participate.

This code of conduct applies to all spaces managed by the Redux Undo project. This includes the issue tracker, the gitter chat, and any other forums created by the project team which the community uses for communication. In addition, violations of this code outside these spaces may affect a person's ability to participate within them.

- **Be friendly and patient.**
- **Be welcoming.** We strive to be a community that welcomes and supports people of all backgrounds and identities. This includes, but is not limited to members of any race, ethnicity, culture, national origin, colour, immigration status, social and economic class, educational level, sex, sexual orientation, gender identity and expression, age, size, family status, political belief, religion, and mental and physical ability.
- **Be considerate.** Your work will be used by other people, and you in turn will depend on the work of others. Any decision you take will affect users and colleagues, and you should take those consequences into account when making decisions. Remember that we're a world-wide community, so you might not be communicating in someone else's primary language.
- **Be respectful.** Not all of us will agree all the time, but disagreement is no excuse for poor behavior and poor manners. We might all experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack. It’s important to remember that a community where people feel uncomfortable or threatened is not a productive one. Members of the community should be respectful when dealing with other members as well as with people outside the Redux Undo community.
- **Be careful in the words that you choose.** We are a community of professionals, and we conduct ourselves professionally. Be kind to others. Do not insult or put down other participants. Harassment and other exclusionary behavior aren't acceptable. This includes, but is not limited to:
- Violent threats or language directed against another person.
- Discriminatory jokes and language.
- Posting sexually explicit or violent material.
- Posting (or threatening to post) other people's personally identifying information ("doxing").
- Personal insults, especially those using racist or sexist terms.
- Unwelcome sexual attention.
- Advocating for, or encouraging, any of the above behavior.
- Repeated harassment of others. In general, if someone asks you to stop, then stop.
- **When we disagree, try to understand why**. Disagreements, both social and technical, happen all the time and this project is no exception. It is important that we resolve disagreements and differing views constructively. Remember that we’re different. The strength of Redux Undo comes from its varied community, people from a wide range of backgrounds. Different people have different perspectives on issues. Being unable to understand why someone holds a viewpoint doesn’t mean that they’re wrong. Don’t forget that it is human to err and blaming each other doesn’t get us anywhere. Instead, focus on helping to resolve issues and learning from mistakes.

Thanks to the [Django Code of Conduct](https://www.djangoproject.com/conduct/) and the [Speak Up! project](http://web.archive.org/web/20141109123859/http://speakup.io/coc.html) for the original document.

### License

All content in this document (code of conduct) licensed under a [Creative Commons Attribution](https://creativecommons.org/licenses/by/3.0/) license.

[<img src="https://i.creativecommons.org/l/by/3.0/88x31.png" height="31" width="88" alt="CC-by">](https://creativecommons.org/licenses/by/3.0/)