react-a11y
Version:
Warns about potential accessibility issues with your React elements.
119 lines (75 loc) • 3.46 kB
Markdown
# Contributing to react-a11y
## Setting up the workspace
Before you can submit a Pull Request you'll need to do the following:
1. Fork the repository on GitHub
2. Clone your fork
```bash
git clone https://github.com/<your_username>/react-a11y.git
cd react-a11y
```
3. Install for development
```bash
npm install
```
## Workflow
Lint the code:
```bash
npm run lint
```
Run the tests:
```bash
npm run mocha // run tests using mocha only
npm run karma // run tests using karma only
npm run test // run tests using both mocha and karma
```
Build the code:
```bash
npm run build
```
## Making changes
1. Checkout a new branch and name it accordingly to what you intend to do
```bash
git checkout -b <branch_name>
```
2. Make your intended changes, being sure to run the tests and lint the code.
## Submitting a Pull Request
1. Commit your changes (please make commits small and commit messages descriptive):
```bash
git commit -m "..."
```
2. Push to _your_ github repo:
```bash
git push origin <branch_name>
```
3. Go to the GitHub page and click "New Pull request".
4. Write a good description of the change.
After sending a pull request, other developers will review and discuss your change. Please address all the comments. Once everything is all right, one of the maintainers will merge your changes in.
## Publishing (for maintainers)
_These steps are for maintainers only and can be disregarded by contributors._
For publishing use the following workflow:
1. Make sure all code changes for this new version have already been committed.
2. Update the CHANGELOG.md by using the following command, double check the content and save (don't commit):
```bash
npm run changelog -- -t <the upcoming version>
```
where `<the upcoming version>` refers to the version number that you are preparing to publish
3. Update the version and publish. This is done by running _one_ of the following scripts:
```bash
npm version:patch # for a patch version update i.e. v1.0.0 -> v1.0.1
npm version:minor # for a minor version update i.e. v1.0.0 -> v1.1.0
npm version:major # for a major version update i.e. v.1.0.0 -> v2.0.0
```
### The publishing scripts
After running one of the above `version:*` scripts the following things will take place in this order:
1. the `preversion` script will run which does the following:
1. The tests will be run and the entire process will halt if they do not all pass
2. A check will be performed to validate that the `CHANGELOG.md` has been updated and it is the only uncommitted change in the repo. If this check fails the process will be halted.
2. the selected `version:*` script will run which does the following:
1. The version in `package.json` will be incremented as requested (patch, minor, major). _Because the `--no-git-tag-version` flag is specified this script will not yet include tagging and committing in the github repo._
3. the `postversion` script will be run which does the following:
1. A `git commit` will be made including only the `package.json` and `CHANGELOG.md` files. It will include a commit comment in the format of: "Version $npm_package_version"
2. Performs a `git tag` in the format of "v$npm_package_version"
3. Performs a `git push` and `git push --tags`
4. Runs `npm publish`
## Additional Resources
* [GitHub pull request help](https://help.github.com/categories/collaborating-with-issues-and-pull-requests/)