perdoo-ui

Perdoo UI components

Usage no npm install needed!

<script type="module">
  import perdooUi from 'https://cdn.skypack.dev/perdoo-ui';
</script>

README

perdoo-ui

CircleCI npm version

Prerequisites

Node.js >= v8 must be installed.

Installation

  • After cloning the repo, run yarn in the root directory to install all dependencies.

Demo Development Server

  • yarn start will run a development server with the storybook app at http://localhost:3000 with hot module reloading.

Running Tests

  • There are two kinds of tests, lint tests & unit tests

  • yarn lint will run the linter and report and errors it finds.

  • yarn test will run the unit tests and report any failures it finds.

Writing tests

  • Every test suite is split into two categories, one for testing output layout (Snapshot tests), and one for testing the functionalities.

  • Make sure any new suites are split into the two categories

  • When you expect a snapshot to update because of a change in the source code, make sure you update the snapshots by running yarn test -u before pushing. Run this only if your component layout or styles have changed. If your snapshot test is failing without a layout or style change, it indicates an error in either the component, or the test itself. Do not run the command with the -u flag unless absolutely sure.

Releasing

  • Branch out of develop. The branch name should be release/X.X.X, where X.X.X is the version.
  • Bump up package.json version.
  • Add the version's changelog in CHANGELOG.md. Be sure to update the version and date if you copy a previous version's changelog. Also make sure to correctly separate out Bugfixes and Improvements.
  • Run npm publish (NOT yarn publish). This will run tests and publish. Enter 2FA code, if you've enabled it for your account.
  • Merge the release branch back to develop. Tag this merge commit as vX.X.X and push the tag. Make sure the tag begins with the little v.
  • Delete the release branch.
  • Go to GitHub's releases, edit the latest release and copy over the changelog (for A E S T H E T I C S)
  • At the end of all this, the repo should only have 2 branches, master, and develop.
  • Merge develop to master by raising a pull request

Scripts

  • build: Runs tests, generates the test results, and builds the storybook app for deployment on Heroku
  • build-demo: Builds the storybook into a build folder
  • compile: Runs tests, and bundles the components for publishing to npm
  • develop: Starts babel in watch mode, useful when using yarn workspaces for coupled development with perdoo-web-app
  • lint: Starts the linter on the codebase
  • prepublishOnly: Runs before an npm publish
  • start: Starts a storybook app in development mode (with hot reloading)
  • test: Runs unit tests (Jest + Enzyme)