75 lines
2.8 KiB
Markdown
75 lines
2.8 KiB
Markdown
|
# Contributing
|
||
|
|
||
|
Thank you for wanting to help make `readability` better!
|
||
|
|
||
|
For outstanding issues, see the issue list in this repo, as well as this [bug list](https://bugzilla.mozilla.org/buglist.cgi?component=Reader%20Mode&product=Toolkit&bug_status=__open__&limit=0).
|
||
|
|
||
|
Any changes to the main code should be reviewed by an [appropriate Firefox/toolkit peer](https://wiki.mozilla.org/Modules/Firefox), such as [@gijsk](https://github.com/gijsk), since these changes will be merged to mozilla-central and shipped in Firefox.
|
||
|
|
||
|
To test local changes to Readability.js, you can use the [automated tests](#tests).
|
||
|
|
||
|
This repository is governed by Mozilla's code of conduct and etiquette guidelines.
|
||
|
For more details, please read the
|
||
|
[Mozilla Community Participation Guidelines](https://www.mozilla.org/about/governance/policies/participation/).
|
||
|
|
||
|
## Tests
|
||
|
|
||
|
[![Build Status](https://community-tc.services.mozilla.com/api/github/v1/repository/mozilla/readability/master/badge.svg)](https://community-tc.services.mozilla.com/api/github/v1/repository/mozilla/readability/master/latest)
|
||
|
|
||
|
Please run [eslint](http://eslint.org/) as a first check that your changes are valid JS and adhere to our style guidelines:
|
||
|
|
||
|
$ npm run lint
|
||
|
|
||
|
|
||
|
To run the test suite:
|
||
|
|
||
|
$ npm test
|
||
|
|
||
|
To run a specific test page by its name:
|
||
|
|
||
|
$ npm test -- -g 001
|
||
|
|
||
|
To run the test suite in TDD mode:
|
||
|
|
||
|
$ npm test -- -w
|
||
|
|
||
|
Combo time:
|
||
|
|
||
|
$ npm test -- -w -g 001
|
||
|
|
||
|
### Add new tests
|
||
|
|
||
|
There's a [node script](https://github.com/mozilla/readability/blob/master/test/generate-testcase.js) to help you create new tests.
|
||
|
You can run it using:
|
||
|
|
||
|
$ node test/generate-testcase.js slug https://example.com/article
|
||
|
|
||
|
Replacing `slug` with the identifier the test should use, and providing a URL
|
||
|
to an actual article on which the test should be based.
|
||
|
|
||
|
## Pull Requests
|
||
|
|
||
|
We're always happy to see pull requests to improve readability.
|
||
|
|
||
|
Please ensure you run the linter and [tests](#tests) before submitting a PR.
|
||
|
|
||
|
If you're changing the algorithm to fix a specific page/article, please
|
||
|
[add new tests](#add-new-tests) for the case you're fixing, so we avoid
|
||
|
breaking it in future.
|
||
|
|
||
|
## Steps to release
|
||
|
|
||
|
1. Ensure [CHANGELOG.md](CHANGELOG.md) is up-to-date. ``git log `npm view . version`...master `` may help with this.
|
||
|
2. Run `npm run release` to create a release, which should:
|
||
|
1. `npm version [patch | minor | major]`, depending on the nature of the changes according to
|
||
|
[semver](https://semver.org/). This will bump the version in `package.json` and `package-lock.json`
|
||
|
and create a commit and Git tag for the release.
|
||
|
2. `npm publish` to push the release to the npm registry.
|
||
|
3. `git push origin head --follow-tags` to push the new commit and tag to GitHub.
|
||
|
|
||
|
## Keeping a changelog
|
||
|
|
||
|
Ensure significant changes are added to `CHANGELOG.md`. Do not add
|
||
|
changes that only affect tests or documentation.
|
||
|
|