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. 🤙
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
- run
- rollup for creating UMD bundles
- yarn for package management
- husky for git hooks (pre-commit, pre-push)
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 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
- 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
# Build the docs
yarn docs
# Build the docs and watch for file changes
yarn docs:watch
If you've never submitted a Pull request before please visit http://makeapullrequest.com/ to learn everything you need to know.
- Fork the repo.
git clone
your fork.- Make a
git checkout -b branch-name
branch for your change. - Run
yarn install --ignore-scripts
(make sure you have node and yarn installed first)
Updates
- Make sure to add unit tests
- 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. - Run
yarn test
oryarn test:dev
to make sure all tests are working, regardless if a test was added. - When your work is done run
yarn test --coverage
to ensure your changes are covered.
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
By contributing your code to the darksky-api GitHub Repository, you agree to license your contribution under the MIT license.