Skip to content

Latest commit

 

History

History
77 lines (55 loc) · 2.39 KB

DEVELOPMENT.md

File metadata and controls

77 lines (55 loc) · 2.39 KB

Developers Guide

This guide is for all codebases in this mono-repo.

Setup after cloning

You need to have these tools installed:

  • Node.js version 10 or later
  • Yarn
  • Gnu Make - the make command should exist on your machine
  • to see code statistics: scc

To get the codebase into a runnable state after cloning:

  • make setup to install dependencies

Running tools

All codebases in this mono-repo provide a standardized set of commands for executing common development tasks. You must run these commands in the directory of the respective codebase.

  • run all tests: make test
  • run unit tests: make unit
  • run end-to-end tests: make cuke
  • run documentation tests: make doc
  • run linters: make lint
  • run auto-fixers: make fix

To enable debugging statements and verbose output while debugging an end-to-end test, add the @debug Gherkin tag in the first line of the .feature file.

Debugging

To debug Text-Runner in VSCode:

  • switch VSCode to the debug view
  • start the run text-runner profile

To debug a unit test:

  • set a breakpoint in the unit test
  • switch VSCode to the debug view
  • start the unit profile

To debug a Cucumber step implementation in VSCode:

  • open .vscode/launch.json
  • edit the cuke current file section:
    • args
    • cwd
  • set a breakpoint inside Cucumber code
  • switch VSCode to the debug view
  • start the cuke current file profile

Updating dependencies

make update

Always update the dependencies for all codebases so that they use the exact same versions.

Deployment

  • on a branch:
    • update CHANGELOG.md
    • yarn run json-schema && make fix in the root folder and ship
    • bump the versions by running lerna version <patch|minor> --no-private or by updating the versions manually if bumping the major version
    • make a global search-and-replace for "7.1.2" and "0.3.1" replace it with the new version
    • ship this branch
  • git town sync --all && git tag 7.1.2 && git push --tags
  • run make publish