Skip to content

Latest commit

 

History

History
137 lines (91 loc) · 3.97 KB

CONTRIBUTING.md

File metadata and controls

137 lines (91 loc) · 3.97 KB

Contributing

First of all, thanks for your interest in contributing to the {library-name}! 🎉

PRs are the preferred way to spike ideas and address issues, if you have time. If you plan on contributing frequently, please feel free to ask to become a maintainer; the more the merrier. 🤙

Technical overview

This library uses following libraries for development:

  • typescript for typed JavaScript and transpilation
  • jest for unit testing
    • run yarn test:watch during development
  • rollup for creating UMD bundles
  • yarn for package management
  • npm scripts for executing tasks

🧪 Tests

Test are written and run via Jest 💪

# Run whole test suite once
yarn test
# Run test in watch mode
yarn test:watch
# Ged code coverage
yarn test:coverage

💅 Style guides

Style guides are enforced by robots (I meant prettier and tslint of course 🤖 ), so they'll let you know if you screwed something, but most of the time, they'll autofix things for you. Magic right ?

Lint and format codebase via npm-script:

#Format and fix lint errors
yarn ts:style:fix

Commit conventions (via commitizen)

  • this is preferred way how to create conventional-changelog valid commits
  • if you prefer your custom tool we provide a commit hook linter which will error out, it you provide invalid commit message
  • if you are in rush and just wanna skip commit message validation just prefix your message with WIP: something done ( if you do this please squash your work when you're done with proper commit message so standard-version can create Changelog and bump version of your library appropriately )
# invoke [commitizen CLI](https://github.com/commitizen/cz-cli)
yarn commit

📖 Documentation

yarn docs

Getting started

Creating a Pull Request

If you've never submitted a Pull request before please visit http://makeapullrequest.com/ to learn everything you need to know.

Setup

  1. Fork the repo.

  2. git clone your fork.

  3. Make a git checkout -b branch-name branch for your change.

  4. Run yarn install --ignore-scripts (make sure you have node and yarn installed first) Updates

  5. Make sure to add unit tests

  6. If there is a *.spec.ts file, update it to include a test for your change, if needed. If this file doesn't exist, please create it.

  7. Run yarn test or yarn test:watch to make sure all tests are working, regardless if a test was added.


🚀 Publishing

releases are handled by awesome standard-version

NOTE:

you have to create npm account and register token on your machine 👉 npm adduser

If you are using scope (you definitely should 👌) don't forget to --scope

Execute yarn release which will handle following tasks:

  • bump package version and git tag
  • update/(create if it doesn't exist) CHANGELOG.md
  • push to github master branch + push tags
  • publish build packages to npm

releases are handled by awesome standard-version

Initial Release (no package.json version bump):

yarn release --first-release

Pre-release

  • To get from 1.1.2 to 1.1.2-0:

yarn release --prerelease

  • Alpha: To get from 1.1.2 to 1.1.2-alpha.0:

yarn release --prerelease alpha

  • Beta: To get from 1.1.2 to 1.1.2-beta.0:

yarn release --prerelease beta

Dry run

version bump + changelog

# See what next release version would be with updated changelog
yarn standard-version --dry-run

npm publish

# check what files are gonna be published to npm
yarn release:preflight

License

By contributing your code to the {library-name} GitHub Repository, you agree to license your contribution under the MIT license.