Skip to content
This repository has been archived by the owner on Feb 10, 2021. It is now read-only.

Latest commit

 

History

History
103 lines (69 loc) · 3.41 KB

CONTRIBUTING.md

File metadata and controls

103 lines (69 loc) · 3.41 KB

Contributing

First of all, thanks for your interest in contributing to the darksky-api! 🎉

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
  • prettier for formating the code
  • jest for unit testing
    • run yarn test:dev during development
  • rollup for creating UMD bundles
  • yarn for package management
  • husky for git hooks (pre-commit, pre-push)

🧪 Tests

Test are written and run via Jest 💪

# Run whole test suite once
yarn test
# Run test in watch mode
yarn test:dev
# Lint lib and tests, the run tests with coverage
yarn test:prod

💅 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:

# Lint and autofix using tslint
yarn lint:all

# Format code with prettier
yarn format

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 semantic-release can create Changelog and bump version of your library appropriately )
# invoke [commitizen CLI](https://github.com/commitizen/cz-cli)
yarn commit

📖 Documentation

# Build the docs
yarn docs

# Build the docs and watch for file changes
yarn docs:watch

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

  1. Make sure to add unit tests
  2. If there is a *.test.ts file, update it to include a test for your change, if needed. If this file doesn't exist, please create it.
  3. Run yarn test or yarn test:dev to make sure all tests are working, regardless if a test was added.
  4. When your work is done run yarn test --coverage to ensure your changes are covered.

🚀 Publishing

releases are handled by awesome semantic-release

Whenever a commit is pushed to the master branch, the CI server will validate the commit, then run semantic-release.

If semantic-release decides that the commit is worthy of a new release it will:

  • bump package version and git tag
  • push to github master branch + push tags
  • publish build packages to npm

License

By contributing your code to the darksky-api GitHub Repository, you agree to license your contribution under the MIT license.