Skip to content

Latest commit

 

History

History
60 lines (32 loc) · 2.92 KB

intentionality.md

File metadata and controls

60 lines (32 loc) · 2.92 KB

Intentionallity

One of the goals of this package is to re-create a full workflow that should be applyied to any big software creation.

This guide is going to be organized by the steps of the development, and explaining every tool used.

Development

During this phase, the developer codes the features.

Code Style

  • Eslint: Eslint provides linting capabilities to JS, so every developer should attach to the same code-style rules.

    Recommended reading: https://eslint.org/docs/about/

  • eslint-config-airbnb-base: This package provides Airbnb's base JS .eslintrc (without React plugins) as an extensible shared config. This base is the "de facto" standard for ES6 linting rules.

  • Prettier: Prettier is an opinionated code formatter. It enforces a consistent style by parsing your code and re-printing it with its own rules that take the maximum line length into account, wrapping code when necessary. It adds more power to eslint in the formatting rules.

    Recommended reading: https://prettier.io/docs/en/comparison.html

Testing

There is a test folder with the tests for the library. They has been written using the most regular JS frameworks

  • Mocha

  • Chai

  • Sinon Is not used in this project, but for complex testing is always needed to test any kind of API calls. It provides stubs, spies and mocks. Their documentation is recommended to know their power, before using it: http://sinonjs.org/

Code coverage

Represents the percentage of code that has been tested. In this project we use

  • nyc: This is the new version of istambuljs, it generates an output of code coverage.

  • codecov: Upload coverage reports, link with github and allow to review the changes on pull requests.

Build

As the code is written in ES6, it can't be used directly in node, so it has to be transpiled to UMD. In this project we use webpack.

Version Control

  • Github: All you know it.

  • Husky: A tool to add git hooks in client side, totally integrated for JS projects.

Continous Integration

  • Travis: Free CI for open-source projects.

  • semantic-release: Fully automated version management and package publishing. It's a really powerful package. it's used to create Git tags, changelogs, handlying the version number using semver, and enforcing the developers to maintain a sanitized git repository and using commit convention.

Deployment