First off, thanks for taking the time to contribute! 🎉 👍
To build and run the extension follow these steps.
- Clone the repository.
- Make sure Yarn is installed.
- Run
yarn install
to setup the project and install all required dependencies. - Build and load the extension:
- Firefox (Quickstart):
npm run firefox-open
- Chrome (Quickstart):
npm run chrome-open
- Chrome (Long Version):
- To build the extension once run
npm run chrome-build
ornpm run chrome-watch
during development. - Load extension https://developer.chrome.com/extensions/getstarted#unpacked.
- To build the extension once run
- Firefox (Quickstart):
- Please check to make sure that there aren't existing pull requests attempting to address the issue mentioned. We also recommend checking for issues related to the issue on the tracker, as a team member may be working on the issue in a branch or fork.
- Non-trivial changes should be discussed in an issue first
- Develop in a topic branch, not master
- Lint the code by
npm run lint
- Add relevant tests to cover the change
- Make sure test-suite passes:
npm test
- Squash your commits
- Write a convincing description of your PR and why we should land it
- Run
npm version patch
to update the version number. Useminor
ormajor
instead ofpatch
if needed (see semver.org for details). - Open a pull request with the new version.
- Once the pull request is merged in, tag the resulting commit as
vX.Y.Z
(whereX
,Y
,Z
are the major, minor, and patch versions). - Push the tag to GitHub. This will trigger Travis CI to create a new GitHub Release and submit the new Chrome extension to the Chrome Web Store. See .travis.yml for details.
- Submit
firefox-octopermalinker-X.Y.Z.zip
from the GitHub Release to addons.mozilla.org. Be sure to include theSource code (zip)
file from the release as well. - Submit
opera-octopermalinker-X.Y.Z.zip
from the GitHub Release to addons.opera.com. Afterwards, go to the Conversation tab, add a link to theSource code (zip)
file and copy/paste the build instructions from previous releases. - Update release notes at https://github.com/josephfrazier/octopermalinker/releases/tag/vX.Y.Z. You can find a list of changes since the previous release at https://github.com/josephfrazier/octopermalinker/compare/vA.B.C...vX.Y.Z, where
A.B.C
is the previous version number.