Vision
Pomodoro style timer for Mac OS written using Electron & React!
Getting Started
-
yarn start
will compile all of the necessary JS and run the electron application. -
yarn js:lint
will lint the application. -
yarn test:coverage
will run the unit tests.
Linting
Linter of choice is StandardJS.
Installing the application locally
To build the app itself and install it to your applications run yarn dist
and then open the dmg
present in dist/
.
Contributing
Commiting
All commit messages should be done through Commitizen,
which is configured to use the @metahub/cz-conventional-commit
adapter. These are installed locally
through dev dependencies.
To commit through Commitizen, just run yarn cm
, and follow the interactive prompt. This enforces proper semantic versioning and releasing with CI.
Reviewing
master
branch is protected and required two reviews to be merged.
Testing
pre-commit
and pre-push
hooks have been set up using husky to enforce that unit tests and linting are both run at these points.
The test coverage is enforced at 100% across the board - no exceptions. All of the tests should pass with 100% coverage for a PR to even be considered for review.
CI
The CI tool of choice is CircleCI and runs on every pull request, not every commit however. The CI will run yarn install
, linting
, unit tests
, and then finally a JS build
to ensure that everything is in working order.
Releasing
Releasing is handled automatically by CI. The versioning is handled itself by a tool called semantic-release.
Once this has completed a new git tag will be created. However the version in package.json
will not have been updated. This job will need to be done separately.