urltomarkdown/node_modules/@mozilla/readability/CONTRIBUTING.md

75 lines
2.8 KiB
Markdown
Raw Normal View History

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