Contributing
If you haven't already, check out the source code before proceeding:
git clone https://github.com/Frameright/react-image-display-control
cd react-image-display-control/
Code formatting
Pull and run ESLint and prettier with:
npm install
npm run lint # check for errors
npm run format # fix errors
Validating
Running the unit tests
Pull and run Jest with:
npm install
npm run test
Running the local demo
Build the React component, pull Parcel and run
example/ with:
cd example/
./clean-build-and-run.sh # interactive watch mode
cd ../
Documenting
(Re-)generating tables of contents
Pull and run markdown-toc
with:
npm install
npm run gentoc
Releasing
Version number
Choose the next version number according to the rules of
Semantic Versioning and set it in package.json.
Changelog
Describe the changes made compared to the last released version in the changelog. Browse the git history to make sure nothing has been left out.
Update the package-lock.json files
cd example/
# Clean-building and running the local demo will update all package-lock.json
# files as a side effect. Stop the demo with Ctrl+C when it's done.
./clean-build-and-run.sh
cd ../
Last tweaks and checks
Format and validate the source one last time:
npm run format
npm run gentoc
npm run lint
npm run test
Commit and push any local changes:
git add -A
git commit -m "<my message>"
git push
Git tag
In the rest of this document we'll assume you are releasing version 1.2.3.
Create a git tag for the version you are releasing by running:
git tag 1.2.3
git push --tags
Build the package locally
Build the package locally by running:
npm pack
And check that the resulting
frameright-react-image-display-control-1.2.3.tgz looks well-formed.
Finally clean up by running:
rm frameright-react-image-display-control-1.2.3.tgz
Publish the package to npm
npm login --scope=@frameright
npm publish
On the first publication do npm publish --access public instead.
And check that the package looks well-formed at
https://www.npmjs.com/package/@frameright/react-image-display-control/v/1.2.3.